{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_hub",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_revokedNonce",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_config",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "AcceptorIsProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "tag",
          "type": "bytes32"
        }
      ],
      "name": "AddressMissingHubTag",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "current",
          "type": "uint256"
        }
      ],
      "name": "AuctionDurationNotInFullMinutes",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "auctionStart",
          "type": "uint256"
        }
      ],
      "name": "AuctionNotInProgress",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "used",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "limit",
          "type": "uint256"
        }
      ],
      "name": "AvailableCreditLimitExceeded",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "CallerIsNotStatedProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "current",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "allowed",
          "type": "address"
        }
      ],
      "name": "CallerNotAllowedAcceptor",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "loanContract",
          "type": "address"
        }
      ],
      "name": "CallerNotLoanContract",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "current",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expiration",
          "type": "uint256"
        }
      ],
      "name": "Expired",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "current",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "limit",
          "type": "uint256"
        }
      ],
      "name": "InvalidAuctionDuration",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "current",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "proposed",
          "type": "bytes32"
        }
      ],
      "name": "InvalidCollateralStateFingerprint",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "auctionCreditAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "intendedCreditAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "slippage",
          "type": "uint256"
        }
      ],
      "name": "InvalidCreditAmount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "minCreditAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxCreditAmount",
          "type": "uint256"
        }
      ],
      "name": "InvalidCreditAmountRange",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "refinancingLoanId",
          "type": "uint256"
        }
      ],
      "name": "InvalidRefinancingLoanId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        }
      ],
      "name": "InvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidSignatureLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MissingStateFingerprintComputer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "nonceSpace",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "NonceNotUsable",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "proposalHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "auctionStart",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "auctionDuration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "indexed": false,
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "name": "ProposalMade",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MULTIPROPOSAL_DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MULTIPROPOSAL_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PROPOSAL_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "acceptor",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "refinancingLoanId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "proposalData",
          "type": "bytes"
        },
        {
          "internalType": "bytes32[]",
          "name": "proposalInclusionProof",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "acceptProposal",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "proposalHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "lender",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "borrower",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "category",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "assetAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct MultiToken.Asset",
              "name": "collateral",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "category",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "assetAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct MultiToken.Asset",
              "name": "credit",
              "type": "tuple"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "bytes32",
              "name": "lenderSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "borrowerSpecHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PWNSimpleLoan.Terms",
          "name": "loanTerms",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "config",
      "outputs": [
        {
          "internalType": "contract PWNConfig",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "creditUsed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "proposalData",
          "type": "bytes"
        }
      ],
      "name": "decodeProposalData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "auctionStart",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "auctionDuration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
          "name": "",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "intendedCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "slippage",
              "type": "uint256"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "auctionStart",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "auctionDuration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "intendedCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "slippage",
              "type": "uint256"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues",
          "name": "proposalValues",
          "type": "tuple"
        }
      ],
      "name": "encodeProposalData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "auctionStart",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "auctionDuration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        },
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "getCreditAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "multiproposalMerkleRoot",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PWNSimpleLoanProposal.Multiproposal",
          "name": "multiproposal",
          "type": "tuple"
        }
      ],
      "name": "getMultiproposalHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "auctionStart",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "auctionDuration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "name": "getProposalHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "hub",
      "outputs": [
        {
          "internalType": "contract PWNHub",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "auctionStart",
              "type": "uint40"
            },
            {
              "internalType": "uint40",
              "name": "auctionDuration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "name": "makeProposal",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "proposalHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsMade",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "nonceSpace",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "revokeNonce",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "revokedNonce",
      "outputs": [
        {
          "internalType": "contract PWNRevokedNonce",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x6101206040523480156200001257600080fd5b5060405162002d1638038062002d168339810160408190526200003591620001d1565b82828260405180606001604052806021815260200162002cf56021913960408051808201825260038152620312e360ec1b6020808301919091526001600160a01b0380881660c05286811660e052851661010052915190917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f91620000bd918591016200021b565b6040516020818303038152906040528051906020012082604051602001620000e691906200021b565b60408051601f1981840301815282825280516020918201209083019490945281019190915260608101919091524660808201523060a082015260c00160408051808303601f1901815282825280516020918201206080527fb2178a58fb1eefb359ecfdd57bb19c0bdd0f4e6eed8547f46600e500ed111af3908301527fb63b40822cc79278afd8d1ce1a8006a4a298ec829d4d1610b69b2a4830c232709082015260600160408051601f19818403018152919052805160209091012060a052506200024c9650505050505050565b80516001600160a01b0381168114620001cc57600080fd5b919050565b600080600060608486031215620001e757600080fd5b620001f284620001b4565b92506200020260208501620001b4565b91506200021260408501620001b4565b90509250925092565b6000825160005b818110156200023e576020818601810151858301520162000222565b506000920191825250919050565b60805160a05160c05160e05161010051612a33620002c260003960008181610227015261133e01526000818161029b0152818161081d0152818161109801526111df0152600081816101d30152610d8d0152600081816102c2015261089001526000818161019e0152610c660152612a336000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063949bcadc116100a2578063c1a1f49111610071578063c1a1f491146102f7578063d06a0d821461030a578063e81ae3d614610331578063f0209ad614610351578063ffa1ad741461037157600080fd5b8063949bcadc146102835780639788ad5514610296578063abe93878146102bd578063b098647f146102e457600080fd5b8063365a86fc116100e9578063365a86fc146101ce578063579bfc301461020d57806379502c5514610222578063829d377014610249578063853b94a01461025c57600080fd5b806301e832721461011b5780631da4c275146101455780632d5d17fc146101785780633644e51514610199575b600080fd5b61012e610129366004611c92565b610393565b60405161013c929190611de4565b60405180910390f35b610168610153366004611e86565b60006020819052908152604090205460ff1681565b604051901515815260200161013c565b61018b610186366004611f02565b61071c565b60405161013c929190612100565b6101c07f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161013c565b6101f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161013c565b61022061021b366004612129565b610806565b005b6101f57f000000000000000000000000000000000000000000000000000000000000000081565b6101c061025736600461214b565b61088c565b6101c07fc91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b781565b6101c061029136600461218d565b61095c565b6101f57f000000000000000000000000000000000000000000000000000000000000000081565b6101c07f000000000000000000000000000000000000000000000000000000000000000081565b6101c06102f2366004612378565b6109dc565b6101c061030536600461218d565b610bff565b6101c07f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d81565b61034461033f3660046123a5565b610c36565b60405161013c919061244d565b6101c061035f366004611e86565b60016020526000908152604090205481565b610344604051806040016040528060038152602001620312e360ec1b81525081565b600061039d611b99565b6000806103df8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071c92505050565b9150915061042c7fc91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b7836040516020016104189190612460565b604051602081830303815290604052610c62565b9350600061043a83426109dc565b9050826102400151156104a4578151811080610465575060208201518251829161046391612485565b105b1561049f578151602083015160405163facf997b60e01b815260048101849052602481019290925260448201526064015b60405180910390fd5b6104f7565b81518111806104c257506020820151825182916104c091612498565b115b156104f7578151602083015160405163facf997b60e01b81526004810184905260248101929092526044820152606401610496565b6105eb8d8d878c8c8c8c604051806101c001604052808c602001516001600160a01b031681526020018c6040015181526020018c60800151151581526020018c60a0015181526020018a81526020018c610120015181526020018c6101c001518d6101a0015161056791906124ab565b61057290603c6124ab565b64ffffffffff1681526020018c6101e001516001600160a01b031681526020018c61020001516001600160a01b031681526020018c6102400151151581526020018c610260015181526020018c610280015181526020018c6102a0015181526020018c6102c001516001600160a01b0316815250610cf3565b604051806101200160405280846102400151610607578e61060e565b8461020001515b6001600160a01b0316815260200184610240015161063157846102000151610633565b8e5b6001600160a01b0316815260200184610180015163ffffffff16815260200160405180608001604052808660000151600381111561067357610673611d79565b815260200186602001516001600160a01b0316815260200186604001518152602001866060015181525081526020016106b08560c00151846114f1565b8152602001846101400151815260200184610160015164ffffffffff1681526020018461024001516106e35760006106ea565b8461022001515b815260200184610240015161070457846102200151610707565b60005b81525093505050509850989650505050505050565b604080516102e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e08101829052610200810182905261022081018290526102408101829052610260810182905261028081018290526102a081018290526102c08101919091526040805180820190915260008082526020820152828060200190518101906107fd9190612537565b91509150915091565b60405163f79924a960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f79924a990610856903390869086906004016126c4565b600060405180830381600087803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000007f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d836040516020016108e49151815260200190565b60408051601f198184030181529082905261090292916020016126e5565b6040516020818303038152906040528051906020012060405160200161093f92919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050919050565b600061096782610bff565b90506109848161097f6102208501610200860161270b565b611529565b6109966102208301610200840161270b565b6001600160a01b0316817f3b1a36970f0572a06721d882d895a21603c69916ffb9df274f0bf300a23bd933846040516109cf9190612728565b60405180910390a3919050565b6000603c836101c0015164ffffffffff161015610a23576101c083015160405163e860e0dd60e01b815264ffffffffff9091166004820152603c6024820152604401610496565b6000603c846101c00151610a3791906128e2565b64ffffffffff161115610a6d576101c083015160405163065d35df60e51b815264ffffffffff9091166004820152602401610496565b8260e0015183610100015111610aaa5760e0830151610100840151604051630dd2188760e41b815260048101929092526024820152604401610496565b826101a0015164ffffffffff16821015610aee576101a0830151604051637eb6cbd960e01b81526004810184905264ffffffffff9091166024820152604401610496565b81836101c00151846101a00151610b0591906124ab565b610b1090603c6124ab565b64ffffffffff1611610b675781836101c00151846101a00151610b3391906124ab565b610b3e90603c6124ab565b60405163aa2fd92560e01b8152600481019290925264ffffffffff166024820152604401610496565b6000610bc38460e00151856101000151610b819190612498565b603c866101a0015164ffffffffff1686610b9b9190612498565b610ba59190612906565b603c876101c00151610bb7919061291a565b64ffffffffff16611579565b9050836102400151610be55780846101000151610be09190612498565b610bf5565b808460e00151610bf59190612485565b9150505b92915050565b6000610bf97fc91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b7836040516020016104189190612728565b60608282604051602001610c4b929190612100565b604051602081830303815290604052905092915050565b60007f00000000000000000000000000000000000000000000000000000000000000008383604051602001610c989291906126e5565b60405160208183030381529060405280519060200120604051602001610cd592919061190160f01b81526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905092915050565b806101a001516001600160a01b0316336001600160a01b031614610d42576101a081015160405163a4ce7f2960e01b81523360048201526001600160a01b039091166024820152604401610496565b6101a081015160405163680cabbd60e11b81526001600160a01b0391821660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc560359460248201527f00000000000000000000000000000000000000000000000000000000000000009091169063d019577a90604401602060405180830381865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa919061293e565b610e4f576101a0810151604051630b92eb2560e11b81526001600160a01b0390911660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc56035946024820152604401610496565b6000849003610eef5760008681526020819052604090205460ff16610eea57610eb48161010001518785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166992505050565b610eea576101008101516040516301d2d55760e31b81526001600160a01b03909116600482015260248101879052604401610496565b610f91565b6000610f116040518060200160405280610f0a89898c61180d565b905261088c565b9050610f598261010001518286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166992505050565b610f8f576101008201516040516301d2d55760e31b81526001600160a01b03909116600482015260248101829052604401610496565b505b876001600160a01b03168161010001516001600160a01b031603610fd3576040516326ab1a1d60e11b81526001600160a01b0389166004820152602401610496565b8660000361100d576101408101511561100857806101400151604051637a4b6f9760e11b815260040161049691815260200190565b611056565b80610140015187146110565761014081015115158061102f5750806101200151155b1561105657806101400151604051637a4b6f9760e11b815260040161049691815260200190565b8060c0015164ffffffffff1642106110965760c081015160405163aa2fd92560e01b815242600482015264ffffffffff9091166024820152604401610496565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f291a62c8261010001518361016001518461018001516040518463ffffffff1660e01b81526004016110f5939291906126c4565b602060405180830381865afa158015611112573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611136919061293e565b61116857806101000151816101600151826101800151604051632108c30560e11b8152600401610496939291906126c4565b60e08101516001600160a01b03161580159061119a57508060e001516001600160a01b0316886001600160a01b031614155b156111d15760e0810151604051636075c95560e11b81526001600160a01b03808b1660048301529091166024820152604401610496565b8060a00151600003611273577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f79924a98261010001518361016001518461018001516040518463ffffffff1660e01b815260040161123c939291906126c4565b600060405180830381600087803b15801561125657600080fd5b505af115801561126a573d6000803e3d6000fd5b5050505061130e565b60a081015160808201516000888152600160205260409020546112969190612485565b116112c9576080810151600087815260016020526040812080549091906112be908490612485565b9091555061130e9050565b60808101516000878152600160205260409020546112e79190612485565b60a082015160405163231795cb60e21b815260048101929092526024820152604401610496565b8060400151156114e7578051604051630b7e49eb60e21b81526001600160a01b03918216600482015260009182917f000000000000000000000000000000000000000000000000000000000000000090911690632df927ac90602401602060405180830381865afa158015611387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ab919061295b565b90506001600160a01b03811615611449578251602084015160405163ec2ce34560e01b81526001600160a01b0384169263ec2ce34592611401926004016001600160a01b03929092168252602082015260400190565b602060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190612978565b91506114b0565b825161145c9063f511231560e01b611859565b15611497578251602084015160405163f511231560e01b81526001600160a01b039092169163f5112315916114019160040190815260200190565b60405163f3c0936360e01b815260040160405180910390fd5b818360600151146114e4576060830151604051633840fc0160e01b8152610496918491600401918252602082015260400190565b50505b5050505050505050565b6114f9611bf2565b506040805160808101825260008082526001600160a01b0394909416602082015290810192909252606082015290565b336001600160a01b0382161461155d57604051631144200360e31b81526001600160a01b0382166004820152602401610496565b506000908152602081905260409020805460ff19166001179055565b60008080600019858709858702925082811083820303915050806000036115b3578382816115a9576115a96128cc565b0492505050611662565b8084116115fa5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610496565b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60006001600160a01b0384163b1561176457600080856001600160a01b0316631626ba7e60e01b86866040516024016116a3929190612991565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116e191906129b2565b600060405180830381855afa9150503d806000811461171c576040519150601f19603f3d011682016040523d82523d6000602084013e611721565b606091505b5091509150818015611734575080516020145b801561175b57508051630b135d3f60e11b906117599083016020908101908401612978565b145b92505050611662565b6000806000845160410361178c5750505060208201516040830151606084015160001a6117e3565b84516040036117c557602085015160408601519093506001600160ff1b03811692506117bd60ff82901c601b612485565b9150506117e3565b845160405163058676ad60e31b815260040161049691815260200190565b6117ef86828585611875565b6001600160a01b0316876001600160a01b0316149350505050611662565b600081815b848110156118505761183c82878784818110611830576118306129ce565b9050602002013561189d565b915080611848816129e4565b915050611812565b50949350505050565b6000611864836118cc565b8015611662575061166283836118ff565b600080600061188687878787611988565b9150915061189381611a4c565b5095945050505050565b60008183106118b9576000828152602084905260409020611662565b6000838152602083905260409020611662565b60006118df826301ffc9a760e01b6118ff565b8015610bf957506118f8826001600160e01b03196118ff565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611971575060208210155b801561197d5750600081115b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156119bf5750600090506003611a43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611a13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611a3c57600060019250925050611a43565b9150600090505b94509492505050565b6000816004811115611a6057611a60611d79565b03611a685750565b6001816004811115611a7c57611a7c611d79565b03611ac95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610496565b6002816004811115611add57611add611d79565b03611b2a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610496565b6003816004811115611b3e57611b3e611d79565b03611b965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610496565b50565b60408051610120810182526000808252602082018190529181019190915260608101611bc3611bf2565b8152602001611bd0611bf2565b8152600060208201819052604082018190526060820181905260809091015290565b6040805160808101909152806000815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b0381168114611b9657600080fd5b8035611c4481611c24565b919050565b60008083601f840112611c5b57600080fd5b50813567ffffffffffffffff811115611c7357600080fd5b602083019150836020828501011115611c8b57600080fd5b9250929050565b60008060008060008060008060a0898b031215611cae57600080fd5b8835611cb981611c24565b975060208901359650604089013567ffffffffffffffff80821115611cdd57600080fd5b611ce98c838d01611c49565b909850965060608b0135915080821115611d0257600080fd5b818b0191508b601f830112611d1657600080fd5b813581811115611d2557600080fd5b8c60208260051b8501011115611d3a57600080fd5b6020830196508095505060808b0135915080821115611d5857600080fd5b50611d658b828c01611c49565b999c989b5096995094979396929594505050565b634e487b7160e01b600052602160045260246000fd5b60048110611dad57634e487b7160e01b600052602160045260246000fd5b9052565b611dbc828251611d8f565b6020818101516001600160a01b03169083015260408082015190830152606090810151910152565b82815281516001600160a01b03166020820152610200810160208301516001600160a01b038116604084015250604083015163ffffffff81166060840152506060830151611e356080840182611db1565b506080830151610100611e4a81850183611db1565b60a085015161018085015260c085015164ffffffffff166101a085015260e08501516101c0850152909301516101e09092019190915292915050565b600060208284031215611e9857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611ed957611ed9611e9f565b60405290565b6040805190810167ffffffffffffffff81118282101715611ed957611ed9611e9f565b600060208284031215611f1457600080fd5b813567ffffffffffffffff80821115611f2c57600080fd5b818401915084601f830112611f4057600080fd5b813581811115611f5257611f52611e9f565b604051601f8201601f19908116603f01168101908382118183101715611f7a57611f7a611e9f565b81604052828152876020848701011115611f9357600080fd5b826020860160208301376000928101602001929092525095945050505050565b611fbe828251611d8f565b6020810151611fd860208401826001600160a01b03169052565b5060408101516040830152606081015160608301526080810151612000608084018215159052565b5060a081015160a083015260c081015161202560c08401826001600160a01b03169052565b5060e081810151908301526101008082015190830152610120808201519083015261014080820151908301526101608082015164ffffffffff908116918401919091526101808083015163ffffffff16908401526101a0808301518216908401526101c080830151909116908301526101e0808201516001600160a01b039081169184019190915261020080830151821690840152610220808301519084015261024080830151151590840152610260808301519084015261028080830151908401526102a080830151908401526102c09182015116910152565b610320810161210f8285611fb3565b82516102e083015260208301516103008301529392505050565b6000806040838503121561213c57600080fd5b50508035926020909101359150565b60006020828403121561215d57600080fd5b6040516020810181811067ffffffffffffffff8211171561218057612180611e9f565b6040529135825250919050565b60006102e082840312156121a057600080fd5b50919050565b60048110611b9657600080fd5b8035611c44816121a6565b8015158114611b9657600080fd5b8035611c44816121be565b64ffffffffff81168114611b9657600080fd5b8035611c44816121d7565b63ffffffff81168114611b9657600080fd5b8035611c44816121f5565b60006102e0828403121561222557600080fd5b61222d611eb5565b9050612238826121b3565b815261224660208301611c39565b6020820152604082013560408201526060820135606082015261226b608083016121cc565b608082015260a082013560a082015261228660c08301611c39565b60c082015260e082810135908201526101008083013590820152610120808301359082015261014080830135908201526101606122c48184016121ea565b908201526101806122d6838201612207565b908201526101a06122e88382016121ea565b908201526101c06122fa8382016121ea565b908201526101e061230c838201611c39565b9082015261020061231e838201611c39565b90820152610220828101359082015261024061233b8184016121cc565b90820152610260828101359082015261028080830135908201526102a080830135908201526102c061236e818401611c39565b9082015292915050565b600080610300838503121561238c57600080fd5b6123968484612212565b946102e0939093013593505050565b6000808284036103208112156123ba57600080fd5b6123c48585612212565b925060406102df19820112156123d957600080fd5b506123e2611edf565b6102e084013581526103009093013560208401525092909150565b60005b83811015612418578181015183820152602001612400565b50506000910152565b600081518084526124398160208601602086016123fd565b601f01601f19169290920160200192915050565b6020815260006116626020830184612421565b6102e08101610bf98284611fb3565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bf957610bf961246f565b81810381811115610bf957610bf961246f565b64ffffffffff8181168382160190808211156124c9576124c961246f565b5092915050565b8051611c44816121a6565b8051611c4481611c24565b8051611c44816121be565b8051611c44816121d7565b8051611c44816121f5565b60006040828403121561251957600080fd5b612521611edf565b9050815181526020820151602082015292915050565b60008082840361032081121561254c57600080fd5b6102e08082121561255c57600080fd5b612564611eb5565b915061256f856124d0565b825261257d602086016124db565b602083015260408501516040830152606085015160608301526125a2608086016124e6565b608083015260a085015160a08301526125bd60c086016124db565b60c083015260e085810151908301526101008086015190830152610120808601519083015261014080860151908301526101606125fb8187016124f1565b9083015261018061260d8682016124fc565b908301526101a061261f8682016124f1565b908301526101c06126318682016124f1565b908301526101e06126438682016124db565b908301526102006126558682016124db565b9083015261022085810151908301526102406126728187016124e6565b90830152610260858101519083015261028080860151908301526102a080860151908301526102c06126a58187016124db565b81840152508193506126b986828701612507565b925050509250929050565b6001600160a01b039390931683526020830191909152604082015260600190565b828152600082516126fd8160208501602087016123fd565b919091016020019392505050565b60006020828403121561271d57600080fd5b813561166281611c24565b6102e0810161273f8261273a856121b3565b611d8f565b61274b60208401611c39565b6001600160a01b038116602084015250604083013560408301526060830135606083015261277b608084016121cc565b1515608083015260a0838101359083015261279860c08401611c39565b6001600160a01b031660c083015260e083810135908301526101008084013590830152610120808401359083015261014080840135908301526101606127df8185016121ea565b64ffffffffff16908301526101806127f8848201612207565b63ffffffff16908301526101a06128108482016121ea565b64ffffffffff16908301526101c06128298482016121ea565b64ffffffffff16908301526101e0612842848201611c39565b6001600160a01b03169083015261020061285d848201611c39565b6001600160a01b03169083015261022083810135908301526102406128838185016121cc565b151590830152610260838101359083015261028080840135908301526102a080840135908301526102c06128b8818501611c39565b6001600160a01b0316920191909152919050565b634e487b7160e01b600052601260045260246000fd5b600064ffffffffff808416806128fa576128fa6128cc565b92169190910692915050565b600082612915576129156128cc565b500490565b600064ffffffffff80841680612932576129326128cc565b92169190910492915050565b60006020828403121561295057600080fd5b8151611662816121be565b60006020828403121561296d57600080fd5b815161166281611c24565b60006020828403121561298a57600080fd5b5051919050565b8281526040602082015260006129aa6040830184612421565b949350505050565b600082516129c48184602087016123fd565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016129f6576129f661246f565b506001019056fea264697066735822122026e722b6282ca25938ff03a8c08b9c26e29a1ac617f411415722d16083d8f30864736f6c6343000810003350574e53696d706c654c6f616e447574636841756374696f6e50726f706f73616c",
    "sourceMap": "502:14506:87:-:0;;;6774:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6892:4;6898:13;6913:7;4106:773:90;;;;;;;;;;;;;;;;;6959:7:87;;;;;;;;;;;-1:-1:-1;;;6959:7:87;;;;;;;;-1:-1:-1;;;;;4271:18:90;;;;;4299:45;;;;;4354:27;;;;4564:22;;6959:7:87;;4445:95:90;;4564:22;;4581:4;;4564:22;;:::i;:::-;;;;;;;;;;;;;4554:33;;;;;;4628:7;4611:25;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4611:25:90;;;;;;;;;4601:36;;4611:25;4601:36;;;;4421:280;;;1257:25:119;;;;1298:18;;1291:34;;;;1341:18;;;1334:34;;;;4651:13:90;1384:18:119;;;1377:34;4686:4:90;1427:19:119;;;1420:61;1229:19;;4421:280:90;;;;;;-1:-1:-1;;4421:280:90;;;;;;4411:291;;4421:280;4411:291;;;;4392:310;;4780:38;4756:115;;;1666:25:119;4832:29:90;1707:18:119;;;1700:34;1639:18;;4756:115:90;;;-1:-1:-1;;4756:115:90;;;;;;;;;4746:126;;4756:115;4746:126;;;;4713:159;;-1:-1:-1;502:14506:87;;-1:-1:-1;;;;;;;502:14506:87;14:177:119;93:13;;-1:-1:-1;;;;;135:31:119;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;579:414::-;710:3;748:6;742:13;773:1;783:129;797:6;794:1;791:13;783:129;;;895:4;879:14;;;875:25;;869:32;856:11;;;849:53;812:12;783:129;;;-1:-1:-1;967:1:119;931:16;;956:13;;;-1:-1:-1;931:16:119;579:414;-1:-1:-1;579:414:119:o;1492:248::-;502:14506:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063949bcadc116100a2578063c1a1f49111610071578063c1a1f491146102f7578063d06a0d821461030a578063e81ae3d614610331578063f0209ad614610351578063ffa1ad741461037157600080fd5b8063949bcadc146102835780639788ad5514610296578063abe93878146102bd578063b098647f146102e457600080fd5b8063365a86fc116100e9578063365a86fc146101ce578063579bfc301461020d57806379502c5514610222578063829d377014610249578063853b94a01461025c57600080fd5b806301e832721461011b5780631da4c275146101455780632d5d17fc146101785780633644e51514610199575b600080fd5b61012e610129366004611c92565b610393565b60405161013c929190611de4565b60405180910390f35b610168610153366004611e86565b60006020819052908152604090205460ff1681565b604051901515815260200161013c565b61018b610186366004611f02565b61071c565b60405161013c929190612100565b6101c07f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161013c565b6101f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161013c565b61022061021b366004612129565b610806565b005b6101f57f000000000000000000000000000000000000000000000000000000000000000081565b6101c061025736600461214b565b61088c565b6101c07fc91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b781565b6101c061029136600461218d565b61095c565b6101f57f000000000000000000000000000000000000000000000000000000000000000081565b6101c07f000000000000000000000000000000000000000000000000000000000000000081565b6101c06102f2366004612378565b6109dc565b6101c061030536600461218d565b610bff565b6101c07f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d81565b61034461033f3660046123a5565b610c36565b60405161013c919061244d565b6101c061035f366004611e86565b60016020526000908152604090205481565b610344604051806040016040528060038152602001620312e360ec1b81525081565b600061039d611b99565b6000806103df8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071c92505050565b9150915061042c7fc91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b7836040516020016104189190612460565b604051602081830303815290604052610c62565b9350600061043a83426109dc565b9050826102400151156104a4578151811080610465575060208201518251829161046391612485565b105b1561049f578151602083015160405163facf997b60e01b815260048101849052602481019290925260448201526064015b60405180910390fd5b6104f7565b81518111806104c257506020820151825182916104c091612498565b115b156104f7578151602083015160405163facf997b60e01b81526004810184905260248101929092526044820152606401610496565b6105eb8d8d878c8c8c8c604051806101c001604052808c602001516001600160a01b031681526020018c6040015181526020018c60800151151581526020018c60a0015181526020018a81526020018c610120015181526020018c6101c001518d6101a0015161056791906124ab565b61057290603c6124ab565b64ffffffffff1681526020018c6101e001516001600160a01b031681526020018c61020001516001600160a01b031681526020018c6102400151151581526020018c610260015181526020018c610280015181526020018c6102a0015181526020018c6102c001516001600160a01b0316815250610cf3565b604051806101200160405280846102400151610607578e61060e565b8461020001515b6001600160a01b0316815260200184610240015161063157846102000151610633565b8e5b6001600160a01b0316815260200184610180015163ffffffff16815260200160405180608001604052808660000151600381111561067357610673611d79565b815260200186602001516001600160a01b0316815260200186604001518152602001866060015181525081526020016106b08560c00151846114f1565b8152602001846101400151815260200184610160015164ffffffffff1681526020018461024001516106e35760006106ea565b8461022001515b815260200184610240015161070457846102200151610707565b60005b81525093505050509850989650505050505050565b604080516102e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e08101829052610200810182905261022081018290526102408101829052610260810182905261028081018290526102a081018290526102c08101919091526040805180820190915260008082526020820152828060200190518101906107fd9190612537565b91509150915091565b60405163f79924a960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f79924a990610856903390869086906004016126c4565b600060405180830381600087803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000007f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d836040516020016108e49151815260200190565b60408051601f198184030181529082905261090292916020016126e5565b6040516020818303038152906040528051906020012060405160200161093f92919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050919050565b600061096782610bff565b90506109848161097f6102208501610200860161270b565b611529565b6109966102208301610200840161270b565b6001600160a01b0316817f3b1a36970f0572a06721d882d895a21603c69916ffb9df274f0bf300a23bd933846040516109cf9190612728565b60405180910390a3919050565b6000603c836101c0015164ffffffffff161015610a23576101c083015160405163e860e0dd60e01b815264ffffffffff9091166004820152603c6024820152604401610496565b6000603c846101c00151610a3791906128e2565b64ffffffffff161115610a6d576101c083015160405163065d35df60e51b815264ffffffffff9091166004820152602401610496565b8260e0015183610100015111610aaa5760e0830151610100840151604051630dd2188760e41b815260048101929092526024820152604401610496565b826101a0015164ffffffffff16821015610aee576101a0830151604051637eb6cbd960e01b81526004810184905264ffffffffff9091166024820152604401610496565b81836101c00151846101a00151610b0591906124ab565b610b1090603c6124ab565b64ffffffffff1611610b675781836101c00151846101a00151610b3391906124ab565b610b3e90603c6124ab565b60405163aa2fd92560e01b8152600481019290925264ffffffffff166024820152604401610496565b6000610bc38460e00151856101000151610b819190612498565b603c866101a0015164ffffffffff1686610b9b9190612498565b610ba59190612906565b603c876101c00151610bb7919061291a565b64ffffffffff16611579565b9050836102400151610be55780846101000151610be09190612498565b610bf5565b808460e00151610bf59190612485565b9150505b92915050565b6000610bf97fc91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b7836040516020016104189190612728565b60608282604051602001610c4b929190612100565b604051602081830303815290604052905092915050565b60007f00000000000000000000000000000000000000000000000000000000000000008383604051602001610c989291906126e5565b60405160208183030381529060405280519060200120604051602001610cd592919061190160f01b81526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905092915050565b806101a001516001600160a01b0316336001600160a01b031614610d42576101a081015160405163a4ce7f2960e01b81523360048201526001600160a01b039091166024820152604401610496565b6101a081015160405163680cabbd60e11b81526001600160a01b0391821660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc560359460248201527f00000000000000000000000000000000000000000000000000000000000000009091169063d019577a90604401602060405180830381865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa919061293e565b610e4f576101a0810151604051630b92eb2560e11b81526001600160a01b0390911660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc56035946024820152604401610496565b6000849003610eef5760008681526020819052604090205460ff16610eea57610eb48161010001518785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166992505050565b610eea576101008101516040516301d2d55760e31b81526001600160a01b03909116600482015260248101879052604401610496565b610f91565b6000610f116040518060200160405280610f0a89898c61180d565b905261088c565b9050610f598261010001518286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166992505050565b610f8f576101008201516040516301d2d55760e31b81526001600160a01b03909116600482015260248101829052604401610496565b505b876001600160a01b03168161010001516001600160a01b031603610fd3576040516326ab1a1d60e11b81526001600160a01b0389166004820152602401610496565b8660000361100d576101408101511561100857806101400151604051637a4b6f9760e11b815260040161049691815260200190565b611056565b80610140015187146110565761014081015115158061102f5750806101200151155b1561105657806101400151604051637a4b6f9760e11b815260040161049691815260200190565b8060c0015164ffffffffff1642106110965760c081015160405163aa2fd92560e01b815242600482015264ffffffffff9091166024820152604401610496565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f291a62c8261010001518361016001518461018001516040518463ffffffff1660e01b81526004016110f5939291906126c4565b602060405180830381865afa158015611112573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611136919061293e565b61116857806101000151816101600151826101800151604051632108c30560e11b8152600401610496939291906126c4565b60e08101516001600160a01b03161580159061119a57508060e001516001600160a01b0316886001600160a01b031614155b156111d15760e0810151604051636075c95560e11b81526001600160a01b03808b1660048301529091166024820152604401610496565b8060a00151600003611273577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f79924a98261010001518361016001518461018001516040518463ffffffff1660e01b815260040161123c939291906126c4565b600060405180830381600087803b15801561125657600080fd5b505af115801561126a573d6000803e3d6000fd5b5050505061130e565b60a081015160808201516000888152600160205260409020546112969190612485565b116112c9576080810151600087815260016020526040812080549091906112be908490612485565b9091555061130e9050565b60808101516000878152600160205260409020546112e79190612485565b60a082015160405163231795cb60e21b815260048101929092526024820152604401610496565b8060400151156114e7578051604051630b7e49eb60e21b81526001600160a01b03918216600482015260009182917f000000000000000000000000000000000000000000000000000000000000000090911690632df927ac90602401602060405180830381865afa158015611387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ab919061295b565b90506001600160a01b03811615611449578251602084015160405163ec2ce34560e01b81526001600160a01b0384169263ec2ce34592611401926004016001600160a01b03929092168252602082015260400190565b602060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190612978565b91506114b0565b825161145c9063f511231560e01b611859565b15611497578251602084015160405163f511231560e01b81526001600160a01b039092169163f5112315916114019160040190815260200190565b60405163f3c0936360e01b815260040160405180910390fd5b818360600151146114e4576060830151604051633840fc0160e01b8152610496918491600401918252602082015260400190565b50505b5050505050505050565b6114f9611bf2565b506040805160808101825260008082526001600160a01b0394909416602082015290810192909252606082015290565b336001600160a01b0382161461155d57604051631144200360e31b81526001600160a01b0382166004820152602401610496565b506000908152602081905260409020805460ff19166001179055565b60008080600019858709858702925082811083820303915050806000036115b3578382816115a9576115a96128cc565b0492505050611662565b8084116115fa5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610496565b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b60006001600160a01b0384163b1561176457600080856001600160a01b0316631626ba7e60e01b86866040516024016116a3929190612991565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116e191906129b2565b600060405180830381855afa9150503d806000811461171c576040519150601f19603f3d011682016040523d82523d6000602084013e611721565b606091505b5091509150818015611734575080516020145b801561175b57508051630b135d3f60e11b906117599083016020908101908401612978565b145b92505050611662565b6000806000845160410361178c5750505060208201516040830151606084015160001a6117e3565b84516040036117c557602085015160408601519093506001600160ff1b03811692506117bd60ff82901c601b612485565b9150506117e3565b845160405163058676ad60e31b815260040161049691815260200190565b6117ef86828585611875565b6001600160a01b0316876001600160a01b0316149350505050611662565b600081815b848110156118505761183c82878784818110611830576118306129ce565b9050602002013561189d565b915080611848816129e4565b915050611812565b50949350505050565b6000611864836118cc565b8015611662575061166283836118ff565b600080600061188687878787611988565b9150915061189381611a4c565b5095945050505050565b60008183106118b9576000828152602084905260409020611662565b6000838152602083905260409020611662565b60006118df826301ffc9a760e01b6118ff565b8015610bf957506118f8826001600160e01b03196118ff565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611971575060208210155b801561197d5750600081115b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156119bf5750600090506003611a43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611a13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611a3c57600060019250925050611a43565b9150600090505b94509492505050565b6000816004811115611a6057611a60611d79565b03611a685750565b6001816004811115611a7c57611a7c611d79565b03611ac95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610496565b6002816004811115611add57611add611d79565b03611b2a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610496565b6003816004811115611b3e57611b3e611d79565b03611b965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610496565b50565b60408051610120810182526000808252602082018190529181019190915260608101611bc3611bf2565b8152602001611bd0611bf2565b8152600060208201819052604082018190526060820181905260809091015290565b6040805160808101909152806000815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b0381168114611b9657600080fd5b8035611c4481611c24565b919050565b60008083601f840112611c5b57600080fd5b50813567ffffffffffffffff811115611c7357600080fd5b602083019150836020828501011115611c8b57600080fd5b9250929050565b60008060008060008060008060a0898b031215611cae57600080fd5b8835611cb981611c24565b975060208901359650604089013567ffffffffffffffff80821115611cdd57600080fd5b611ce98c838d01611c49565b909850965060608b0135915080821115611d0257600080fd5b818b0191508b601f830112611d1657600080fd5b813581811115611d2557600080fd5b8c60208260051b8501011115611d3a57600080fd5b6020830196508095505060808b0135915080821115611d5857600080fd5b50611d658b828c01611c49565b999c989b5096995094979396929594505050565b634e487b7160e01b600052602160045260246000fd5b60048110611dad57634e487b7160e01b600052602160045260246000fd5b9052565b611dbc828251611d8f565b6020818101516001600160a01b03169083015260408082015190830152606090810151910152565b82815281516001600160a01b03166020820152610200810160208301516001600160a01b038116604084015250604083015163ffffffff81166060840152506060830151611e356080840182611db1565b506080830151610100611e4a81850183611db1565b60a085015161018085015260c085015164ffffffffff166101a085015260e08501516101c0850152909301516101e09092019190915292915050565b600060208284031215611e9857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611ed957611ed9611e9f565b60405290565b6040805190810167ffffffffffffffff81118282101715611ed957611ed9611e9f565b600060208284031215611f1457600080fd5b813567ffffffffffffffff80821115611f2c57600080fd5b818401915084601f830112611f4057600080fd5b813581811115611f5257611f52611e9f565b604051601f8201601f19908116603f01168101908382118183101715611f7a57611f7a611e9f565b81604052828152876020848701011115611f9357600080fd5b826020860160208301376000928101602001929092525095945050505050565b611fbe828251611d8f565b6020810151611fd860208401826001600160a01b03169052565b5060408101516040830152606081015160608301526080810151612000608084018215159052565b5060a081015160a083015260c081015161202560c08401826001600160a01b03169052565b5060e081810151908301526101008082015190830152610120808201519083015261014080820151908301526101608082015164ffffffffff908116918401919091526101808083015163ffffffff16908401526101a0808301518216908401526101c080830151909116908301526101e0808201516001600160a01b039081169184019190915261020080830151821690840152610220808301519084015261024080830151151590840152610260808301519084015261028080830151908401526102a080830151908401526102c09182015116910152565b610320810161210f8285611fb3565b82516102e083015260208301516103008301529392505050565b6000806040838503121561213c57600080fd5b50508035926020909101359150565b60006020828403121561215d57600080fd5b6040516020810181811067ffffffffffffffff8211171561218057612180611e9f565b6040529135825250919050565b60006102e082840312156121a057600080fd5b50919050565b60048110611b9657600080fd5b8035611c44816121a6565b8015158114611b9657600080fd5b8035611c44816121be565b64ffffffffff81168114611b9657600080fd5b8035611c44816121d7565b63ffffffff81168114611b9657600080fd5b8035611c44816121f5565b60006102e0828403121561222557600080fd5b61222d611eb5565b9050612238826121b3565b815261224660208301611c39565b6020820152604082013560408201526060820135606082015261226b608083016121cc565b608082015260a082013560a082015261228660c08301611c39565b60c082015260e082810135908201526101008083013590820152610120808301359082015261014080830135908201526101606122c48184016121ea565b908201526101806122d6838201612207565b908201526101a06122e88382016121ea565b908201526101c06122fa8382016121ea565b908201526101e061230c838201611c39565b9082015261020061231e838201611c39565b90820152610220828101359082015261024061233b8184016121cc565b90820152610260828101359082015261028080830135908201526102a080830135908201526102c061236e818401611c39565b9082015292915050565b600080610300838503121561238c57600080fd5b6123968484612212565b946102e0939093013593505050565b6000808284036103208112156123ba57600080fd5b6123c48585612212565b925060406102df19820112156123d957600080fd5b506123e2611edf565b6102e084013581526103009093013560208401525092909150565b60005b83811015612418578181015183820152602001612400565b50506000910152565b600081518084526124398160208601602086016123fd565b601f01601f19169290920160200192915050565b6020815260006116626020830184612421565b6102e08101610bf98284611fb3565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bf957610bf961246f565b81810381811115610bf957610bf961246f565b64ffffffffff8181168382160190808211156124c9576124c961246f565b5092915050565b8051611c44816121a6565b8051611c4481611c24565b8051611c44816121be565b8051611c44816121d7565b8051611c44816121f5565b60006040828403121561251957600080fd5b612521611edf565b9050815181526020820151602082015292915050565b60008082840361032081121561254c57600080fd5b6102e08082121561255c57600080fd5b612564611eb5565b915061256f856124d0565b825261257d602086016124db565b602083015260408501516040830152606085015160608301526125a2608086016124e6565b608083015260a085015160a08301526125bd60c086016124db565b60c083015260e085810151908301526101008086015190830152610120808601519083015261014080860151908301526101606125fb8187016124f1565b9083015261018061260d8682016124fc565b908301526101a061261f8682016124f1565b908301526101c06126318682016124f1565b908301526101e06126438682016124db565b908301526102006126558682016124db565b9083015261022085810151908301526102406126728187016124e6565b90830152610260858101519083015261028080860151908301526102a080860151908301526102c06126a58187016124db565b81840152508193506126b986828701612507565b925050509250929050565b6001600160a01b039390931683526020830191909152604082015260600190565b828152600082516126fd8160208501602087016123fd565b919091016020019392505050565b60006020828403121561271d57600080fd5b813561166281611c24565b6102e0810161273f8261273a856121b3565b611d8f565b61274b60208401611c39565b6001600160a01b038116602084015250604083013560408301526060830135606083015261277b608084016121cc565b1515608083015260a0838101359083015261279860c08401611c39565b6001600160a01b031660c083015260e083810135908301526101008084013590830152610120808401359083015261014080840135908301526101606127df8185016121ea565b64ffffffffff16908301526101806127f8848201612207565b63ffffffff16908301526101a06128108482016121ea565b64ffffffffff16908301526101c06128298482016121ea565b64ffffffffff16908301526101e0612842848201611c39565b6001600160a01b03169083015261020061285d848201611c39565b6001600160a01b03169083015261022083810135908301526102406128838185016121cc565b151590830152610260838101359083015261028080840135908301526102a080840135908301526102c06128b8818501611c39565b6001600160a01b0316920191909152919050565b634e487b7160e01b600052601260045260246000fd5b600064ffffffffff808416806128fa576128fa6128cc565b92169190910692915050565b600082612915576129156128cc565b500490565b600064ffffffffff80841680612932576129326128cc565b92169190910492915050565b60006020828403121561295057600080fd5b8151611662816121be565b60006020828403121561296d57600080fd5b815161166281611c24565b60006020828403121561298a57600080fd5b5051919050565b8281526040602082015260006129aa6040830184612421565b949350505050565b600082516129c48184602087016123fd565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016129f6576129f661246f565b506001019056fea264697066735822122026e722b6282ca25938ff03a8c08b9c26e29a1ac617f411415722d16083d8f30864736f6c63430008100033",
    "sourceMap": "502:14506:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11230:3775;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2224:46:90;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;4591:14:119;;4584:22;4566:41;;4554:2;4539:18;2224:46:90;4426:187:119;8443:192:87;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1134:41:90:-;;;;;;;;9099:25:119;;;9087:2;9072:18;1134:41:90;8953:177:119;1243:27:90;;;;;;;;-1:-1:-1;;;;;9315:32:119;;;9297:51;;9285:2;9270:18;1243:27:90;9135:219:119;5801:137:90;;;;;;:::i;:::-;;:::i;:::-;;1327:33;;;;;5251:322;;;;;;:::i;:::-;;:::i;692:621:87:-;;736:577;692:621;;7546:273;;;;;;:::i;:::-;;:::i;1276:45:90:-;;;;;1181:55;;;;;9059:2108:87;;;;;;:::i;:::-;;:::i;7139:164::-;;;;;;:::i;:::-;;:::i;1367:108:90:-;;1416:59;1367:108;;8036:211:87;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2422:46:90:-;;;;;;:::i;:::-;;;;;;;;;;;;;;577:38:87;;;;;;;;;;;;;;;-1:-1:-1;;;577:38:87;;;;;11230:3775;11470:20;11492:36;;:::i;:::-;11573:24;11599:36;11639:32;11658:12;;11639:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11639:18:87;;-1:-1:-1;;;11639:32:87:i;:::-;11572:99;;;;11727:57;736:577;11774:8;11763:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;11727:16;:57::i;:::-;11712:72;;11838:20;11861:42;11877:8;11887:15;11861;:42::i;:::-;11838:65;;11951:8;:16;;;11947:976;;;12019:35;;12004:50;;;:146;;-1:-1:-1;12112:23:87;;;;12074:35;;12138:12;;12074:61;;;:::i;:::-;:76;12004:146;11983:450;;;12309:35;;12376:23;;;;12190:228;;-1:-1:-1;;;12190:228:87;;;;;16583:25:119;;;16624:18;;;16617:34;;;;16667:18;;;16660:34;16556:18;;12190:228:87;;;;;;;;11983:450;11947:976;;;12499:35;;12484:50;;;:146;;-1:-1:-1;12592:23:87;;;;12554:35;;12618:12;;12554:61;;;:::i;:::-;:76;12484:146;12463:450;;;12789:35;;12856:23;;;;12670:228;;-1:-1:-1;;;12670:228:87;;;;;16583:25:119;;;16624:18;;;16617:34;;;;16667:18;;;16660:34;16556:18;;12670:228:87;16381:319:119;12463:450:87;12967:1047;12996:8;13018:17;13049:12;13075:22;;13111:9;;13134:870;;;;;;;;13184:8;:26;;;-1:-1:-1;;;;;13134:870:87;;;;;13242:8;:21;;;13134:870;;;;13314:8;:40;;;13134:870;;;;;;13400:8;:35;;;13134:870;;;;13467:12;13134:870;;;;13519:8;:29;;;13134:870;;;;13602:8;:24;;;13578:8;:21;;;:48;;;;:::i;:::-;:60;;13629:9;13578:60;:::i;:::-;13134:870;;;;;;13673:8;:24;;;-1:-1:-1;;;;;13134:870:87;;;;;13725:8;:17;;;-1:-1:-1;;;;;13134:870:87;;;;;13769:8;:16;;;13134:870;;;;;;13822:8;:26;;;13134:870;;;;13878:8;:19;;;13134:870;;;;13922:8;:14;;;13134:870;;;;13968:8;:21;;;-1:-1:-1;;;;;13134:870:87;;;;12967:15;:1047::i;:::-;14073:925;;;;;;;;14115:8;:16;;;:47;;14154:8;14115:47;;;14134:8;:17;;;14115:47;-1:-1:-1;;;;;14073:925:87;;;;;14186:8;:16;;;:47;;14216:8;:17;;;14186:47;;;14205:8;14186:47;-1:-1:-1;;;;;14073:925:87;;;;;14257:8;:17;;;14073:925;;;;;;14300:239;;;;;;;;14345:8;:27;;;14300:239;;;;;;;;:::i;:::-;;;;;14404:8;:26;;;-1:-1:-1;;;;;14300:239:87;;;;;14452:8;:21;;;14300:239;;;;14499:8;:25;;;14300:239;;;14073:925;;;;14561:124;14610:8;:22;;;14658:12;14561:16;:124::i;:::-;14073:925;;;;14720:8;:28;;;14073:925;;;;14783:8;:28;;;14073:925;;;;;;14841:8;:16;;;:57;;14896:1;14841:57;;;14860:8;:25;;;14841:57;14073:925;;;;14930:8;:16;;;:57;;14962:8;:25;;;14930:57;;;14957:1;14930:57;14073:925;;;14061:937;;11530:3475;;;11230:3775;;;;;;;;;;;:::o;8443:192::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8587:12:87;8576:52;;;;;;;;;;;;:::i;:::-;8569:59;;;;8443:192;;;:::o;5801:137:90:-;5876:55;;-1:-1:-1;;;5876:55:90;;-1:-1:-1;;;;;5876:12:90;:24;;;;:55;;5901:10;;5913;;5925:5;;5876:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:137;;:::o;5251:322::-;5338:7;5415:30;1416:59;5526:13;5515:25;;;;;;21037:13:119;21019:32;;21007:2;20992:18;;20809:248;5515:25:90;;;;-1:-1:-1;;5515:25:90;;;;;;;;;;5457:97;;;5515:25;5457:97;;:::i;:::-;;;;;;;;;;;;;5447:108;;;;;;5374:191;;;;;;;;-1:-1:-1;;;21684:27:119;;21736:1;21727:11;;21720:27;;;;21772:2;21763:12;;21756:28;21809:2;21800:12;;21426:392;5374:191:90;;;;;;;;;;;;;5364:202;;;;;;5357:209;;5251:322;;;:::o;7546:273:87:-;7614:20;7661:25;7677:8;7661:15;:25::i;:::-;7646:40;-1:-1:-1;7696:46:87;7646:40;7724:17;;;;;;;;:::i;:::-;7696:13;:46::i;:::-;7784:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7757:55:87;7770:12;7757:55;7803:8;7757:55;;;;;;:::i;:::-;;;;;;;;7546:273;;;:::o;9059:2108::-;9150:7;9226:9;9199:8;:24;;;:36;;;9195:197;;;9308:24;;;;9258:123;;-1:-1:-1;;;9258:123:87;;25114:12:119;25102:25;;;9258:123:87;;;25084:44:119;9357:9:87;25144:18:119;;;25137:34;25057:18;;9258:123:87;24902:275:119;9195:197:87;9444:1;9432:9;9405:8;:24;;;:36;;;;:::i;:::-;:40;;;9401:176;;;9527:24;;;;9468:98;;-1:-1:-1;;;9468:98:87;;25679:12:119;25667:25;;;9468:98:87;;;25649:44:119;25622:18;;9468:98:87;25504:195:119;9401:176:87;9618:8;:24;;;9590:8;:24;;;:52;9586:248;;9725:24;;;;9784;;;;9665:158;;-1:-1:-1;;;9665:158:87;;;;;25878:25:119;;;;25919:18;;;25912:34;25851:18;;9665:158:87;25704:248:119;9586::87;9900:8;:21;;;9888:33;;:9;:33;9884:205;;;10042:21;;;;9944:134;;-1:-1:-1;;;9944:134:87;;;;;26130:25:119;;;26203:12;26191:25;;;26171:18;;;26164:53;26103:18;;9944:134:87;25957:266:119;9884:205:87;10166:9;10126:8;:24;;;10102:8;:21;;;:48;;;;:::i;:::-;:60;;10153:9;10102:60;:::i;:::-;:73;;;10098:260;;10233:9;10296:8;:24;;;10272:8;:21;;;:48;;;;:::i;:::-;:60;;10323:9;10272:60;:::i;:::-;10198:149;;-1:-1:-1;;;10198:149:87;;;;;26130:25:119;;;;26203:12;26191:25;26171:18;;;26164:53;26103:18;;10198:149:87;25957:266:119;10098:260:87;10507:25;10535:284;10587:8;:24;;;10560:8;:24;;;:51;;;;:::i;:::-;10695:9;10670:8;:21;;;10658:33;;:9;:33;;;;:::i;:::-;10657:47;;;;:::i;:::-;10780:9;10753:8;:24;;;:36;;;;:::i;:::-;10535:284;;:11;:284::i;:::-;10507:312;;11026:8;:16;;;:134;;11143:17;11116:8;:24;;;:44;;;;:::i;:::-;11026:134;;;11084:17;11057:8;:24;;;:44;;;;:::i;:::-;11019:141;;;9059:2108;;;;;:::o;7139:164::-;7213:7;7239:57;736:577;7286:8;7275:20;;;;;;;;:::i;8036:211::-;8173:12;8215:8;8225:14;8204:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8197:43;;8036:211;;;;:::o;7156:332:90:-;7283:7;7360:16;7422;7440:15;7388:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7378:92;;;;;;7319:161;;;;;;;;-1:-1:-1;;;21684:27:119;;21736:1;21727:11;;21720:27;;;;21772:2;21763:12;;21756:28;21809:2;21800:12;;21426:392;7319:161:90;;;;;;;;;;;;;7309:172;;;;;;7302:179;;7156:332;;;;:::o;8351:5323::-;8664:8;:21;;;-1:-1:-1;;;;;8650:35:90;:10;-1:-1:-1;;;;;8650:35:90;;8646:155;;8766:21;;;;8708:82;;-1:-1:-1;;;8708:82:90;;8740:10;8708:82;;;26763:34:119;-1:-1:-1;;;;;26833:15:119;;;26813:18;;;26806:43;26698:18;;8708:82:90;26551:304:119;8646:155:90;8826:21;;;;8815:57;;-1:-1:-1;;;8815:57:90;;-1:-1:-1;;;;;27052:32:119;;;8815:57:90;;;27034:51:119;266:28:76;27101:18:119;;;27094:34;8815:3:90;:10;;;;;;27007:18:119;;8815:57:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8810:178;;8924:21;;;;8895:82;;-1:-1:-1;;;8895:82:90;;-1:-1:-1;;;;;27052:32:119;;;8895:82:90;;;27034:51:119;266:28:76;27101:18:119;;;27094:34;27007:18;;8895:82:90;26860:274:119;8810:178:90;9100:1;9067:34;;;9063:1025;;9163:13;:27;;;;;;;;;;;;;9158:293;;9215:83;9255:8;:17;;;9274:12;9288:9;;9215:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9215:39:90;;-1:-1:-1;;;9215:83:90:i;:::-;9210:227;;9376:17;;;;9329:89;;-1:-1:-1;;;9329:89:90;;-1:-1:-1;;;;;27052:32:119;;;9329:89:90;;;27034:51:119;27101:18;;;27094:34;;;27007:18;;9329:89:90;26860:274:119;9210:227:90;9063:1025;;;9520:25;9548:287;9586:235;;;;;;;;9647:155;9713:22;;9767:12;9647:32;:155::i;:::-;9586:235;;9548:20;:287::i;:::-;9520:315;;9854:88;9894:8;:17;;;9913;9932:9;;9854:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9854:39:90;;-1:-1:-1;;;9854:88:90:i;:::-;9849:229;;10016:17;;;;9969:94;;-1:-1:-1;;;9969:94:90;;-1:-1:-1;;;;;27052:32:119;;;9969:94:90;;;27034:51:119;27101:18;;;27094:34;;;27007:18;;9969:94:90;26860:274:119;9849:229:90;9467:621;9063:1025;10165:8;-1:-1:-1;;;;;10144:29:90;:8;:17;;;-1:-1:-1;;;;;10144:29:90;;10140:104;;10196:37;;-1:-1:-1;;;10196:37:90;;-1:-1:-1;;;;;9315:32:119;;10196:37:90;;;9297:51:119;9270:18;;10196:37:90;9135:219:119;10140:104:90;10296:17;10317:1;10296:22;10292:500;;10338:26;;;;:31;10334:152;;10442:8;:26;;;10396:75;;-1:-1:-1;;;10396:75:90;;;;;;9099:25:119;;9087:2;9072:18;;8953:177;10334:152:90;10292:500;;;10541:8;:26;;;10520:17;:47;10516:266;;10591:26;;;;:31;;;:52;;;10627:8;:16;;;10626:17;10591:52;10587:181;;;10720:8;:26;;;10674:75;;-1:-1:-1;;;10674:75:90;;;;;;9099:25:119;;9087:2;9072:18;;8953:177;10587:181:90;10866:8;:19;;;10847:38;;:15;:38;10843:146;;10956:19;;;;10908:70;;-1:-1:-1;;;10908:70:90;;10927:15;10908:70;;;26130:25:119;26203:12;26191:25;;;26171:18;;;26164:53;26103:18;;10908:70:90;25957:266:119;10843:146:90;11045:12;-1:-1:-1;;;;;11045:26:90;;11072:8;:17;;;11091:8;:19;;;11112:8;:14;;;11045:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11040:296;;11205:8;:17;;;11252:8;:19;;;11296:8;:14;;;11150:175;;-1:-1:-1;;;11150:175:90;;;;;;;;;;:::i;11040:296::-;11409:24;;;;-1:-1:-1;;;;;11409:38:90;;;;;:78;;;11463:8;:24;;;-1:-1:-1;;;;;11451:36:90;:8;-1:-1:-1;;;;;11451:36:90;;;11409:78;11405:198;;;11565:24;;;;11510:82;;-1:-1:-1;;;11510:82:90;;-1:-1:-1;;;;;26781:15:119;;;11510:82:90;;;26763:34:119;26833:15;;;26813:18;;;26806:43;26698:18;;11510:82:90;26551:304:119;11405:198:90;11617:8;:29;;;11650:1;11617:34;11613:723;;11752:12;-1:-1:-1;;;;;11752:24:90;;11777:8;:17;;;11796:8;:19;;;11817:8;:14;;;11752:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11613:723;;;11905:29;;;;11880:21;;;;11853:24;;;;:10;:24;;;;;;:48;;11880:21;11853:48;:::i;:::-;:81;11849:487;;12046:21;;;;12018:24;;;;:10;:24;;;;;:49;;:24;;;:49;;12046:21;;12018:49;:::i;:::-;;;;-1:-1:-1;11849:487:90;;-1:-1:-1;11849:487:90;;12235:21;;;;12208:24;;;;:10;:24;;;;;;:48;;12235:21;12208:48;:::i;:::-;12281:29;;;;12155:170;;-1:-1:-1;;;12155:170:90;;;;;25878:25:119;;;;25919:18;;;25912:34;25851:18;;12155:170:90;25704:248:119;11849:487:90;12406:8;:40;;;12402:1266;;;12574:26;;12539:62;;-1:-1:-1;;;12539:62:90;;-1:-1:-1;;;;;9315:32:119;;;12539:62:90;;;9297:51:119;12462:26:90;;;;12539:6;:34;;;;;;9270:18:119;;12539:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12502:99;-1:-1:-1;;;;;;12619:31:90;;;12615:717;;12802:26;;12839:21;;;;12740:139;;-1:-1:-1;;;12740:139:90;;-1:-1:-1;;;;;12740:32:90;;;;;:139;;;;-1:-1:-1;;;;;27052:32:119;;;;27034:51;;27116:2;27101:18;;27094:34;27022:2;27007:18;;26860:274;12740:139:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12719:160;;12615:717;;;12936:26;;12904:87;;-1:-1:-1;;;12904:31:90;:87::i;:::-;12900:432;;;13085:26;;13133:21;;;;13076:79;;-1:-1:-1;;;13076:79:90;;-1:-1:-1;;;;;13076:56:90;;;;;;:79;;;;9099:25:119;;;9087:2;9072:18;;8953:177;12900:432:90;13284:33;;-1:-1:-1;;;13284:33:90;;;;;;;;;;;12900:432;13389:18;13350:8;:35;;;:57;13346:312;;13589:35;;;;13474:169;;-1:-1:-1;;;13474:169:90;;;;13539:18;;13474:169;;25878:25:119;;;25934:2;25919:18;;25912:34;25866:2;25851:18;;25704:248;13346:312:90;12448:1220;;12402:1266;8351:5323;;;;;;;;:::o;2528:160:0:-;2604:12;;:::i;:::-;-1:-1:-1;2635:46:0;;;;;;;;-1:-1:-1;2635:46:0;;;-1:-1:-1;;;;;2635:46:0;;;;;;;;;;;;;;;;;;;;2528:160::o;7709:238:90:-;7795:10;-1:-1:-1;;;;;7795:22:90;;;7791:105;;7840:45;;-1:-1:-1;;;7840:45:90;;-1:-1:-1;;;;;9315:32:119;;7840:45:90;;;9297:51:119;9270:18;;7840:45:90;9135:219:119;7791:105:90;-1:-1:-1;7906:13:90;:27;;;;;;;;;;:34;;-1:-1:-1;;7906:34:90;7936:4;7906:34;;;7709:238::o;1667:4213:64:-;1749:14;;;-1:-1:-1;;2286:1:64;2283;2276:20;2329:1;2326;2322:9;2313:18;;2384:5;2380:2;2377:13;2369:5;2365:2;2361:14;2357:34;2348:43;;;2486:5;2495:1;2486:10;2482:368;;2824:11;2816:5;:19;;;;;:::i;:::-;;2809:26;;;;;;2482:368;2974:5;2960:11;:19;2952:53;;;;-1:-1:-1;;;2952:53:64;;28811:2:119;2952:53:64;;;28793:21:119;28850:2;28830:18;;;28823:30;-1:-1:-1;;;28869:18:119;;;28862:51;28930:18;;2952:53:64;28609:345:119;2952:53:64;3261:17;3396:11;3393:1;3390;3383:25;3929:12;;3944:1;3929:16;;;3914:32;;4049:22;;;;;3557:21;;;4147:16;;;3510:20;;;;3499:32;;;3899:12;4294;;;4290:23;;;;4286:31;;;4406:12;;;;4397:21;;;;4755:1;:15;;4774:1;4754:21;;;5007;;;5003:25;;4992:36;5076:21;;;5072:25;;5061:36;5146:21;;;5142:25;;5131:36;5216:21;;;5212:25;;5201:36;5286:21;;;5282:25;;5271:36;5357:21;;;5353:25;;;5342:36;5821:15;;-1:-1:-1;;1667:4213:64;;;;;;:::o;1541:1696:85:-;1677:4;-1:-1:-1;;;;;1759:18:85;;;:22;1755:1476;;1798:12;1812:19;1835:6;-1:-1:-1;;;;;1835:17:85;1893:34;;;1929:4;1935:9;1870:75;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1870:75:85;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:75:85;-1:-1:-1;;;;;;1870:75:85;;;;;;;;;;1835:124;;;;1870:75;1835:124;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1797:162;;;;1996:7;:46;;;;;2023:6;:13;2040:2;2023:19;1996:46;:142;;;;-1:-1:-1;2062:29:85;;-1:-1:-1;;;2103:34:85;2062:29;;;;;;;;;;;;:::i;:::-;:76;1996:142;1973:165;;;;;;1755:1476;2226:9;2249;2272:7;2348:9;:16;2368:2;2348:22;2344:817;;-1:-1:-1;;;2447:4:85;2432:20;;2426:27;2500:4;2485:20;;2479:27;2561:4;2546:20;;2540:27;2537:1;2532:36;2344:817;;;2686:9;:16;2706:2;2686:22;2682:479;;2814:4;2799:20;;2793:27;2868:4;2853:20;;2847:27;2793;;-1:-1:-1;;;;;;2914:80:85;;;-1:-1:-1;3022:25:85;3038:3;3023:18;;;3045:2;3022:25;:::i;:::-;3012:36;;2710:353;2682:479;;;3127:9;:16;3094:52;;-1:-1:-1;;;3094:52:85;;;;;;9099:25:119;;9087:2;9072:18;;8953:177;2682:479:85;3192:28;3206:4;3212:1;3215;3218;3192:13;:28::i;:::-;-1:-1:-1;;;;;3182:38:85;:6;-1:-1:-1;;;;;3182:38:85;;3175:45;;;;;;;2331:300:60;2424:7;2466:4;2424:7;2480:116;2500:16;;;2480:116;;;2552:33;2562:12;2576:5;;2582:1;2576:8;;;;;;;:::i;:::-;;;;;;;2552:9;:33::i;:::-;2537:48;-1:-1:-1;2518:3:60;;;;:::i;:::-;;;;2480:116;;;-1:-1:-1;2612:12:60;2331:300;-1:-1:-1;;;;2331:300:60:o;1349:282:62:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;6598:232:59:-;6683:7;6703:17;6722:18;6744:25;6755:4;6761:1;6764;6767;6744:10;:25::i;:::-;6702:67;;;;6779:18;6791:5;6779:11;:18::i;:::-;-1:-1:-1;6814:9:59;6598:232;-1:-1:-1;;;;;6598:232:59:o;9205:147:60:-;9268:7;9298:1;9294;:5;:51;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9294:51;;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9302:20;9358:261;704:427:62;768:4;975:68;1008:7;-1:-1:-1;;;975:32:62;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:62;1093:7;-1:-1:-1;;;;;;1060:32:62;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:62:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;29978:33:119;;4592:71:62;;;;29960:52:119;;;;4592:71:62;;;;;;;;;;29933:18:119;;;;4592:71:62;;;;;;;;;-1:-1:-1;;;;;4592:71:62;-1:-1:-1;;;4592:71:62;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:62:o;5009:1456:59:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:59;;-1:-1:-1;6123:30:59;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;30250:25:119;;;30323:4;30311:17;;30291:18;;;30284:45;;;;30345:18;;;30338:34;;;30388:18;;;30381:34;;;6276:24:59;;30222:19:119;;6276:24:59;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:59;;-1:-1:-1;;6276:24:59;;;-1:-1:-1;;;;;;;6314:20:59;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:59;;-1:-1:-1;5009:1456:59;;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:59;;30628:2:119;788:34:59;;;30610:21:119;30667:2;30647:18;;;30640:30;30706:26;30686:18;;;30679:54;30750:18;;788:34:59;30426:348:119;730:345:59;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:59;;30981:2:119;903:41:59;;;30963:21:119;31020:2;31000:18;;;30993:30;31059:33;31039:18;;;31032:61;31110:18;;903:41:59;30779:355:119;839:236:59;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:59;;31341:2:119;1020:44:59;;;31323:21:119;31380:2;31360:18;;;31353:30;31419:34;31399:18;;;31392:62;-1:-1:-1;;;31470:18:119;;;31463:32;31512:19;;1020:44:59;31139:398:119;961:114:59;570:511;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:119:-;-1:-1:-1;;;;;89:31:119;;79:42;;69:70;;135:1;132;125:12;150:134;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:347::-;340:8;350:6;404:3;397:4;389:6;385:17;381:27;371:55;;422:1;419;412:12;371:55;-1:-1:-1;445:20:119;;488:18;477:30;;474:50;;;520:1;517;510:12;474:50;557:4;549:6;545:17;533:29;;609:3;602:4;593:6;585;581:19;577:30;574:39;571:59;;;626:1;623;616:12;571:59;289:347;;;;;:::o;641:1394::-;785:6;793;801;809;817;825;833;841;894:3;882:9;873:7;869:23;865:33;862:53;;;911:1;908;901:12;862:53;950:9;937:23;969:31;994:5;969:31;:::i;:::-;1019:5;-1:-1:-1;1071:2:119;1056:18;;1043:32;;-1:-1:-1;1126:2:119;1111:18;;1098:32;1149:18;1179:14;;;1176:34;;;1206:1;1203;1196:12;1176:34;1245:58;1295:7;1286:6;1275:9;1271:22;1245:58;:::i;:::-;1322:8;;-1:-1:-1;1219:84:119;-1:-1:-1;1410:2:119;1395:18;;1382:32;;-1:-1:-1;1426:16:119;;;1423:36;;;1455:1;1452;1445:12;1423:36;1493:8;1482:9;1478:24;1468:34;;1540:7;1533:4;1529:2;1525:13;1521:27;1511:55;;1562:1;1559;1552:12;1511:55;1602:2;1589:16;1628:2;1620:6;1617:14;1614:34;;;1644:1;1641;1634:12;1614:34;1697:7;1692:2;1682:6;1679:1;1675:14;1671:2;1667:23;1663:32;1660:45;1657:65;;;1718:1;1715;1708:12;1657:65;1749:2;1745;1741:11;1731:21;;1771:6;1761:16;;;1830:3;1819:9;1815:19;1802:33;1786:49;;1860:2;1850:8;1847:16;1844:36;;;1876:1;1873;1866:12;1844:36;;1915:60;1967:7;1956:8;1945:9;1941:24;1915:60;:::i;:::-;641:1394;;;;-1:-1:-1;641:1394:119;;-1:-1:-1;641:1394:119;;;;;;1994:8;-1:-1:-1;;;641:1394:119:o;2248:127::-;2309:10;2304:3;2300:20;2297:1;2290:31;2340:4;2337:1;2330:15;2364:4;2361:1;2354:15;2380:236;2460:1;2453:5;2450:12;2440:143;;2505:10;2500:3;2496:20;2493:1;2486:31;2540:4;2537:1;2530:15;2568:4;2565:1;2558:15;2440:143;2592:18;;2380:236::o;2621:302::-;2680:43;2719:3;2711:5;2705:12;2680:43;:::i;:::-;2776:4;2765:16;;;2759:23;-1:-1:-1;;;;;2755:49:119;2739:14;;;2732:73;2854:4;2843:16;;;2837:23;2821:14;;;2814:47;2910:4;2899:16;;;2893:23;2877:14;;2870:47;2621:302::o;3029:1111::-;3252:25;;;3305:13;;-1:-1:-1;;;;;2106:31:119;3335:2;3320:18;;2094:44;3239:3;3224:19;;3386:2;3374:15;;3368:22;-1:-1:-1;;;;;2106:31:119;;3447:2;3432:18;;2094:44;-1:-1:-1;3500:2:119;3488:15;;3482:22;2225:10;2214:22;;3562:2;3547:18;;2202:35;3513:53;3615:2;3607:6;3603:15;3597:22;3628:60;3683:3;3672:9;3668:19;3652:14;3628:60;:::i;:::-;;3737:3;3729:6;3725:16;3719:23;3761:3;3773:59;3828:2;3817:9;3813:18;3797:14;3773:59;:::i;:::-;3887:4;3875:17;;3869:24;3863:3;3848:19;;3841:53;3943:4;3931:17;;3925:24;3004:12;2993:24;4007:3;3992:19;;2981:37;4067:4;4055:17;;4049:24;4043:3;4028:19;;4021:53;4117:15;;;4111:22;4105:3;4090:19;;;4083:51;;;;3029:1111;;-1:-1:-1;;3029:1111:119:o;4145:180::-;4204:6;4257:2;4245:9;4236:7;4232:23;4228:32;4225:52;;;4273:1;4270;4263:12;4225:52;-1:-1:-1;4296:23:119;;4145:180;-1:-1:-1;4145:180:119:o;4618:127::-;4679:10;4674:3;4670:20;4667:1;4660:31;4710:4;4707:1;4700:15;4734:4;4731:1;4724:15;4750:250;4817:2;4811:9;4859:6;4847:19;;4896:18;4881:34;;4917:22;;;4878:62;4875:88;;;4943:18;;:::i;:::-;4979:2;4972:22;4750:250;:::o;5005:257::-;5077:4;5071:11;;;5109:17;;5156:18;5141:34;;5177:22;;;5138:62;5135:88;;;5203:18;;:::i;5267:921::-;5335:6;5388:2;5376:9;5367:7;5363:23;5359:32;5356:52;;;5404:1;5401;5394:12;5356:52;5444:9;5431:23;5473:18;5514:2;5506:6;5503:14;5500:34;;;5530:1;5527;5520:12;5500:34;5568:6;5557:9;5553:22;5543:32;;5613:7;5606:4;5602:2;5598:13;5594:27;5584:55;;5635:1;5632;5625:12;5584:55;5671:2;5658:16;5693:2;5689;5686:10;5683:36;;;5699:18;;:::i;:::-;5774:2;5768:9;5742:2;5828:13;;-1:-1:-1;;5824:22:119;;;5848:2;5820:31;5816:40;5804:53;;;5872:18;;;5892:22;;;5869:46;5866:72;;;5918:18;;:::i;:::-;5958:10;5954:2;5947:22;5993:2;5985:6;5978:18;6033:7;6028:2;6023;6019;6015:11;6011:20;6008:33;6005:53;;;6054:1;6051;6044:12;6005:53;6110:2;6105;6101;6097:11;6092:2;6084:6;6080:15;6067:46;6155:1;6133:15;;;6150:2;6129:24;6122:35;;;;-1:-1:-1;6137:6:119;5267:921;-1:-1:-1;;;;;5267:921:119:o;6193:2291::-;6255:43;6294:3;6286:5;6280:12;6255:43;:::i;:::-;6344:4;6337:5;6333:16;6327:23;6359:48;6401:4;6396:3;6392:14;6378:12;-1:-1:-1;;;;;2106:31:119;2094:44;;2040:104;6359:48;;6456:4;6449:5;6445:16;6439:23;6432:4;6427:3;6423:14;6416:47;6512:4;6505:5;6501:16;6495:23;6488:4;6483:3;6479:14;6472:47;6567:4;6560:5;6556:16;6550:23;6582:47;6623:4;6618:3;6614:14;6598;4400:13;4393:21;4381:34;;4330:91;6582:47;;6678:4;6671:5;6667:16;6661:23;6654:4;6649:3;6645:14;6638:47;6733:4;6726:5;6722:16;6716:23;6748:50;6792:4;6787:3;6783:14;6767;-1:-1:-1;;;;;2106:31:119;2094:44;;2040:104;6748:50;-1:-1:-1;6847:4:119;6836:16;;;6830:23;6814:14;;;6807:47;6873:6;6915:14;;;6909:21;6895:12;;;6888:43;6950:6;6992:14;;;6986:21;6972:12;;;6965:43;7027:6;7069:14;;;7063:21;7049:12;;;7042:43;7104:6;7147:14;;;7141:21;3004:12;2993:24;;;7205:12;;;2981:37;;;;7237:6;7280:14;;;7274:21;2225:10;2214:22;7338:12;;;2202:35;7370:6;7413:14;;;7407:21;2993:24;;7471:12;;;2981:37;7503:6;7546:14;;;7540:21;2993:24;;;7604:12;;;2981:37;7636:6;7679:14;;;7673:21;-1:-1:-1;;;;;2106:31:119;;;7738:12;;;2094:44;;;;7770:6;7813:14;;;7807:21;2106:31;;7872:12;;;2094:44;7905:6;7948:15;;;7942:22;7927:13;;;7920:45;7985:6;8028:15;;;8022:22;4400:13;4393:21;8085:13;;;4381:34;8119:6;8162:15;;;8156:22;8141:13;;;8134:45;8199:6;8242:15;;;8236:22;8221:13;;;8214:45;8279:6;8322:15;;;8316:22;8301:13;;;8294:45;8359:6;8403:15;;;8397:22;2106:31;8464:13;;2094:44;6193:2291::o;8489:459::-;8771:3;8756:19;;8784:45;8760:9;8811:6;8784:45;:::i;:::-;8872:6;8866:13;8860:3;8849:9;8845:19;8838:42;8935:4;8927:6;8923:17;8917:24;8911:3;8900:9;8896:19;8889:53;8489:459;;;;;:::o;9359:248::-;9427:6;9435;9488:2;9476:9;9467:7;9463:23;9459:32;9456:52;;;9504:1;9501;9494:12;9456:52;-1:-1:-1;;9527:23:119;;;9597:2;9582:18;;;9569:32;;-1:-1:-1;9359:248:119:o;9839:445::-;9930:6;9983:2;9971:9;9962:7;9958:23;9954:32;9951:52;;;9999:1;9996;9989:12;9951:52;10032:2;10026:9;10074:2;10066:6;10062:15;10143:6;10131:10;10128:22;10107:18;10095:10;10092:34;10089:62;10086:88;;;10154:18;;:::i;:::-;10190:2;10183:22;10229:23;;10214:39;;-1:-1:-1;10221:6:119;9839:445;-1:-1:-1;9839:445:119:o;10289:196::-;10377:6;10430:3;10418:9;10409:7;10405:23;10401:33;10398:53;;;10447:1;10444;10437:12;10398:53;-1:-1:-1;10470:9:119;10289:196;-1:-1:-1;10289:196:119:o;10723:107::-;10804:1;10797:5;10794:12;10784:40;;10820:1;10817;10810:12;10835:146;10909:20;;10938:37;10909:20;10938:37;:::i;10986:118::-;11072:5;11065:13;11058:21;11051:5;11048:32;11038:60;;11094:1;11091;11084:12;11109:128;11174:20;;11203:28;11174:20;11203:28;:::i;11242:123::-;11327:12;11320:5;11316:24;11309:5;11306:35;11296:63;;11355:1;11352;11345:12;11370:132;11437:20;;11466:30;11437:20;11466:30;:::i;11507:121::-;11592:10;11585:5;11581:22;11574:5;11571:33;11561:61;;11618:1;11615;11608:12;11633:132;11700:20;;11729:30;11700:20;11729:30;:::i;11770:2069::-;11825:5;11873:6;11861:9;11856:3;11852:19;11848:32;11845:52;;;11893:1;11890;11883:12;11845:52;11915:17;;:::i;:::-;11906:26;;11955:35;11980:9;11955:35;:::i;:::-;11948:5;11941:50;12023:38;12057:2;12046:9;12042:18;12023:38;:::i;:::-;12018:2;12011:5;12007:14;12000:62;12122:2;12111:9;12107:18;12094:32;12089:2;12082:5;12078:14;12071:56;12187:2;12176:9;12172:18;12159:32;12154:2;12147:5;12143:14;12136:56;12225:36;12256:3;12245:9;12241:19;12225:36;:::i;:::-;12219:3;12212:5;12208:15;12201:61;12323:3;12312:9;12308:19;12295:33;12289:3;12282:5;12278:15;12271:58;12362:39;12396:3;12385:9;12381:19;12362:39;:::i;:::-;12356:3;12345:15;;12338:64;12463:3;12448:19;;;12435:33;12418:15;;;12411:58;12488:3;12536:18;;;12523:32;12507:14;;;12500:56;12575:3;12623:18;;;12610:32;12594:14;;;12587:56;12662:3;12710:18;;;12697:32;12681:14;;;12674:56;12749:3;12784:37;12802:18;;;12784:37;:::i;:::-;12768:14;;;12761:61;12841:3;12876:37;12894:18;;;12876:37;:::i;:::-;12860:14;;;12853:61;12933:3;12968:37;12986:18;;;12968:37;:::i;:::-;12952:14;;;12945:61;13025:3;13060:37;13078:18;;;13060:37;:::i;:::-;13044:14;;;13037:61;13117:3;13152:38;13171:18;;;13152:38;:::i;:::-;13136:14;;;13129:62;13210:3;13245:38;13264:18;;;13245:38;:::i;:::-;13229:14;;;13222:62;13304:3;13353:19;;;13340:33;13323:15;;;13316:58;13394:3;13430:36;13446:19;;;13430:36;:::i;:::-;13413:15;;;13406:61;13487:3;13536:19;;;13523:33;13506:15;;;13499:58;13577:3;13626:19;;;13613:33;13596:15;;;13589:58;13667:3;13716:19;;;13703:33;13686:15;;;13679:58;13757:3;13793:39;13812:19;;;13793:39;:::i;:::-;13776:15;;;13769:64;13780:5;11770:2069;-1:-1:-1;;11770:2069:119:o;13844:300::-;13939:6;13947;14000:3;13988:9;13979:7;13975:23;13971:33;13968:53;;;14017:1;14014;14007:12;13968:53;14040:46;14078:7;14067:9;14040:46;:::i;:::-;14030:56;14133:3;14118:19;;;;14105:33;;-1:-1:-1;;;13844:300:119:o;14331:550::-;14459:6;14467;14511:9;14502:7;14498:23;14541:3;14537:2;14533:12;14530:32;;;14558:1;14555;14548:12;14530:32;14581:46;14619:7;14608:9;14581:46;:::i;:::-;14571:56;-1:-1:-1;14662:4:119;-1:-1:-1;;14643:17:119;;14639:28;14636:48;;;14680:1;14677;14670:12;14636:48;;14706:22;;:::i;:::-;14779:3;14764:19;;14751:33;14737:48;;14845:3;14830:19;;;14817:33;14812:2;14801:14;;14794:57;-1:-1:-1;14331:550:119;14744:5;;-1:-1:-1;14331:550:119:o;14886:250::-;14971:1;14981:113;14995:6;14992:1;14989:13;14981:113;;;15071:11;;;15065:18;15052:11;;;15045:39;15017:2;15010:10;14981:113;;;-1:-1:-1;;15128:1:119;15110:16;;15103:27;14886:250::o;15141:270::-;15182:3;15220:5;15214:12;15247:6;15242:3;15235:19;15263:76;15332:6;15325:4;15320:3;15316:14;15309:4;15302:5;15298:16;15263:76;:::i;:::-;15393:2;15372:15;-1:-1:-1;;15368:29:119;15359:39;;;;15400:4;15355:50;;15141:270;-1:-1:-1;;15141:270:119:o;15416:217::-;15563:2;15552:9;15545:21;15526:4;15583:44;15623:2;15612:9;15608:18;15600:6;15583:44;:::i;15862:252::-;16050:3;16035:19;;16063:45;16039:9;16090:6;16063:45;:::i;16119:127::-;16180:10;16175:3;16171:20;16168:1;16161:31;16211:4;16208:1;16201:15;16235:4;16232:1;16225:15;16251:125;16316:9;;;16337:10;;;16334:36;;;16350:18;;:::i;16705:128::-;16772:9;;;16793:11;;;16790:37;;;16807:18;;:::i;16838:174::-;16905:12;16937:10;;;16949;;;16933:27;;16972:11;;;16969:37;;;16986:18;;:::i;:::-;16969:37;16838:174;;;;:::o;17017:150::-;17102:13;;17124:37;17102:13;17124:37;:::i;17172:138::-;17251:13;;17273:31;17251:13;17273:31;:::i;17315:132::-;17391:13;;17413:28;17391:13;17413:28;:::i;17452:136::-;17530:13;;17552:30;17530:13;17552:30;:::i;17593:136::-;17671:13;;17693:30;17671:13;17693:30;:::i;17734:286::-;17806:5;17854:4;17842:9;17837:3;17833:19;17829:30;17826:50;;;17872:1;17869;17862:12;17826:50;17894:22;;:::i;:::-;17885:31;;17945:9;17939:16;17932:5;17925:31;18009:2;17998:9;17994:18;17988:25;17983:2;17976:5;17972:14;17965:49;17734:286;;;;:::o;18025:2429::-;18164:6;18172;18216:9;18207:7;18203:23;18246:3;18242:2;18238:12;18235:32;;;18263:1;18260;18253:12;18235:32;18286:6;18312:2;18308;18304:11;18301:31;;;18328:1;18325;18318:12;18301:31;18354:17;;:::i;:::-;18341:30;;18394:46;18430:9;18394:46;:::i;:::-;18387:5;18380:61;18473:49;18518:2;18507:9;18503:18;18473:49;:::i;:::-;18468:2;18461:5;18457:14;18450:73;18576:2;18565:9;18561:18;18555:25;18550:2;18543:5;18539:14;18532:49;18634:2;18623:9;18619:18;18613:25;18608:2;18601:5;18597:14;18590:49;18672:47;18714:3;18703:9;18699:19;18672:47;:::i;:::-;18666:3;18659:5;18655:15;18648:72;18774:3;18763:9;18759:19;18753:26;18747:3;18740:5;18736:15;18729:51;18813:50;18858:3;18847:9;18843:19;18813:50;:::i;:::-;18807:3;18796:15;;18789:75;18918:3;18903:19;;;18897:26;18880:15;;;18873:51;18943:3;18984:18;;;18978:25;18962:14;;;18955:49;19023:3;19064:18;;;19058:25;19042:14;;;19035:49;19103:3;19144:18;;;19138:25;19122:14;;;19115:49;19183:3;19218:48;19247:18;;;19218:48;:::i;:::-;19202:14;;;19195:72;19286:3;19321:48;19350:18;;;19321:48;:::i;:::-;19305:14;;;19298:72;19389:3;19424:48;19453:18;;;19424:48;:::i;:::-;19408:14;;;19401:72;19492:3;19527:48;19556:18;;;19527:48;:::i;:::-;19511:14;;;19504:72;19596:3;19632:50;19662:19;;;19632:50;:::i;:::-;19615:15;;;19608:75;19703:3;19739:50;19769:19;;;19739:50;:::i;:::-;19722:15;;;19715:75;19810:3;19852:19;;;19846:26;19829:15;;;19822:51;19893:3;19929:47;19956:19;;;19929:47;:::i;:::-;19912:15;;;19905:72;19997:3;20039:19;;;20033:26;20016:15;;;20009:51;20080:3;20122:19;;;20116:26;20099:15;;;20092:51;20163:3;20205:19;;;20199:26;20182:15;;;20175:51;20246:3;20282:50;20312:19;;;20282:50;:::i;:::-;20276:3;20269:5;20265:15;20258:75;;20352:5;20342:15;;20376:72;20440:7;20435:2;20424:9;20420:18;20376:72;:::i;:::-;20366:82;;;;18025:2429;;;;;:::o;20459:345::-;-1:-1:-1;;;;;20679:32:119;;;;20661:51;;20743:2;20728:18;;20721:34;;;;20786:2;20771:18;;20764:34;20649:2;20634:18;;20459:345::o;21062:359::-;21249:6;21244:3;21237:19;21219:3;21285:6;21279:13;21301:73;21367:6;21362:2;21357:3;21353:12;21348:2;21340:6;21336:15;21301:73;:::i;:::-;21394:16;;;;21412:2;21390:25;;21062:359;-1:-1:-1;;;21062:359:119:o;21823:247::-;21882:6;21935:2;21923:9;21914:7;21910:23;21906:32;21903:52;;;21951:1;21948;21941:12;21903:52;21990:9;21977:23;22009:31;22034:5;22009:31;:::i;22075:2822::-;22265:3;22250:19;;22278:69;22254:9;22303:32;22328:6;22303:32;:::i;:::-;22278:69;:::i;:::-;22376:37;22407:4;22399:6;22395:17;22376:37;:::i;:::-;-1:-1:-1;;;;;2106:31:119;;22470:4;22455:20;;2094:44;22422:54;22539:4;22531:6;22527:17;22514:31;22507:4;22496:9;22492:20;22485:61;22609:4;22601:6;22597:17;22584:31;22577:4;22566:9;22562:20;22555:61;22647:34;22675:4;22667:6;22663:17;22647:34;:::i;:::-;4400:13;4393:21;22737:4;22722:20;;4381:34;22806:4;22794:17;;;22781:31;22759:20;;;22752:61;22844:37;22875:4;22863:17;;22844:37;:::i;:::-;-1:-1:-1;;;;;2106:31:119;22940:4;22925:20;;2094:44;23009:4;22997:17;;;22984:31;22962:20;;;22955:61;23035:6;23090:15;;;23077:29;23057:18;;;23050:57;23126:6;23181:15;;;23168:29;23148:18;;;23141:57;23217:6;23272:15;;;23259:29;23239:18;;;23232:57;23308:6;23345:34;23363:15;;;23345:34;:::i;:::-;3004:12;2993:24;23422:18;;;2981:37;23460:6;23497:34;23515:15;;;23497:34;:::i;:::-;2225:10;2214:22;23574:18;;;2202:35;23612:6;23649:34;23667:15;;;23649:34;:::i;:::-;3004:12;2993:24;23726:18;;;2981:37;23764:6;23801:34;23819:15;;;23801:34;:::i;:::-;3004:12;2993:24;23878:18;;;2981:37;23916:6;23953:35;23972:15;;;23953:35;:::i;:::-;-1:-1:-1;;;;;2106:31:119;24032:18;;;2094:44;24070:6;24107:35;24126:15;;;24107:35;:::i;:::-;-1:-1:-1;;;;;2106:31:119;24186:18;;;2094:44;24225:6;24281:16;;;24268:30;24247:19;;;24240:59;24319:6;24356:33;24372:16;;;24356:33;:::i;:::-;4400:13;4393:21;24430:19;;;4381:34;24470:6;24526:16;;;24513:30;24492:19;;;24485:59;24564:6;24620:16;;;24607:30;24586:19;;;24579:59;24658:6;24714:16;;;24701:30;24680:19;;;24673:59;24752:6;24790:36;24809:16;;;24790:36;:::i;:::-;-1:-1:-1;;;;;2106:31:119;24871:19;;2094:44;;;;22075:2822;;-1:-1:-1;22075:2822:119:o;25182:127::-;25243:10;25238:3;25234:20;25231:1;25224:31;25274:4;25271:1;25264:15;25298:4;25295:1;25288:15;25314:185;25345:1;25371:12;25410:2;25407:1;25403:10;25432:3;25422:37;;25439:18;;:::i;:::-;25477:10;;25473:20;;;;;25314:185;-1:-1:-1;;25314:185:119:o;26228:120::-;26268:1;26294;26284:35;;26299:18;;:::i;:::-;-1:-1:-1;26333:9:119;;26228:120::o;26353:193::-;26392:1;26418:12;26457:2;26454:1;26450:10;26479:3;26469:37;;26486:18;;:::i;:::-;26524:10;;26520:20;;;;;26353:193;-1:-1:-1;;26353:193:119:o;27139:245::-;27206:6;27259:2;27247:9;27238:7;27234:23;27230:32;27227:52;;;27275:1;27272;27265:12;27227:52;27307:9;27301:16;27326:28;27348:5;27326:28;:::i;27597:286::-;27702:6;27755:2;27743:9;27734:7;27730:23;27726:32;27723:52;;;27771:1;27768;27761:12;27723:52;27803:9;27797:16;27822:31;27847:5;27822:31;:::i;28167:184::-;28237:6;28290:2;28278:9;28269:7;28265:23;28261:32;28258:52;;;28306:1;28303;28296:12;28258:52;-1:-1:-1;28329:16:119;;28167:184;-1:-1:-1;28167:184:119:o;28959:288::-;29134:6;29123:9;29116:25;29177:2;29172;29161:9;29157:18;29150:30;29097:4;29197:44;29237:2;29226:9;29222:18;29214:6;29197:44;:::i;:::-;29189:52;28959:288;-1:-1:-1;;;;28959:288:119:o;29252:287::-;29381:3;29419:6;29413:13;29435:66;29494:6;29489:3;29482:4;29474:6;29470:17;29435:66;:::i;:::-;29517:16;;;;;29252:287;-1:-1:-1;;29252:287:119:o;29544:127::-;29605:10;29600:3;29596:20;29593:1;29586:31;29636:4;29633:1;29626:15;29660:4;29657:1;29650:15;29676:135;29715:3;29736:17;;;29733:43;;29756:18;;:::i;:::-;-1:-1:-1;29803:1:119;29792:13;;29676:135::o",
    "linkReferences": {},
    "immutableReferences": {
      "64601": [
        {
          "start": 414,
          "length": 32
        },
        {
          "start": 3174,
          "length": 32
        }
      ],
      "64603": [
        {
          "start": 706,
          "length": 32
        },
        {
          "start": 2192,
          "length": 32
        }
      ],
      "64606": [
        {
          "start": 467,
          "length": 32
        },
        {
          "start": 3469,
          "length": 32
        }
      ],
      "64609": [
        {
          "start": 667,
          "length": 32
        },
        {
          "start": 2077,
          "length": 32
        },
        {
          "start": 4248,
          "length": 32
        },
        {
          "start": 4575,
          "length": 32
        }
      ],
      "64612": [
        {
          "start": 551,
          "length": 32
        },
        {
          "start": 4926,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "DOMAIN_SEPARATOR()": "3644e515",
    "MULTIPROPOSAL_DOMAIN_SEPARATOR()": "abe93878",
    "MULTIPROPOSAL_TYPEHASH()": "d06a0d82",
    "PROPOSAL_TYPEHASH()": "853b94a0",
    "VERSION()": "ffa1ad74",
    "acceptProposal(address,uint256,bytes,bytes32[],bytes)": "01e83272",
    "config()": "79502c55",
    "creditUsed(bytes32)": "f0209ad6",
    "decodeProposalData(bytes)": "2d5d17fc",
    "encodeProposalData((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,uint256))": "e81ae3d6",
    "getCreditAmount((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),uint256)": "b098647f",
    "getMultiproposalHash((bytes32))": "829d3770",
    "getProposalHash((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": "c1a1f491",
    "hub()": "365a86fc",
    "makeProposal((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": "949bcadc",
    "proposalsMade(bytes32)": "1da4c275",
    "revokeNonce(uint256,uint256)": "579bfc30",
    "revokedNonce()": "9788ad55"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_hub\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_revokedNonce\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_config\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AcceptorIsProposer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"}],\"name\":\"AddressMissingHubTag\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"}],\"name\":\"AuctionDurationNotInFullMinutes\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionStart\",\"type\":\"uint256\"}],\"name\":\"AuctionNotInProgress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"used\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"AvailableCreditLimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"CallerIsNotStatedProposer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"current\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allowed\",\"type\":\"address\"}],\"name\":\"CallerNotAllowedAcceptor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"name\":\"CallerNotLoanContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"Expired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"InvalidAuctionDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"current\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"proposed\",\"type\":\"bytes32\"}],\"name\":\"InvalidCollateralStateFingerprint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"auctionCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intendedCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"slippage\",\"type\":\"uint256\"}],\"name\":\"InvalidCreditAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidCreditAmountRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"}],\"name\":\"InvalidRefinancingLoanId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingStateFingerprintComputer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"NonceNotUsable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"auctionStart\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"auctionDuration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"ProposalMade\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPROPOSAL_DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPROPOSAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"acceptor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"proposalData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"proposalInclusionProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"acceptProposal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assetAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultiToken.Asset\",\"name\":\"collateral\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assetAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultiToken.Asset\",\"name\":\"credit\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"bytes32\",\"name\":\"lenderSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"borrowerSpecHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct PWNSimpleLoan.Terms\",\"name\":\"loanTerms\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"config\",\"outputs\":[{\"internalType\":\"contract PWNConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"creditUsed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proposalData\",\"type\":\"bytes\"}],\"name\":\"decodeProposalData\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"auctionStart\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"auctionDuration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.Proposal\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"intendedCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"slippage\",\"type\":\"uint256\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.ProposalValues\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"auctionStart\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"auctionDuration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"intendedCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"slippage\",\"type\":\"uint256\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.ProposalValues\",\"name\":\"proposalValues\",\"type\":\"tuple\"}],\"name\":\"encodeProposalData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"auctionStart\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"auctionDuration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getCreditAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"multiproposalMerkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct PWNSimpleLoanProposal.Multiproposal\",\"name\":\"multiproposal\",\"type\":\"tuple\"}],\"name\":\"getMultiproposalHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"auctionStart\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"auctionDuration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"getProposalHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hub\",\"outputs\":[{\"internalType\":\"contract PWNHub\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCreditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"auctionStart\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"auctionDuration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanDutchAuctionProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"makeProposal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsMade\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"revokeNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokedNonce\",\"outputs\":[{\"internalType\":\"contract PWNRevokedNonce\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSignature(address,bytes32)\":[{\"details\":\"Thrown when signature is invalid.\"}],\"InvalidSignatureLength(uint256)\":[{\"details\":\"Thrown when signature length is not 64 nor 65 bytes.\"}],\"NonceNotUsable(address,uint256,uint256)\":[{\"details\":\"Maybe nonce is revoked or not in the current nonce space.\"}]},\"kind\":\"dev\",\"methods\":{\"acceptProposal(address,uint256,bytes,bytes32[],bytes)\":{\"details\":\"Function can be called only by a loan contract with appropriate PWN Hub tag.\",\"params\":{\"acceptor\":\"Address of a proposal acceptor.\",\"proposalData\":\"Encoded proposal data with signature.\",\"proposalInclusionProof\":\"Multiproposal inclusion proof. Empty if single proposal.\",\"refinancingLoanId\":\"Id of a loan to be refinanced. 0 if creating a new loan.\"},\"returns\":{\"loanTerms\":\"Loan terms.\",\"proposalHash\":\"Proposal hash.\"}},\"decodeProposalData(bytes)\":{\"params\":{\"proposalData\":\"Encoded proposal data.\"},\"returns\":{\"_0\":\"Decoded proposal struct.\",\"_1\":\"Decoded proposal values struct.\"}},\"encodeProposalData((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,uint256))\":{\"params\":{\"proposal\":\"Proposal struct to be encoded.\",\"proposalValues\":\"ProposalValues struct to be encoded.\"},\"returns\":{\"_0\":\"Encoded proposal data.\"}},\"getCreditAmount((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),uint256)\":{\"details\":\"Auction runs one minute longer than `auctionDuration` to have `maxCreditAmount` value in the last minute.\",\"params\":{\"proposal\":\"Proposal struct containing all proposal data.\",\"timestamp\":\"Timestamp to calculate auction credit amount for.\"},\"returns\":{\"_0\":\"Credit amount in the auction for provided timestamp.\"}},\"getMultiproposalHash((bytes32))\":{\"params\":{\"multiproposal\":\"Multiproposal struct.\"},\"returns\":{\"_0\":\"Multiproposal hash.\"}},\"getProposalHash((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"params\":{\"proposal\":\"Proposal struct to be hashed.\"},\"returns\":{\"_0\":\"Proposal struct hash.\"}},\"makeProposal((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"details\":\"Function will mark a proposal hash as proposed.\",\"params\":{\"proposal\":\"Proposal struct containing all needed proposal data.\"},\"returns\":{\"proposalHash\":\"Proposal hash.\"}},\"revokeNonce(uint256,uint256)\":{\"params\":{\"nonce\":\"Proposal nonce to be revoked.\",\"nonceSpace\":\"Nonce space of a proposal nonce to be revoked.\"}}},\"stateVariables\":{\"PROPOSAL_TYPEHASH\":{\"details\":\"EIP-712 simple proposal struct type hash.\"}},\"title\":\"PWN Simple Loan Dutch Auction Proposal\",\"version\":1},\"userdoc\":{\"errors\":{\"AcceptorIsProposer(address)\":[{\"notice\":\"Thrown when proposal acceptor and proposer are the same.\"}],\"AddressMissingHubTag(address,bytes32)\":[{\"notice\":\"Thrown when an address is missing a PWN Hub tag.\"}],\"AuctionDurationNotInFullMinutes(uint256)\":[{\"notice\":\"Thrown when auction duration is not in full minutes.\"}],\"AuctionNotInProgress(uint256,uint256)\":[{\"notice\":\"Thrown when auction has not started yet or has already ended.\"}],\"AvailableCreditLimitExceeded(uint256,uint256)\":[{\"notice\":\"Thrown when a proposal would exceed the available credit limit.\"}],\"CallerIsNotStatedProposer(address)\":[{\"notice\":\"Thrown when a caller is not a stated proposer.\"}],\"CallerNotAllowedAcceptor(address,address)\":[{\"notice\":\"Thrown when caller is not allowed to accept a proposal.\"}],\"CallerNotLoanContract(address,address)\":[{\"notice\":\"Thrown when a caller is missing a required hub tag.\"}],\"Expired(uint256,uint256)\":[{\"notice\":\"Thrown when a proposal is expired.\"}],\"InvalidAuctionDuration(uint256,uint256)\":[{\"notice\":\"Thrown when auction duration is less than min auction duration.\"}],\"InvalidCollateralStateFingerprint(bytes32,bytes32)\":[{\"notice\":\"Thrown when a proposed collateral state fingerprint doesn't match the current state.\"}],\"InvalidCreditAmount(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when current auction credit amount is not in the range of intended credit amount and slippage.\"}],\"InvalidCreditAmountRange(uint256,uint256)\":[{\"notice\":\"Thrown when min credit amount is greater than max credit amount.\"}],\"InvalidRefinancingLoanId(uint256)\":[{\"notice\":\"Thrown when provided refinance loan id cannot be used.\"}],\"MissingStateFingerprintComputer()\":[{\"notice\":\"Thrown when a state fingerprint computer is not registered.\"}],\"NonceNotUsable(address,uint256,uint256)\":[{\"notice\":\"Thrown when nonce is currently not usable.\"}]},\"events\":{\"ProposalMade(bytes32,address,(uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"notice\":\"Emitted when a proposal is made via an on-chain transaction.\"}},\"kind\":\"user\",\"methods\":{\"acceptProposal(address,uint256,bytes,bytes32[],bytes)\":{\"notice\":\"Accept a proposal and create new loan terms.\"},\"decodeProposalData(bytes)\":{\"notice\":\"Decode proposal data.\"},\"encodeProposalData((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,uint256))\":{\"notice\":\"Encode proposal data.\"},\"getCreditAmount((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),uint256)\":{\"notice\":\"Get credit amount for an auction in a specific timestamp.\"},\"getMultiproposalHash((bytes32))\":{\"notice\":\"Get a multiproposal hash according to EIP-712.\"},\"getProposalHash((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"notice\":\"Get an proposal hash according to EIP-712\"},\"makeProposal((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"notice\":\"Make an on-chain proposal.\"},\"revokeNonce(uint256,uint256)\":{\"notice\":\"Helper function for revoking a proposal nonce on behalf of a caller.\"}},\"notice\":\"Contract for creating and accepting dutch auction loan proposals.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/loan/terms/simple/proposal/PWNSimpleLoanDutchAuctionProposal.sol\":\"PWNSimpleLoanDutchAuctionProposal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":MultiToken/=lib/MultiToken/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pwn/=src/\"]},\"sources\":{\"lib/MultiToken/src/MultiToken.sol\":{\"keccak256\":\"0xc82d7bddc1a925316875bfe3bf116cb8deacc2c6296fad57b1895db898bf871e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://587293f9235d52ab6f51c794ed68e8828eaa4f8b073fa191556fff37446be10c\",\"dweb:/ipfs/QmdFay286V8GfHZDE7TFDxh9irQsmNDwP4tQFbno49waxY\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd55624076bf61d44af5ff351919e32dda748567acfbdd6ba3d6c7be61c758e\",\"dweb:/ipfs/QmSki4dTrf4GPm7MTpG3fk8mC7rnjwd2zMomLp6jLuF63Q\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol\":{\"keccak256\":\"0x10a6688bc4154b1b76268dbaf497bd8b24f77525ecb9cf829bd3cccec98eefc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68663f939b79e88a5bb677cf6c549e88eb4f587379c09f80d19cde14b0eb984b\",\"dweb:/ipfs/QmVfeL1uxQ5161d25DsNqptjaur7VQugjCSGitrRscTdmV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xcab667ddad478ff0d39c2053ca77fac778af8483c18ab07d810277b4216fd582\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://919c7ea27c77275c3c341da0c4a26a66a20ed27605fbe8becf11f58ec3bc65bf\",\"dweb:/ipfs/QmRLKyVE2n7e2Jo4bLNn8eLgqqhNGYnVQyjJPWdr8poskf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005\",\"dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/PWNErrors.sol\":{\"keccak256\":\"0x8a0e516fc8ddf54aecb82d5cbd19b6f263950a91d4411d1d4c54b90fae010692\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b9cd08003376c48cdaf6279c4237a38efb1e26080bc29de3343bcfe397a4bb0f\",\"dweb:/ipfs/QmXtMtn71ZzRu1rGQLq8u5vnDy4k462d7mGtu1jFd7ZBJG\"]},\"src/config/PWNConfig.sol\":{\"keccak256\":\"0x15a2ab788f84df29b960d50b33803130bdd61fe7c0ce76d4f6bf76da7cccb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b1310535db741a5a7a0aff71f34ef329c7f5bf3117f9c38587e4090bec340fb4\",\"dweb:/ipfs/QmYRWwiSAyZMdxSqMYU1K2YRFzBW7L2dHXktx1BdFW9fP5\"]},\"src/hub/PWNHub.sol\":{\"keccak256\":\"0x92ad9edafc151bc7efc1b132c1be55966bb692860a94803a74ce5a948985126c\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://a04dbfe0ea39f7cd04b7947cac66ce77745ecc20a24aad3f8d35a6d319eec202\",\"dweb:/ipfs/QmbxoqEtL4YwMQDfCydurWLHeVjL1Yjc4Ty4vsRoCqXabv\"]},\"src/hub/PWNHubAccessControl.sol\":{\"keccak256\":\"0x310e0389c98971c4d6c25d8756c1e8a962c8b22c54e3ce6d80a383fb5b755448\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://63748084b8c8a9e2cce98a87d27a8baf353fae903641d6fdfc2cdc4ed229243f\",\"dweb:/ipfs/QmVywLNCBeWkNdWjpdumnAam1Shwj8k3DxxpRcWAK997Nw\"]},\"src/hub/PWNHubTags.sol\":{\"keccak256\":\"0xd1e685e8075f1f16835d38cfe39b1eee9edbf75089a0109002f7b2bfe14c177a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://4a01df6b1c2cf493017b7abb4b9ec6ac16c9b1c3498b16ccbdc4f2045909dde8\",\"dweb:/ipfs/QmcYEgSZrE33YKxDDBvhVgZTfT9Tj1RTEX3iA717zZyspJ\"]},\"src/interfaces/ICryptoKitties.sol\":{\"keccak256\":\"0x9aaa7f948d4f2121d764b5664fe1c8431b3c5bfce780228eceb56d1589681706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05416e111c8ff6a1464248ac387e8c69015c355e949967586d514d9d17d619aa\",\"dweb:/ipfs/QmVK5Q6bS1CevgdxB17RJ9BGZsspCXdY5Y5dX4cpgQ4Rze\"]},\"src/interfaces/IERC5646.sol\":{\"keccak256\":\"0xff5ce494375d2cf5a67fe9460ea66aa3572b8a0434ae538cbac0a55f7aac5c5e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://e8e2b472fa80a92ae12985da77056f68f0e0f36fca7ac37b6d30db82a2527180\",\"dweb:/ipfs/QmdFTGSCaPcVfthbGSUuiyhivqBx6xN9dCL14PCbR39Wki\"]},\"src/interfaces/IMultiTokenCategoryRegistry.sol\":{\"keccak256\":\"0x5607c7415785a07c7226638ab7d16ae9a87906e5eafb06e723944144b8f7c48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd5f1d39f2acb6cda18a1199e06be211deccce27478de077d942ced8ada6e0b1\",\"dweb:/ipfs/Qmdx2uXjyoyyqNQU5aQTpagujxSVAfS17Sc3ziJGAofXnX\"]},\"src/interfaces/IPWNLoanMetadataProvider.sol\":{\"keccak256\":\"0x6cc991fd9c8c88e0a69e835fcd514868836e2432b12454dfcb6a681a3a9d13b8\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://69fd07433fd7eb2f1474d778476240434fa79a31525341d88a588573562389c6\",\"dweb:/ipfs/Qmb6gWNQD96oSgwH5Yf6eMHxYWXZwCPrd7MvK86r7UKhZK\"]},\"src/interfaces/IPoolAdapter.sol\":{\"keccak256\":\"0xe0309b4e7da2046095c7dc943d953f32d2a46b0ad64beaf3f4ed1b440fe43f89\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://15870bf95e096b35620787a0eba49f7becbaff738651a83bd28310d022cdc93b\",\"dweb:/ipfs/QmZPYmxrjB6SFWr5arTztrDofQ6XdyzXTUMeaQt5wcbv3T\"]},\"src/interfaces/IStateFingerpringComputer.sol\":{\"keccak256\":\"0xb2f72031bdd6b6ac7179ca9af90c290d37bcc43d6bab4db6e0b1ee7c7b4f72a2\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://d8de3c648f1afab5458e553042a59b0df3d8d54be1a488e891de70821745da0c\",\"dweb:/ipfs/QmQ6QoeMgZGdVjJ2aAt8t1AuBCJ95m6BRSR1GKRqVk4jct\"]},\"src/loan/lib/PWNFeeCalculator.sol\":{\"keccak256\":\"0xab8eb0be2d2e5a7c909a326de53459ae2ed6fd7cdd3985719515f279f952fcdf\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://4ca7a9d230ab90b46cdb1a16bd99af5639af7adcf2250a20b7e1f77c952344f5\",\"dweb:/ipfs/QmXzwraVHPmrVFtR4tkm5JqafygeDDvbQbkKu33EYUWLMq\"]},\"src/loan/lib/PWNSignatureChecker.sol\":{\"keccak256\":\"0xb76220c904f1b4c9e08166c4175746b161aaf70be14dc22b1a335f351970d1fd\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://846d1cc6b7f1ba8b0bc6b5836aad018828bc1ad8f6f994ec59d24f6617d91fc1\",\"dweb:/ipfs/QmWe7cAsDysa6Qjn9vBAiHW4iaPmZnaeVmqxnwRMikgSCM\"]},\"src/loan/terms/simple/loan/PWNSimpleLoan.sol\":{\"keccak256\":\"0x6dd44efd796277aeb5a7712591cfbee10ea3058c0f8f97f9c6111297714d3155\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a65b5a30ea71966c8deaa54f621985568fbcbe37bcb6174219410837c9722d9\",\"dweb:/ipfs/QmWzCC35n2a2GsqEkU27i1LKGjqhYTZ1wLfEBnUxsPRrfr\"]},\"src/loan/terms/simple/proposal/PWNSimpleLoanDutchAuctionProposal.sol\":{\"keccak256\":\"0x29f7f27441123263a9136e660904066a8941ad90153361bf22b1187b974cef4d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://2f0083af47ba6fa288e4583fd03669a187fdbccf515fe631d719a14fa1b5124d\",\"dweb:/ipfs/QmaoeTCym7ES2YdsLxrWYvMasNeujaGRqQDbJ7m7XVHeT9\"]},\"src/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol\":{\"keccak256\":\"0xa0569c9949bfcd4995d813e1bfe3cb89dcf55293e2fb7728ade49d49be1c6d2d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://d94dc60f4f6591cac65d95bea69a8b6364589977b085892f334e4224ce3b754d\",\"dweb:/ipfs/QmV3NaHYz3bNbXsKbrHEJxBuLHJyStB6917hJ1D7dtqhs5\"]},\"src/loan/token/PWNLOAN.sol\":{\"keccak256\":\"0x92981fb0bd0abcadc45b0f88bfc5fcc960ce7a5b79494fc6c9fd5990b197c764\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://e10726f492991694d751b68bf87a352f1284710ba311614295381a58ebfd226e\",\"dweb:/ipfs/Qmct6PYHSqHo9K9rGAif9ohBpJuQnTBWdHJRdENpetGg7k\"]},\"src/loan/vault/PWNVault.sol\":{\"keccak256\":\"0x00f3a6cad5f19a0a818d351a5aa849e41a34bf0251a872d4993d40d77468f29e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://01942d7d871fe64f229820f5f90be23b647e438d951531a5f60a470f8093977e\",\"dweb:/ipfs/QmcyDXfCdgSQ8P454JxfuTzNBSxfpzeJ9aTPBefTH3dTvK\"]},\"src/loan/vault/Permit.sol\":{\"keccak256\":\"0xce0acf24731cfaa49535adea5c0c6ebade736d35f3f54a8150ef175a693e3cee\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://3542ad1e3295c63363fe825d3e46ad447fcd614f31f4dadeea39d24086e02c7a\",\"dweb:/ipfs/QmVjAuaQ1UdqgJAmvR8pdXQCb3Zy7fDQeBtbx9ZTbCQic4\"]},\"src/nonce/PWNRevokedNonce.sol\":{\"keccak256\":\"0xc0c75afa97243c3ef711e04cc9ffd0b3d44fa7999333b0048dc37b562a4cc06e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://5b2b7271b9505f35a05d2d68803f20116b621dcecfc528806225e0280b0a420e\",\"dweb:/ipfs/QmZh95WUcgTHz7ifsQhmrq1wCjvDXfwwh9G7k49otPisxx\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.16+commit.07a7930e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_hub",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_revokedNonce",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_config",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "AcceptorIsProposer"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "AddressMissingHubTag"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "current",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "AuctionDurationNotInFullMinutes"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "currentTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionStart",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "AuctionNotInProgress"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "used",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "limit",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "AvailableCreditLimitExceeded"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "CallerIsNotStatedProposer"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "current",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "allowed",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "CallerNotAllowedAcceptor"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "CallerNotLoanContract"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "current",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "expiration",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "Expired"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "current",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "limit",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidAuctionDuration"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "current",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "proposed",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "InvalidCollateralStateFingerprint"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "auctionCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "intendedCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "slippage",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidCreditAmount"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "minCreditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxCreditAmount",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidCreditAmountRange"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidRefinancingLoanId"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "signer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "InvalidSignature"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "length",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidSignatureLength"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "MissingStateFingerprintComputer"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "NonceNotUsable"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "proposalHash",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionStart",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionDuration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ],
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ProposalMade",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "DOMAIN_SEPARATOR",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "MULTIPROPOSAL_DOMAIN_SEPARATOR",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "MULTIPROPOSAL_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "PROPOSAL_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "VERSION",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "acceptor",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "proposalData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32[]",
              "name": "proposalInclusionProof",
              "type": "bytes32[]"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "acceptProposal",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "proposalHash",
              "type": "bytes32"
            },
            {
              "internalType": "struct PWNSimpleLoan.Terms",
              "name": "loanTerms",
              "type": "tuple",
              "components": [
                {
                  "internalType": "address",
                  "name": "lender",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "borrower",
                  "type": "address"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "struct MultiToken.Asset",
                  "name": "collateral",
                  "type": "tuple",
                  "components": [
                    {
                      "internalType": "enum MultiToken.Category",
                      "name": "category",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "assetAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "id",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "amount",
                      "type": "uint256"
                    }
                  ]
                },
                {
                  "internalType": "struct MultiToken.Asset",
                  "name": "credit",
                  "type": "tuple",
                  "components": [
                    {
                      "internalType": "enum MultiToken.Category",
                      "name": "category",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "assetAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "id",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "amount",
                      "type": "uint256"
                    }
                  ]
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "bytes32",
                  "name": "lenderSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "borrowerSpecHash",
                  "type": "bytes32"
                }
              ]
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "config",
          "outputs": [
            {
              "internalType": "contract PWNConfig",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "creditUsed",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "proposalData",
              "type": "bytes"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "decodeProposalData",
          "outputs": [
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
              "name": "",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionStart",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionDuration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            },
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues",
              "name": "",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "intendedCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "slippage",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionStart",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionDuration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            },
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues",
              "name": "proposalValues",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "intendedCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "slippage",
                  "type": "uint256"
                }
              ]
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "encodeProposalData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionStart",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionDuration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            },
            {
              "internalType": "uint256",
              "name": "timestamp",
              "type": "uint256"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "getCreditAmount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanProposal.Multiproposal",
              "name": "multiproposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "multiproposalMerkleRoot",
                  "type": "bytes32"
                }
              ]
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getMultiproposalHash",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionStart",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionDuration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getProposalHash",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "hub",
          "outputs": [
            {
              "internalType": "contract PWNHub",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanDutchAuctionProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxCreditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionStart",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "auctionDuration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "makeProposal",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "proposalHash",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "proposalsMade",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "revokeNonce"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "revokedNonce",
          "outputs": [
            {
              "internalType": "contract PWNRevokedNonce",
              "name": "",
              "type": "address"
            }
          ]
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "acceptProposal(address,uint256,bytes,bytes32[],bytes)": {
            "details": "Function can be called only by a loan contract with appropriate PWN Hub tag.",
            "params": {
              "acceptor": "Address of a proposal acceptor.",
              "proposalData": "Encoded proposal data with signature.",
              "proposalInclusionProof": "Multiproposal inclusion proof. Empty if single proposal.",
              "refinancingLoanId": "Id of a loan to be refinanced. 0 if creating a new loan."
            },
            "returns": {
              "loanTerms": "Loan terms.",
              "proposalHash": "Proposal hash."
            }
          },
          "decodeProposalData(bytes)": {
            "params": {
              "proposalData": "Encoded proposal data."
            },
            "returns": {
              "_0": "Decoded proposal struct.",
              "_1": "Decoded proposal values struct."
            }
          },
          "encodeProposalData((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,uint256))": {
            "params": {
              "proposal": "Proposal struct to be encoded.",
              "proposalValues": "ProposalValues struct to be encoded."
            },
            "returns": {
              "_0": "Encoded proposal data."
            }
          },
          "getCreditAmount((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),uint256)": {
            "details": "Auction runs one minute longer than `auctionDuration` to have `maxCreditAmount` value in the last minute.",
            "params": {
              "proposal": "Proposal struct containing all proposal data.",
              "timestamp": "Timestamp to calculate auction credit amount for."
            },
            "returns": {
              "_0": "Credit amount in the auction for provided timestamp."
            }
          },
          "getMultiproposalHash((bytes32))": {
            "params": {
              "multiproposal": "Multiproposal struct."
            },
            "returns": {
              "_0": "Multiproposal hash."
            }
          },
          "getProposalHash((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "params": {
              "proposal": "Proposal struct to be hashed."
            },
            "returns": {
              "_0": "Proposal struct hash."
            }
          },
          "makeProposal((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "details": "Function will mark a proposal hash as proposed.",
            "params": {
              "proposal": "Proposal struct containing all needed proposal data."
            },
            "returns": {
              "proposalHash": "Proposal hash."
            }
          },
          "revokeNonce(uint256,uint256)": {
            "params": {
              "nonce": "Proposal nonce to be revoked.",
              "nonceSpace": "Nonce space of a proposal nonce to be revoked."
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "acceptProposal(address,uint256,bytes,bytes32[],bytes)": {
            "notice": "Accept a proposal and create new loan terms."
          },
          "decodeProposalData(bytes)": {
            "notice": "Decode proposal data."
          },
          "encodeProposalData((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,uint256))": {
            "notice": "Encode proposal data."
          },
          "getCreditAmount((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),uint256)": {
            "notice": "Get credit amount for an auction in a specific timestamp."
          },
          "getMultiproposalHash((bytes32))": {
            "notice": "Get a multiproposal hash according to EIP-712."
          },
          "getProposalHash((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "notice": "Get an proposal hash according to EIP-712"
          },
          "makeProposal((uint8,address,uint256,uint256,bool,bytes32,address,uint256,uint256,uint256,uint256,uint40,uint32,uint40,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "notice": "Make an on-chain proposal."
          },
          "revokeNonce(uint256,uint256)": {
            "notice": "Helper function for revoking a proposal nonce on behalf of a caller."
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "MultiToken/=lib/MultiToken/src/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "openzeppelin/=lib/openzeppelin-contracts/contracts/",
        "pwn/=src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/loan/terms/simple/proposal/PWNSimpleLoanDutchAuctionProposal.sol": "PWNSimpleLoanDutchAuctionProposal"
      },
      "libraries": {}
    },
    "sources": {
      "lib/MultiToken/src/MultiToken.sol": {
        "keccak256": "0xc82d7bddc1a925316875bfe3bf116cb8deacc2c6296fad57b1895db898bf871e",
        "urls": [
          "bzz-raw://587293f9235d52ab6f51c794ed68e8828eaa4f8b073fa191556fff37446be10c",
          "dweb:/ipfs/QmdFay286V8GfHZDE7TFDxh9irQsmNDwP4tQFbno49waxY"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/access/Ownable.sol": {
        "keccak256": "0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218",
        "urls": [
          "bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32",
          "dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol": {
        "keccak256": "0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c",
        "urls": [
          "bzz-raw://1fd55624076bf61d44af5ff351919e32dda748567acfbdd6ba3d6c7be61c758e",
          "dweb:/ipfs/QmSki4dTrf4GPm7MTpG3fk8mC7rnjwd2zMomLp6jLuF63Q"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol": {
        "keccak256": "0x10a6688bc4154b1b76268dbaf497bd8b24f77525ecb9cf829bd3cccec98eefc2",
        "urls": [
          "bzz-raw://68663f939b79e88a5bb677cf6c549e88eb4f587379c09f80d19cde14b0eb984b",
          "dweb:/ipfs/QmVfeL1uxQ5161d25DsNqptjaur7VQugjCSGitrRscTdmV"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol": {
        "keccak256": "0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544",
        "urls": [
          "bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e",
          "dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": {
        "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45",
        "urls": [
          "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45",
          "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol": {
        "keccak256": "0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c",
        "urls": [
          "bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8",
          "dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": {
        "keccak256": "0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6",
        "urls": [
          "bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed",
          "dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol": {
        "keccak256": "0xcab667ddad478ff0d39c2053ca77fac778af8483c18ab07d810277b4216fd582",
        "urls": [
          "bzz-raw://919c7ea27c77275c3c341da0c4a26a66a20ed27605fbe8becf11f58ec3bc65bf",
          "dweb:/ipfs/QmRLKyVE2n7e2Jo4bLNn8eLgqqhNGYnVQyjJPWdr8poskf"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol": {
        "keccak256": "0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b",
        "urls": [
          "bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec",
          "dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305",
        "urls": [
          "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5",
          "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol": {
        "keccak256": "0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69",
        "urls": [
          "bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71",
          "dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": {
        "keccak256": "0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1",
        "urls": [
          "bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68",
          "dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol": {
        "keccak256": "0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff",
        "urls": [
          "bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005",
          "dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
        "keccak256": "0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266",
        "urls": [
          "bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4",
          "dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol": {
        "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da",
        "urls": [
          "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708",
          "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
        "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
        "urls": [
          "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
          "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Address.sol": {
        "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa",
        "urls": [
          "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931",
          "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Context.sol": {
        "keccak256": "0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439",
        "urls": [
          "bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c",
          "dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Strings.sol": {
        "keccak256": "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0",
        "urls": [
          "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f",
          "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": {
        "keccak256": "0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58",
        "urls": [
          "bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2",
          "dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol": {
        "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac",
        "urls": [
          "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04",
          "dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": {
        "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b",
        "urls": [
          "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d",
          "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol": {
        "keccak256": "0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5",
        "urls": [
          "bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd",
          "dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
        "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
        "urls": [
          "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
          "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": {
        "keccak256": "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3",
        "urls": [
          "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c",
          "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": {
        "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad",
        "urls": [
          "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278",
          "dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": {
        "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc",
        "urls": [
          "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7",
          "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"
        ],
        "license": "MIT"
      },
      "src/PWNErrors.sol": {
        "keccak256": "0x8a0e516fc8ddf54aecb82d5cbd19b6f263950a91d4411d1d4c54b90fae010692",
        "urls": [
          "bzz-raw://b9cd08003376c48cdaf6279c4237a38efb1e26080bc29de3343bcfe397a4bb0f",
          "dweb:/ipfs/QmXtMtn71ZzRu1rGQLq8u5vnDy4k462d7mGtu1jFd7ZBJG"
        ],
        "license": "GPL-3.0-only"
      },
      "src/config/PWNConfig.sol": {
        "keccak256": "0x15a2ab788f84df29b960d50b33803130bdd61fe7c0ce76d4f6bf76da7cccb594",
        "urls": [
          "bzz-raw://b1310535db741a5a7a0aff71f34ef329c7f5bf3117f9c38587e4090bec340fb4",
          "dweb:/ipfs/QmYRWwiSAyZMdxSqMYU1K2YRFzBW7L2dHXktx1BdFW9fP5"
        ],
        "license": "GPL-3.0-only"
      },
      "src/hub/PWNHub.sol": {
        "keccak256": "0x92ad9edafc151bc7efc1b132c1be55966bb692860a94803a74ce5a948985126c",
        "urls": [
          "bzz-raw://a04dbfe0ea39f7cd04b7947cac66ce77745ecc20a24aad3f8d35a6d319eec202",
          "dweb:/ipfs/QmbxoqEtL4YwMQDfCydurWLHeVjL1Yjc4Ty4vsRoCqXabv"
        ],
        "license": "GPL-3.0-only"
      },
      "src/hub/PWNHubAccessControl.sol": {
        "keccak256": "0x310e0389c98971c4d6c25d8756c1e8a962c8b22c54e3ce6d80a383fb5b755448",
        "urls": [
          "bzz-raw://63748084b8c8a9e2cce98a87d27a8baf353fae903641d6fdfc2cdc4ed229243f",
          "dweb:/ipfs/QmVywLNCBeWkNdWjpdumnAam1Shwj8k3DxxpRcWAK997Nw"
        ],
        "license": "GPL-3.0-only"
      },
      "src/hub/PWNHubTags.sol": {
        "keccak256": "0xd1e685e8075f1f16835d38cfe39b1eee9edbf75089a0109002f7b2bfe14c177a",
        "urls": [
          "bzz-raw://4a01df6b1c2cf493017b7abb4b9ec6ac16c9b1c3498b16ccbdc4f2045909dde8",
          "dweb:/ipfs/QmcYEgSZrE33YKxDDBvhVgZTfT9Tj1RTEX3iA717zZyspJ"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/ICryptoKitties.sol": {
        "keccak256": "0x9aaa7f948d4f2121d764b5664fe1c8431b3c5bfce780228eceb56d1589681706",
        "urls": [
          "bzz-raw://05416e111c8ff6a1464248ac387e8c69015c355e949967586d514d9d17d619aa",
          "dweb:/ipfs/QmVK5Q6bS1CevgdxB17RJ9BGZsspCXdY5Y5dX4cpgQ4Rze"
        ],
        "license": "MIT"
      },
      "src/interfaces/IERC5646.sol": {
        "keccak256": "0xff5ce494375d2cf5a67fe9460ea66aa3572b8a0434ae538cbac0a55f7aac5c5e",
        "urls": [
          "bzz-raw://e8e2b472fa80a92ae12985da77056f68f0e0f36fca7ac37b6d30db82a2527180",
          "dweb:/ipfs/QmdFTGSCaPcVfthbGSUuiyhivqBx6xN9dCL14PCbR39Wki"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/IMultiTokenCategoryRegistry.sol": {
        "keccak256": "0x5607c7415785a07c7226638ab7d16ae9a87906e5eafb06e723944144b8f7c48a",
        "urls": [
          "bzz-raw://dd5f1d39f2acb6cda18a1199e06be211deccce27478de077d942ced8ada6e0b1",
          "dweb:/ipfs/Qmdx2uXjyoyyqNQU5aQTpagujxSVAfS17Sc3ziJGAofXnX"
        ],
        "license": "MIT"
      },
      "src/interfaces/IPWNLoanMetadataProvider.sol": {
        "keccak256": "0x6cc991fd9c8c88e0a69e835fcd514868836e2432b12454dfcb6a681a3a9d13b8",
        "urls": [
          "bzz-raw://69fd07433fd7eb2f1474d778476240434fa79a31525341d88a588573562389c6",
          "dweb:/ipfs/Qmb6gWNQD96oSgwH5Yf6eMHxYWXZwCPrd7MvK86r7UKhZK"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/IPoolAdapter.sol": {
        "keccak256": "0xe0309b4e7da2046095c7dc943d953f32d2a46b0ad64beaf3f4ed1b440fe43f89",
        "urls": [
          "bzz-raw://15870bf95e096b35620787a0eba49f7becbaff738651a83bd28310d022cdc93b",
          "dweb:/ipfs/QmZPYmxrjB6SFWr5arTztrDofQ6XdyzXTUMeaQt5wcbv3T"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/IStateFingerpringComputer.sol": {
        "keccak256": "0xb2f72031bdd6b6ac7179ca9af90c290d37bcc43d6bab4db6e0b1ee7c7b4f72a2",
        "urls": [
          "bzz-raw://d8de3c648f1afab5458e553042a59b0df3d8d54be1a488e891de70821745da0c",
          "dweb:/ipfs/QmQ6QoeMgZGdVjJ2aAt8t1AuBCJ95m6BRSR1GKRqVk4jct"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/lib/PWNFeeCalculator.sol": {
        "keccak256": "0xab8eb0be2d2e5a7c909a326de53459ae2ed6fd7cdd3985719515f279f952fcdf",
        "urls": [
          "bzz-raw://4ca7a9d230ab90b46cdb1a16bd99af5639af7adcf2250a20b7e1f77c952344f5",
          "dweb:/ipfs/QmXzwraVHPmrVFtR4tkm5JqafygeDDvbQbkKu33EYUWLMq"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/lib/PWNSignatureChecker.sol": {
        "keccak256": "0xb76220c904f1b4c9e08166c4175746b161aaf70be14dc22b1a335f351970d1fd",
        "urls": [
          "bzz-raw://846d1cc6b7f1ba8b0bc6b5836aad018828bc1ad8f6f994ec59d24f6617d91fc1",
          "dweb:/ipfs/QmWe7cAsDysa6Qjn9vBAiHW4iaPmZnaeVmqxnwRMikgSCM"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/terms/simple/loan/PWNSimpleLoan.sol": {
        "keccak256": "0x6dd44efd796277aeb5a7712591cfbee10ea3058c0f8f97f9c6111297714d3155",
        "urls": [
          "bzz-raw://0a65b5a30ea71966c8deaa54f621985568fbcbe37bcb6174219410837c9722d9",
          "dweb:/ipfs/QmWzCC35n2a2GsqEkU27i1LKGjqhYTZ1wLfEBnUxsPRrfr"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/terms/simple/proposal/PWNSimpleLoanDutchAuctionProposal.sol": {
        "keccak256": "0x29f7f27441123263a9136e660904066a8941ad90153361bf22b1187b974cef4d",
        "urls": [
          "bzz-raw://2f0083af47ba6fa288e4583fd03669a187fdbccf515fe631d719a14fa1b5124d",
          "dweb:/ipfs/QmaoeTCym7ES2YdsLxrWYvMasNeujaGRqQDbJ7m7XVHeT9"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol": {
        "keccak256": "0xa0569c9949bfcd4995d813e1bfe3cb89dcf55293e2fb7728ade49d49be1c6d2d",
        "urls": [
          "bzz-raw://d94dc60f4f6591cac65d95bea69a8b6364589977b085892f334e4224ce3b754d",
          "dweb:/ipfs/QmV3NaHYz3bNbXsKbrHEJxBuLHJyStB6917hJ1D7dtqhs5"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/token/PWNLOAN.sol": {
        "keccak256": "0x92981fb0bd0abcadc45b0f88bfc5fcc960ce7a5b79494fc6c9fd5990b197c764",
        "urls": [
          "bzz-raw://e10726f492991694d751b68bf87a352f1284710ba311614295381a58ebfd226e",
          "dweb:/ipfs/Qmct6PYHSqHo9K9rGAif9ohBpJuQnTBWdHJRdENpetGg7k"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/vault/PWNVault.sol": {
        "keccak256": "0x00f3a6cad5f19a0a818d351a5aa849e41a34bf0251a872d4993d40d77468f29e",
        "urls": [
          "bzz-raw://01942d7d871fe64f229820f5f90be23b647e438d951531a5f60a470f8093977e",
          "dweb:/ipfs/QmcyDXfCdgSQ8P454JxfuTzNBSxfpzeJ9aTPBefTH3dTvK"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/vault/Permit.sol": {
        "keccak256": "0xce0acf24731cfaa49535adea5c0c6ebade736d35f3f54a8150ef175a693e3cee",
        "urls": [
          "bzz-raw://3542ad1e3295c63363fe825d3e46ad447fcd614f31f4dadeea39d24086e02c7a",
          "dweb:/ipfs/QmVjAuaQ1UdqgJAmvR8pdXQCb3Zy7fDQeBtbx9ZTbCQic4"
        ],
        "license": "GPL-3.0-only"
      },
      "src/nonce/PWNRevokedNonce.sol": {
        "keccak256": "0xc0c75afa97243c3ef711e04cc9ffd0b3d44fa7999333b0048dc37b562a4cc06e",
        "urls": [
          "bzz-raw://5b2b7271b9505f35a05d2d68803f20116b621dcecfc528806225e0280b0a420e",
          "dweb:/ipfs/QmZh95WUcgTHz7ifsQhmrq1wCjvDXfwwh9G7k49otPisxx"
        ],
        "license": "GPL-3.0-only"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/loan/terms/simple/proposal/PWNSimpleLoanDutchAuctionProposal.sol",
    "id": 63827,
    "exportedSymbols": {
      "Expired": [
        59984
      ],
      "Math": [
        55080
      ],
      "MultiToken": [
        1132
      ],
      "PWNSimpleLoan": [
        63281
      ],
      "PWNSimpleLoanDutchAuctionProposal": [
        63826
      ],
      "PWNSimpleLoanProposal": [
        65236
      ]
    },
    "nodeType": "SourceUnit",
    "src": "41:14968:87",
    "nodes": [
      {
        "id": 63283,
        "nodeType": "PragmaDirective",
        "src": "41:23:87",
        "nodes": [],
        "literals": [
          "solidity",
          "0.8",
          ".16"
        ]
      },
      {
        "id": 63285,
        "nodeType": "ImportDirective",
        "src": "66:55:87",
        "nodes": [],
        "absolutePath": "lib/MultiToken/src/MultiToken.sol",
        "file": "MultiToken/MultiToken.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 63827,
        "sourceUnit": 1133,
        "symbolAliases": [
          {
            "foreign": {
              "id": 63284,
              "name": "MultiToken",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1132,
              "src": "75:10:87",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 63287,
        "nodeType": "ImportDirective",
        "src": "123:56:87",
        "nodes": [],
        "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
        "file": "openzeppelin/utils/math/Math.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 63827,
        "sourceUnit": 55081,
        "symbolAliases": [
          {
            "foreign": {
              "id": 63286,
              "name": "Math",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 55080,
              "src": "132:4:87",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 63289,
        "nodeType": "ImportDirective",
        "src": "181:77:87",
        "nodes": [],
        "absolutePath": "src/loan/terms/simple/loan/PWNSimpleLoan.sol",
        "file": "pwn/loan/terms/simple/loan/PWNSimpleLoan.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 63827,
        "sourceUnit": 63282,
        "symbolAliases": [
          {
            "foreign": {
              "id": 63288,
              "name": "PWNSimpleLoan",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 63281,
              "src": "190:13:87",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 63292,
        "nodeType": "ImportDirective",
        "src": "259:106:87",
        "nodes": [],
        "absolutePath": "src/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol",
        "file": "pwn/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 63827,
        "sourceUnit": 65237,
        "symbolAliases": [
          {
            "foreign": {
              "id": 63290,
              "name": "PWNSimpleLoanProposal",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 65236,
              "src": "268:21:87",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 63291,
              "name": "Expired",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 59984,
              "src": "291:7:87",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 63826,
        "nodeType": "ContractDefinition",
        "src": "502:14506:87",
        "nodes": [
          {
            "id": 63298,
            "nodeType": "VariableDeclaration",
            "src": "577:38:87",
            "nodes": [],
            "constant": true,
            "functionSelector": "ffa1ad74",
            "mutability": "constant",
            "name": "VERSION",
            "nameLocation": "600:7:87",
            "scope": 63826,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 63296,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "577:6:87",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "312e30",
              "id": 63297,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "610:5:87",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3",
                "typeString": "literal_string \"1.0\""
              },
              "value": "1.0"
            },
            "visibility": "public"
          },
          {
            "id": 63304,
            "nodeType": "VariableDeclaration",
            "src": "692:621:87",
            "nodes": [],
            "constant": true,
            "documentation": {
              "id": 63299,
              "nodeType": "StructuredDocumentation",
              "src": "622:65:87",
              "text": " @dev EIP-712 simple proposal struct type hash."
            },
            "functionSelector": "853b94a0",
            "mutability": "constant",
            "name": "PROPOSAL_TYPEHASH",
            "nameLocation": "716:17:87",
            "scope": 63826,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 63300,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "692:7:87",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "hexValue": "50726f706f73616c2875696e743820636f6c6c61746572616c43617465676f72792c6164647265737320636f6c6c61746572616c416464726573732c75696e7432353620636f6c6c61746572616c49642c75696e7432353620636f6c6c61746572616c416d6f756e742c626f6f6c20636865636b436f6c6c61746572616c537461746546696e6765727072696e742c6279746573333220636f6c6c61746572616c537461746546696e6765727072696e742c6164647265737320637265646974416464726573732c75696e74323536206d696e437265646974416d6f756e742c75696e74323536206d6178437265646974416d6f756e742c75696e7432353620617661696c61626c654372656469744c696d69742c75696e74323536206669786564496e746572657374416d6f756e742c75696e743430206163637275696e67496e7465726573744150522c75696e743332206475726174696f6e2c75696e7434302061756374696f6e53746172742c75696e7434302061756374696f6e4475726174696f6e2c6164647265737320616c6c6f7765644163636570746f722c616464726573732070726f706f7365722c627974657333322070726f706f73657253706563486173682c626f6f6c2069734f666665722c75696e7432353620726566696e616e63696e674c6f616e49642c75696e74323536206e6f6e636553706163652c75696e74323536206e6f6e63652c61646472657373206c6f616e436f6e747261637429",
                  "id": 63302,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "755:552:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_c91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b7",
                    "typeString": "literal_string \"Proposal(uint8 collateralCategory,address collateralAddress,uint256 collateralId,uint256 collateralAmount,bool checkCollateralStateFingerprint,bytes32 collateralStateFingerprint,address creditAddress,uint256 minCreditAmount,uint256 maxCreditAmount,uint256 availableCreditLimit,uint256 fixedInterestAmount,uint40 accruingInterestAPR,uint32 duration,uint40 auctionStart,uint40 auctionDuration,address allowedAcceptor,address proposer,bytes32 proposerSpecHash,bool isOffer,uint256 refinancingLoanId,uint256 nonceSpace,uint256 nonce,address loanContract)\""
                  },
                  "value": "Proposal(uint8 collateralCategory,address collateralAddress,uint256 collateralId,uint256 collateralAmount,bool checkCollateralStateFingerprint,bytes32 collateralStateFingerprint,address creditAddress,uint256 minCreditAmount,uint256 maxCreditAmount,uint256 availableCreditLimit,uint256 fixedInterestAmount,uint40 accruingInterestAPR,uint32 duration,uint40 auctionStart,uint40 auctionDuration,address allowedAcceptor,address proposer,bytes32 proposerSpecHash,bool isOffer,uint256 refinancingLoanId,uint256 nonceSpace,uint256 nonce,address loanContract)"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_c91b95ba182b3ea59860b7ebc4e42e45c9c9ae5c8f6bd7b8dbbde7415bb396b7",
                    "typeString": "literal_string \"Proposal(uint8 collateralCategory,address collateralAddress,uint256 collateralId,uint256 collateralAmount,bool checkCollateralStateFingerprint,bytes32 collateralStateFingerprint,address creditAddress,uint256 minCreditAmount,uint256 maxCreditAmount,uint256 availableCreditLimit,uint256 fixedInterestAmount,uint40 accruingInterestAPR,uint32 duration,uint40 auctionStart,uint40 auctionDuration,address allowedAcceptor,address proposer,bytes32 proposerSpecHash,bool isOffer,uint256 refinancingLoanId,uint256 nonceSpace,uint256 nonce,address loanContract)\""
                  }
                ],
                "id": 63301,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "736:9:87",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 63303,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "736:577:87",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "id": 63352,
            "nodeType": "StructDefinition",
            "src": "4260:785:87",
            "nodes": [],
            "canonicalName": "PWNSimpleLoanDutchAuctionProposal.Proposal",
            "members": [
              {
                "constant": false,
                "id": 63307,
                "mutability": "mutable",
                "name": "collateralCategory",
                "nameLocation": "4306:18:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4286:38:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_Category_$50",
                  "typeString": "enum MultiToken.Category"
                },
                "typeName": {
                  "id": 63306,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 63305,
                    "name": "MultiToken.Category",
                    "nameLocations": [
                      "4286:10:87",
                      "4297:8:87"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 50,
                    "src": "4286:19:87"
                  },
                  "referencedDeclaration": 50,
                  "src": "4286:19:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Category_$50",
                    "typeString": "enum MultiToken.Category"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63309,
                "mutability": "mutable",
                "name": "collateralAddress",
                "nameLocation": "4342:17:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4334:25:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 63308,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4334:7:87",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63311,
                "mutability": "mutable",
                "name": "collateralId",
                "nameLocation": "4377:12:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4369:20:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63310,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4369:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63313,
                "mutability": "mutable",
                "name": "collateralAmount",
                "nameLocation": "4407:16:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4399:24:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63312,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4399:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63315,
                "mutability": "mutable",
                "name": "checkCollateralStateFingerprint",
                "nameLocation": "4438:31:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4433:36:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 63314,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "4433:4:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63317,
                "mutability": "mutable",
                "name": "collateralStateFingerprint",
                "nameLocation": "4487:26:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4479:34:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 63316,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4479:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63319,
                "mutability": "mutable",
                "name": "creditAddress",
                "nameLocation": "4531:13:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4523:21:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 63318,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4523:7:87",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63321,
                "mutability": "mutable",
                "name": "minCreditAmount",
                "nameLocation": "4562:15:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4554:23:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63320,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4554:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63323,
                "mutability": "mutable",
                "name": "maxCreditAmount",
                "nameLocation": "4595:15:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4587:23:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63322,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4587:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63325,
                "mutability": "mutable",
                "name": "availableCreditLimit",
                "nameLocation": "4628:20:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4620:28:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63324,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4620:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63327,
                "mutability": "mutable",
                "name": "fixedInterestAmount",
                "nameLocation": "4666:19:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4658:27:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63326,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4658:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63329,
                "mutability": "mutable",
                "name": "accruingInterestAPR",
                "nameLocation": "4702:19:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4695:26:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint40",
                  "typeString": "uint40"
                },
                "typeName": {
                  "id": 63328,
                  "name": "uint40",
                  "nodeType": "ElementaryTypeName",
                  "src": "4695:6:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint40",
                    "typeString": "uint40"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63331,
                "mutability": "mutable",
                "name": "duration",
                "nameLocation": "4738:8:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4731:15:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 63330,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4731:6:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63333,
                "mutability": "mutable",
                "name": "auctionStart",
                "nameLocation": "4763:12:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4756:19:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint40",
                  "typeString": "uint40"
                },
                "typeName": {
                  "id": 63332,
                  "name": "uint40",
                  "nodeType": "ElementaryTypeName",
                  "src": "4756:6:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint40",
                    "typeString": "uint40"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63335,
                "mutability": "mutable",
                "name": "auctionDuration",
                "nameLocation": "4792:15:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4785:22:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint40",
                  "typeString": "uint40"
                },
                "typeName": {
                  "id": 63334,
                  "name": "uint40",
                  "nodeType": "ElementaryTypeName",
                  "src": "4785:6:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint40",
                    "typeString": "uint40"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63337,
                "mutability": "mutable",
                "name": "allowedAcceptor",
                "nameLocation": "4825:15:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4817:23:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 63336,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4817:7:87",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63339,
                "mutability": "mutable",
                "name": "proposer",
                "nameLocation": "4858:8:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4850:16:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 63338,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4850:7:87",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63341,
                "mutability": "mutable",
                "name": "proposerSpecHash",
                "nameLocation": "4884:16:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4876:24:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 63340,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4876:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63343,
                "mutability": "mutable",
                "name": "isOffer",
                "nameLocation": "4915:7:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4910:12:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 63342,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "4910:4:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63345,
                "mutability": "mutable",
                "name": "refinancingLoanId",
                "nameLocation": "4940:17:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4932:25:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63344,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4932:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63347,
                "mutability": "mutable",
                "name": "nonceSpace",
                "nameLocation": "4975:10:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4967:18:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63346,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4967:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63349,
                "mutability": "mutable",
                "name": "nonce",
                "nameLocation": "5003:5:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "4995:13:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63348,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4995:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63351,
                "mutability": "mutable",
                "name": "loanContract",
                "nameLocation": "5026:12:87",
                "nodeType": "VariableDeclaration",
                "scope": 63352,
                "src": "5018:20:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 63350,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5018:7:87",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Proposal",
            "nameLocation": "4267:8:87",
            "scope": 63826,
            "visibility": "public"
          },
          {
            "id": 63357,
            "nodeType": "StructDefinition",
            "src": "5577:93:87",
            "nodes": [],
            "canonicalName": "PWNSimpleLoanDutchAuctionProposal.ProposalValues",
            "members": [
              {
                "constant": false,
                "id": 63354,
                "mutability": "mutable",
                "name": "intendedCreditAmount",
                "nameLocation": "5617:20:87",
                "nodeType": "VariableDeclaration",
                "scope": 63357,
                "src": "5609:28:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63353,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "5609:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 63356,
                "mutability": "mutable",
                "name": "slippage",
                "nameLocation": "5655:8:87",
                "nodeType": "VariableDeclaration",
                "scope": 63357,
                "src": "5647:16:87",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 63355,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "5647:7:87",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "ProposalValues",
            "nameLocation": "5584:14:87",
            "scope": 63826,
            "visibility": "public"
          },
          {
            "id": 63367,
            "nodeType": "EventDefinition",
            "src": "5768:94:87",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 63358,
              "nodeType": "StructuredDocumentation",
              "src": "5676:87:87",
              "text": " @notice Emitted when a proposal is made via an on-chain transaction."
            },
            "eventSelector": "3b1a36970f0572a06721d882d895a21603c69916ffb9df274f0bf300a23bd933",
            "name": "ProposalMade",
            "nameLocation": "5774:12:87",
            "parameters": {
              "id": 63366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63360,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "proposalHash",
                  "nameLocation": "5803:12:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63367,
                  "src": "5787:28:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 63359,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5787:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63362,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "proposer",
                  "nameLocation": "5833:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63367,
                  "src": "5817:24:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 63361,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5817:7:87",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63365,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "5852:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63367,
                  "src": "5843:17:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                  },
                  "typeName": {
                    "id": 63364,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63363,
                      "name": "Proposal",
                      "nameLocations": [
                        "5843:8:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63352,
                      "src": "5843:8:87"
                    },
                    "referencedDeclaration": 63352,
                    "src": "5843:8:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5786:75:87"
            }
          },
          {
            "id": 63374,
            "nodeType": "ErrorDefinition",
            "src": "5963:61:87",
            "nodes": [],
            "documentation": {
              "id": 63368,
              "nodeType": "StructuredDocumentation",
              "src": "5868:90:87",
              "text": " @notice Thrown when auction duration is less than min auction duration."
            },
            "errorSelector": "e860e0dd",
            "name": "InvalidAuctionDuration",
            "nameLocation": "5969:22:87",
            "parameters": {
              "id": 63373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63370,
                  "mutability": "mutable",
                  "name": "current",
                  "nameLocation": "6000:7:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63374,
                  "src": "5992:15:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63369,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5992:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63372,
                  "mutability": "mutable",
                  "name": "limit",
                  "nameLocation": "6017:5:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63374,
                  "src": "6009:13:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63371,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6009:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5991:32:87"
            }
          },
          {
            "id": 63379,
            "nodeType": "ErrorDefinition",
            "src": "6114:55:87",
            "nodes": [],
            "documentation": {
              "id": 63375,
              "nodeType": "StructuredDocumentation",
              "src": "6030:79:87",
              "text": " @notice Thrown when auction duration is not in full minutes."
            },
            "errorSelector": "cba6bbe0",
            "name": "AuctionDurationNotInFullMinutes",
            "nameLocation": "6120:31:87",
            "parameters": {
              "id": 63378,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63377,
                  "mutability": "mutable",
                  "name": "current",
                  "nameLocation": "6160:7:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63379,
                  "src": "6152:15:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63376,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6152:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6151:17:87"
            }
          },
          {
            "id": 63386,
            "nodeType": "ErrorDefinition",
            "src": "6271:81:87",
            "nodes": [],
            "documentation": {
              "id": 63380,
              "nodeType": "StructuredDocumentation",
              "src": "6175:91:87",
              "text": " @notice Thrown when min credit amount is greater than max credit amount."
            },
            "errorSelector": "dd218870",
            "name": "InvalidCreditAmountRange",
            "nameLocation": "6277:24:87",
            "parameters": {
              "id": 63385,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63382,
                  "mutability": "mutable",
                  "name": "minCreditAmount",
                  "nameLocation": "6310:15:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63386,
                  "src": "6302:23:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63381,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6302:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63384,
                  "mutability": "mutable",
                  "name": "maxCreditAmount",
                  "nameLocation": "6335:15:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63386,
                  "src": "6327:23:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63383,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6327:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6301:50:87"
            }
          },
          {
            "id": 63395,
            "nodeType": "ErrorDefinition",
            "src": "6491:103:87",
            "nodes": [],
            "documentation": {
              "id": 63387,
              "nodeType": "StructuredDocumentation",
              "src": "6358:128:87",
              "text": " @notice Thrown when current auction credit amount is not in the range of intended credit amount and slippage."
            },
            "errorSelector": "facf997b",
            "name": "InvalidCreditAmount",
            "nameLocation": "6497:19:87",
            "parameters": {
              "id": 63394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63389,
                  "mutability": "mutable",
                  "name": "auctionCreditAmount",
                  "nameLocation": "6525:19:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63395,
                  "src": "6517:27:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63388,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6517:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63391,
                  "mutability": "mutable",
                  "name": "intendedCreditAmount",
                  "nameLocation": "6554:20:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63395,
                  "src": "6546:28:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63390,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6546:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63393,
                  "mutability": "mutable",
                  "name": "slippage",
                  "nameLocation": "6584:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63395,
                  "src": "6576:16:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63392,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6576:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6516:77:87"
            }
          },
          {
            "id": 63402,
            "nodeType": "ErrorDefinition",
            "src": "6693:75:87",
            "nodes": [],
            "documentation": {
              "id": 63396,
              "nodeType": "StructuredDocumentation",
              "src": "6600:88:87",
              "text": " @notice Thrown when auction has not started yet or has already ended."
            },
            "errorSelector": "7eb6cbd9",
            "name": "AuctionNotInProgress",
            "nameLocation": "6699:20:87",
            "parameters": {
              "id": 63401,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63398,
                  "mutability": "mutable",
                  "name": "currentTimestamp",
                  "nameLocation": "6728:16:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63402,
                  "src": "6720:24:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63397,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6720:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63400,
                  "mutability": "mutable",
                  "name": "auctionStart",
                  "nameLocation": "6754:12:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63402,
                  "src": "6746:20:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6746:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6719:48:87"
            }
          },
          {
            "id": 63419,
            "nodeType": "FunctionDefinition",
            "src": "6774:196:87",
            "nodes": [],
            "body": {
              "id": 63418,
              "nodeType": "Block",
              "src": "6968:2:87",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 63411,
                    "name": "_hub",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 63404,
                    "src": "6892:4:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 63412,
                    "name": "_revokedNonce",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 63406,
                    "src": "6898:13:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 63413,
                    "name": "_config",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 63408,
                    "src": "6913:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "hexValue": "50574e53696d706c654c6f616e447574636841756374696f6e50726f706f73616c",
                    "id": 63414,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "6922:35:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_e654ebe968f90c74d6d3b67e3516e8b8c0e37f9a2eac7ee43306a584a72b2921",
                      "typeString": "literal_string \"PWNSimpleLoanDutchAuctionProposal\""
                    },
                    "value": "PWNSimpleLoanDutchAuctionProposal"
                  },
                  {
                    "id": 63415,
                    "name": "VERSION",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 63298,
                    "src": "6959:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 63416,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 63410,
                  "name": "PWNSimpleLoanProposal",
                  "nameLocations": [
                    "6870:21:87"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 65236,
                  "src": "6870:21:87"
                },
                "nodeType": "ModifierInvocation",
                "src": "6870:97:87"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 63409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63404,
                  "mutability": "mutable",
                  "name": "_hub",
                  "nameLocation": "6803:4:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63419,
                  "src": "6795:12:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 63403,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6795:7:87",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63406,
                  "mutability": "mutable",
                  "name": "_revokedNonce",
                  "nameLocation": "6825:13:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63419,
                  "src": "6817:21:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 63405,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6817:7:87",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63408,
                  "mutability": "mutable",
                  "name": "_config",
                  "nameLocation": "6856:7:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63419,
                  "src": "6848:15:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 63407,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6848:7:87",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6785:84:87"
            },
            "returnParameters": {
              "id": 63417,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6968:0:87"
            },
            "scope": 63826,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 63437,
            "nodeType": "FunctionDefinition",
            "src": "7139:164:87",
            "nodes": [],
            "body": {
              "id": 63436,
              "nodeType": "Block",
              "src": "7222:81:87",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 63429,
                        "name": "PROPOSAL_TYPEHASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63304,
                        "src": "7256:17:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 63432,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63423,
                            "src": "7286:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                            }
                          ],
                          "expression": {
                            "id": 63430,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "7275:3:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 63431,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "7279:6:87",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "7275:10:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 63433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7275:20:87",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 63428,
                      "name": "_getProposalHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64872,
                      "src": "7239:16:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes memory) view returns (bytes32)"
                      }
                    },
                    "id": 63434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7239:57:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 63427,
                  "id": 63435,
                  "nodeType": "Return",
                  "src": "7232:64:87"
                }
              ]
            },
            "documentation": {
              "id": 63420,
              "nodeType": "StructuredDocumentation",
              "src": "6976:158:87",
              "text": " @notice Get an proposal hash according to EIP-712\n @param proposal Proposal struct to be hashed.\n @return Proposal struct hash."
            },
            "functionSelector": "c1a1f491",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getProposalHash",
            "nameLocation": "7148:15:87",
            "parameters": {
              "id": 63424,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63423,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "7182:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63437,
                  "src": "7164:26:87",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                  },
                  "typeName": {
                    "id": 63422,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63421,
                      "name": "Proposal",
                      "nameLocations": [
                        "7164:8:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63352,
                      "src": "7164:8:87"
                    },
                    "referencedDeclaration": 63352,
                    "src": "7164:8:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7163:28:87"
            },
            "returnParameters": {
              "id": 63427,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63426,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 63437,
                  "src": "7213:7:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 63425,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7213:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7212:9:87"
            },
            "scope": 63826,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 63466,
            "nodeType": "FunctionDefinition",
            "src": "7546:273:87",
            "nodes": [],
            "body": {
              "id": 63465,
              "nodeType": "Block",
              "src": "7636:183:87",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 63450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 63446,
                      "name": "proposalHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63444,
                      "src": "7646:12:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 63448,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63441,
                          "src": "7677:8:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                          }
                        ],
                        "id": 63447,
                        "name": "getProposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63437,
                        "src": "7661:15:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Proposal_$63352_calldata_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata) view returns (bytes32)"
                        }
                      },
                      "id": 63449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7661:25:87",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7646:40:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 63451,
                  "nodeType": "ExpressionStatement",
                  "src": "7646:40:87"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 63453,
                        "name": "proposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63444,
                        "src": "7710:12:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 63454,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63441,
                          "src": "7724:8:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                          }
                        },
                        "id": 63455,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7733:8:87",
                        "memberName": "proposer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 63339,
                        "src": "7724:17:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 63452,
                      "name": "_makeProposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64897,
                      "src": "7696:13:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 63456,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7696:46:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 63457,
                  "nodeType": "ExpressionStatement",
                  "src": "7696:46:87"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 63459,
                        "name": "proposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63444,
                        "src": "7770:12:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 63460,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63441,
                          "src": "7784:8:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                          }
                        },
                        "id": 63461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7793:8:87",
                        "memberName": "proposer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 63339,
                        "src": "7784:17:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 63462,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63441,
                        "src": "7803:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal calldata"
                        }
                      ],
                      "id": 63458,
                      "name": "ProposalMade",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63367,
                      "src": "7757:12:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_struct$_Proposal_$63352_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,address,struct PWNSimpleLoanDutchAuctionProposal.Proposal memory)"
                      }
                    },
                    "id": 63463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7757:55:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 63464,
                  "nodeType": "EmitStatement",
                  "src": "7752:60:87"
                }
              ]
            },
            "documentation": {
              "id": 63438,
              "nodeType": "StructuredDocumentation",
              "src": "7309:232:87",
              "text": " @notice Make an on-chain proposal.\n @dev Function will mark a proposal hash as proposed.\n @param proposal Proposal struct containing all needed proposal data.\n @return proposalHash Proposal hash."
            },
            "functionSelector": "949bcadc",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "makeProposal",
            "nameLocation": "7555:12:87",
            "parameters": {
              "id": 63442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63441,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "7586:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63466,
                  "src": "7568:26:87",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$63352_calldata_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                  },
                  "typeName": {
                    "id": 63440,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63439,
                      "name": "Proposal",
                      "nameLocations": [
                        "7568:8:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63352,
                      "src": "7568:8:87"
                    },
                    "referencedDeclaration": 63352,
                    "src": "7568:8:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7567:28:87"
            },
            "returnParameters": {
              "id": 63445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63444,
                  "mutability": "mutable",
                  "name": "proposalHash",
                  "nameLocation": "7622:12:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63466,
                  "src": "7614:20:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 63443,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7614:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7613:22:87"
            },
            "scope": 63826,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 63485,
            "nodeType": "FunctionDefinition",
            "src": "8036:211:87",
            "nodes": [],
            "body": {
              "id": 63484,
              "nodeType": "Block",
              "src": "8187:60:87",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 63480,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63470,
                        "src": "8215:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      {
                        "id": 63481,
                        "name": "proposalValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63473,
                        "src": "8225:14:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                        }
                      ],
                      "expression": {
                        "id": 63478,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "8204:3:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 63479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "8208:6:87",
                      "memberName": "encode",
                      "nodeType": "MemberAccess",
                      "src": "8204:10:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 63482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8204:36:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 63477,
                  "id": 63483,
                  "nodeType": "Return",
                  "src": "8197:43:87"
                }
              ]
            },
            "documentation": {
              "id": 63467,
              "nodeType": "StructuredDocumentation",
              "src": "7825:206:87",
              "text": " @notice Encode proposal data.\n @param proposal Proposal struct to be encoded.\n @param proposalValues ProposalValues struct to be encoded.\n @return Encoded proposal data."
            },
            "functionSelector": "e81ae3d6",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeProposalData",
            "nameLocation": "8045:18:87",
            "parameters": {
              "id": 63474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63470,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "8089:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63485,
                  "src": "8073:24:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                  },
                  "typeName": {
                    "id": 63469,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63468,
                      "name": "Proposal",
                      "nameLocations": [
                        "8073:8:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63352,
                      "src": "8073:8:87"
                    },
                    "referencedDeclaration": 63352,
                    "src": "8073:8:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63473,
                  "mutability": "mutable",
                  "name": "proposalValues",
                  "nameLocation": "8129:14:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63485,
                  "src": "8107:36:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues"
                  },
                  "typeName": {
                    "id": 63472,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63471,
                      "name": "ProposalValues",
                      "nameLocations": [
                        "8107:14:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63357,
                      "src": "8107:14:87"
                    },
                    "referencedDeclaration": 63357,
                    "src": "8107:14:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalValues_$63357_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8063:86:87"
            },
            "returnParameters": {
              "id": 63477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63476,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 63485,
                  "src": "8173:12:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 63475,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "8173:5:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8172:14:87"
            },
            "scope": 63826,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 63506,
            "nodeType": "FunctionDefinition",
            "src": "8443:192:87",
            "nodes": [],
            "body": {
              "id": 63505,
              "nodeType": "Block",
              "src": "8559:76:87",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 63499,
                        "name": "proposalData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63488,
                        "src": "8587:12:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "id": 63500,
                            "name": "Proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63352,
                            "src": "8602:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Proposal_$63352_storage_ptr_$",
                              "typeString": "type(struct PWNSimpleLoanDutchAuctionProposal.Proposal storage pointer)"
                            }
                          },
                          {
                            "id": 63501,
                            "name": "ProposalValues",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63357,
                            "src": "8612:14:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_ProposalValues_$63357_storage_ptr_$",
                              "typeString": "type(struct PWNSimpleLoanDutchAuctionProposal.ProposalValues storage pointer)"
                            }
                          }
                        ],
                        "id": 63502,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "8601:26:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_type$_t_struct$_Proposal_$63352_storage_ptr_$_$_t_type$_t_struct$_ProposalValues_$63357_storage_ptr_$_$",
                          "typeString": "tuple(type(struct PWNSimpleLoanDutchAuctionProposal.Proposal storage pointer),type(struct PWNSimpleLoanDutchAuctionProposal.ProposalValues storage pointer))"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_tuple$_t_type$_t_struct$_Proposal_$63352_storage_ptr_$_$_t_type$_t_struct$_ProposalValues_$63357_storage_ptr_$_$",
                          "typeString": "tuple(type(struct PWNSimpleLoanDutchAuctionProposal.Proposal storage pointer),type(struct PWNSimpleLoanDutchAuctionProposal.ProposalValues storage pointer))"
                        }
                      ],
                      "expression": {
                        "id": 63497,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "8576:3:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 63498,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "8580:6:87",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "8576:10:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 63503,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8576:52:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_struct$_Proposal_$63352_memory_ptr_$_t_struct$_ProposalValues_$63357_memory_ptr_$",
                      "typeString": "tuple(struct PWNSimpleLoanDutchAuctionProposal.Proposal memory,struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory)"
                    }
                  },
                  "functionReturnParameters": 63496,
                  "id": 63504,
                  "nodeType": "Return",
                  "src": "8569:59:87"
                }
              ]
            },
            "documentation": {
              "id": 63486,
              "nodeType": "StructuredDocumentation",
              "src": "8253:185:87",
              "text": " @notice Decode proposal data.\n @param proposalData Encoded proposal data.\n @return Decoded proposal struct.\n @return Decoded proposal values struct."
            },
            "functionSelector": "2d5d17fc",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeProposalData",
            "nameLocation": "8452:18:87",
            "parameters": {
              "id": 63489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63488,
                  "mutability": "mutable",
                  "name": "proposalData",
                  "nameLocation": "8484:12:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63506,
                  "src": "8471:25:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 63487,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "8471:5:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8470:27:87"
            },
            "returnParameters": {
              "id": 63496,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63492,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 63506,
                  "src": "8519:15:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                  },
                  "typeName": {
                    "id": 63491,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63490,
                      "name": "Proposal",
                      "nameLocations": [
                        "8519:8:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63352,
                      "src": "8519:8:87"
                    },
                    "referencedDeclaration": 63352,
                    "src": "8519:8:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63495,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 63506,
                  "src": "8536:21:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues"
                  },
                  "typeName": {
                    "id": 63494,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63493,
                      "name": "ProposalValues",
                      "nameLocations": [
                        "8536:14:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63357,
                      "src": "8536:14:87"
                    },
                    "referencedDeclaration": 63357,
                    "src": "8536:14:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalValues_$63357_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8518:40:87"
            },
            "scope": 63826,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 63625,
            "nodeType": "FunctionDefinition",
            "src": "9059:2108:87",
            "nodes": [],
            "body": {
              "id": 63624,
              "nodeType": "Block",
              "src": "9159:2008:87",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint40",
                      "typeString": "uint40"
                    },
                    "id": 63520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 63517,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63510,
                        "src": "9199:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      "id": 63518,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9208:15:87",
                      "memberName": "auctionDuration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 63335,
                      "src": "9199:24:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint40",
                        "typeString": "uint40"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 63519,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9226:9:87",
                      "subdenomination": "minutes",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_60_by_1",
                        "typeString": "int_const 60"
                      },
                      "value": "1"
                    },
                    "src": "9199:36:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 63528,
                  "nodeType": "IfStatement",
                  "src": "9195:197:87",
                  "trueBody": {
                    "id": 63527,
                    "nodeType": "Block",
                    "src": "9237:155:87",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 63522,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63510,
                                "src": "9308:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63523,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9317:15:87",
                              "memberName": "auctionDuration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63335,
                              "src": "9308:24:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            },
                            {
                              "hexValue": "31",
                              "id": 63524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9357:9:87",
                              "subdenomination": "minutes",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_60_by_1",
                                "typeString": "int_const 60"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              },
                              {
                                "typeIdentifier": "t_rational_60_by_1",
                                "typeString": "int_const 60"
                              }
                            ],
                            "id": 63521,
                            "name": "InvalidAuctionDuration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63374,
                            "src": "9258:22:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) pure"
                            }
                          },
                          "id": 63525,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "9299:7:87",
                            "9350:5:87"
                          ],
                          "names": [
                            "current",
                            "limit"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "9258:123:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 63526,
                        "nodeType": "RevertStatement",
                        "src": "9251:130:87"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint40",
                      "typeString": "uint40"
                    },
                    "id": 63534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint40",
                        "typeString": "uint40"
                      },
                      "id": 63532,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 63529,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63510,
                          "src": "9405:8:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                          }
                        },
                        "id": 63530,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9414:15:87",
                        "memberName": "auctionDuration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 63335,
                        "src": "9405:24:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "%",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 63531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9432:9:87",
                        "subdenomination": "minutes",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_60_by_1",
                          "typeString": "int_const 60"
                        },
                        "value": "1"
                      },
                      "src": "9405:36:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint40",
                        "typeString": "uint40"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 63533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9444:1:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9405:40:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 63541,
                  "nodeType": "IfStatement",
                  "src": "9401:176:87",
                  "trueBody": {
                    "id": 63540,
                    "nodeType": "Block",
                    "src": "9447:130:87",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 63536,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63510,
                                "src": "9527:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63537,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9536:15:87",
                              "memberName": "auctionDuration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63335,
                              "src": "9527:24:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            ],
                            "id": 63535,
                            "name": "AuctionDurationNotInFullMinutes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63379,
                            "src": "9468:31:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 63538,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "9518:7:87"
                          ],
                          "names": [
                            "current"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "9468:98:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 63539,
                        "nodeType": "RevertStatement",
                        "src": "9461:105:87"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 63546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 63542,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63510,
                        "src": "9590:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      "id": 63543,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9599:15:87",
                      "memberName": "maxCreditAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 63323,
                      "src": "9590:24:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "expression": {
                        "id": 63544,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63510,
                        "src": "9618:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      "id": 63545,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9627:15:87",
                      "memberName": "minCreditAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 63321,
                      "src": "9618:24:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9590:52:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 63555,
                  "nodeType": "IfStatement",
                  "src": "9586:248:87",
                  "trueBody": {
                    "id": 63554,
                    "nodeType": "Block",
                    "src": "9644:190:87",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 63548,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63510,
                                "src": "9725:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63549,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9734:15:87",
                              "memberName": "minCreditAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63321,
                              "src": "9725:24:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 63550,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63510,
                                "src": "9784:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63551,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9793:15:87",
                              "memberName": "maxCreditAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63323,
                              "src": "9784:24:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 63547,
                            "name": "InvalidCreditAmountRange",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63386,
                            "src": "9665:24:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) pure"
                            }
                          },
                          "id": 63552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "9708:15:87",
                            "9767:15:87"
                          ],
                          "names": [
                            "minCreditAmount",
                            "maxCreditAmount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "9665:158:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 63553,
                        "nodeType": "RevertStatement",
                        "src": "9658:165:87"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 63559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 63556,
                      "name": "timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63512,
                      "src": "9888:9:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 63557,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63510,
                        "src": "9900:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      "id": 63558,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9909:12:87",
                      "memberName": "auctionStart",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 63333,
                      "src": "9900:21:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint40",
                        "typeString": "uint40"
                      }
                    },
                    "src": "9888:33:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 63567,
                  "nodeType": "IfStatement",
                  "src": "9884:205:87",
                  "trueBody": {
                    "id": 63566,
                    "nodeType": "Block",
                    "src": "9923:166:87",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 63561,
                              "name": "timestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63512,
                              "src": "10001:9:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 63562,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63510,
                                "src": "10042:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63563,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10051:12:87",
                              "memberName": "auctionStart",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63333,
                              "src": "10042:21:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            ],
                            "id": 63560,
                            "name": "AuctionNotInProgress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63402,
                            "src": "9944:20:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) pure"
                            }
                          },
                          "id": 63564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "9983:16:87",
                            "10028:12:87"
                          ],
                          "names": [
                            "currentTimestamp",
                            "auctionStart"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "9944:134:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 63565,
                        "nodeType": "RevertStatement",
                        "src": "9937:141:87"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 63576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint40",
                        "typeString": "uint40"
                      },
                      "id": 63574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "id": 63572,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 63568,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63510,
                            "src": "10102:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63569,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10111:12:87",
                          "memberName": "auctionStart",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63333,
                          "src": "10102:21:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "expression": {
                            "id": 63570,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63510,
                            "src": "10126:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63571,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10135:15:87",
                          "memberName": "auctionDuration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63335,
                          "src": "10126:24:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "src": "10102:48:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 63573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10153:9:87",
                        "subdenomination": "minutes",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_60_by_1",
                          "typeString": "int_const 60"
                        },
                        "value": "1"
                      },
                      "src": "10102:60:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint40",
                        "typeString": "uint40"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "id": 63575,
                      "name": "timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63512,
                      "src": "10166:9:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10102:73:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 63589,
                  "nodeType": "IfStatement",
                  "src": "10098:260:87",
                  "trueBody": {
                    "id": 63588,
                    "nodeType": "Block",
                    "src": "10177:181:87",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 63578,
                              "name": "timestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63512,
                              "src": "10233:9:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              },
                              "id": 63585,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint40",
                                  "typeString": "uint40"
                                },
                                "id": 63583,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 63579,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 63510,
                                    "src": "10272:8:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                    }
                                  },
                                  "id": 63580,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10281:12:87",
                                  "memberName": "auctionStart",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 63333,
                                  "src": "10272:21:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint40",
                                    "typeString": "uint40"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "expression": {
                                    "id": 63581,
                                    "name": "proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 63510,
                                    "src": "10296:8:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                    }
                                  },
                                  "id": 63582,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10305:15:87",
                                  "memberName": "auctionDuration",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 63335,
                                  "src": "10296:24:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint40",
                                    "typeString": "uint40"
                                  }
                                },
                                "src": "10272:48:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint40",
                                  "typeString": "uint40"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "hexValue": "31",
                                "id": 63584,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10323:9:87",
                                "subdenomination": "minutes",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_60_by_1",
                                  "typeString": "int_const 60"
                                },
                                "value": "1"
                              },
                              "src": "10272:60:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            ],
                            "id": 63577,
                            "name": "Expired",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 59984,
                            "src": "10198:7:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) pure"
                            }
                          },
                          "id": 63586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "10224:7:87",
                            "10260:10:87"
                          ],
                          "names": [
                            "current",
                            "expiration"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "10198:149:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 63587,
                        "nodeType": "RevertStatement",
                        "src": "10191:156:87"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    63591
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 63591,
                      "mutability": "mutable",
                      "name": "creditAmountDelta",
                      "nameLocation": "10515:17:87",
                      "nodeType": "VariableDeclaration",
                      "scope": 63624,
                      "src": "10507:25:87",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 63590,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "10507:7:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 63611,
                  "initialValue": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 63598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 63594,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63510,
                            "src": "10560:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63595,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10569:15:87",
                          "memberName": "maxCreditAmount",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63323,
                          "src": "10560:24:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "expression": {
                            "id": 63596,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63510,
                            "src": "10587:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63597,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10596:15:87",
                          "memberName": "minCreditAmount",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63321,
                          "src": "10587:24:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "10560:51:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 63605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 63602,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 63599,
                                "name": "timestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63512,
                                "src": "10658:9:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "expression": {
                                  "id": 63600,
                                  "name": "proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63510,
                                  "src": "10670:8:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                  }
                                },
                                "id": 63601,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10679:12:87",
                                "memberName": "auctionStart",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63333,
                                "src": "10670:21:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint40",
                                  "typeString": "uint40"
                                }
                              },
                              "src": "10658:33:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 63603,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "10657:35:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 63604,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10695:9:87",
                          "subdenomination": "minutes",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_60_by_1",
                            "typeString": "int_const 60"
                          },
                          "value": "1"
                        },
                        "src": "10657:47:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "id": 63609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 63606,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63510,
                            "src": "10753:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63607,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10762:15:87",
                          "memberName": "auctionDuration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63335,
                          "src": "10753:24:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 63608,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10780:9:87",
                          "subdenomination": "minutes",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_60_by_1",
                            "typeString": "int_const 60"
                          },
                          "value": "1"
                        },
                        "src": "10753:36:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        }
                      ],
                      "expression": {
                        "id": 63592,
                        "name": "Math",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55080,
                        "src": "10535:4:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Math_$55080_$",
                          "typeString": "type(library Math)"
                        }
                      },
                      "id": 63593,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10540:6:87",
                      "memberName": "mulDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 54428,
                      "src": "10535:11:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 63610,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10535:284:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10507:312:87"
                },
                {
                  "expression": {
                    "condition": {
                      "expression": {
                        "id": 63612,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63510,
                        "src": "11026:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      "id": 63613,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11035:7:87",
                      "memberName": "isOffer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 63343,
                      "src": "11026:16:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 63621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 63618,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63510,
                          "src": "11116:8:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                          }
                        },
                        "id": 63619,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11125:15:87",
                        "memberName": "maxCreditAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 63323,
                        "src": "11116:24:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "id": 63620,
                        "name": "creditAmountDelta",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63591,
                        "src": "11143:17:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "11116:44:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 63622,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "11026:134:87",
                    "trueExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 63617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 63614,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63510,
                          "src": "11057:8:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                            "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                          }
                        },
                        "id": 63615,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11066:15:87",
                        "memberName": "minCreditAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 63321,
                        "src": "11057:24:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 63616,
                        "name": "creditAmountDelta",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63591,
                        "src": "11084:17:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "11057:44:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 63516,
                  "id": 63623,
                  "nodeType": "Return",
                  "src": "11019:141:87"
                }
              ]
            },
            "documentation": {
              "id": 63507,
              "nodeType": "StructuredDocumentation",
              "src": "8641:413:87",
              "text": " @notice Get credit amount for an auction in a specific timestamp.\n @dev Auction runs one minute longer than `auctionDuration` to have `maxCreditAmount` value in the last minute.\n @param proposal Proposal struct containing all proposal data.\n @param timestamp Timestamp to calculate auction credit amount for.\n @return Credit amount in the auction for provided timestamp."
            },
            "functionSelector": "b098647f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCreditAmount",
            "nameLocation": "9068:15:87",
            "parameters": {
              "id": 63513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63510,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "9100:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63625,
                  "src": "9084:24:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                  },
                  "typeName": {
                    "id": 63509,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63508,
                      "name": "Proposal",
                      "nameLocations": [
                        "9084:8:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 63352,
                      "src": "9084:8:87"
                    },
                    "referencedDeclaration": 63352,
                    "src": "9084:8:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                      "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63512,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "9118:9:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63625,
                  "src": "9110:17:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63511,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9110:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9083:45:87"
            },
            "returnParameters": {
              "id": 63516,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63515,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 63625,
                  "src": "9150:7:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63514,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9150:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9149:9:87"
            },
            "scope": 63826,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 63825,
            "nodeType": "FunctionDefinition",
            "src": "11230:3775:87",
            "nodes": [],
            "body": {
              "id": 63824,
              "nodeType": "Block",
              "src": "11530:3475:87",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    63648,
                    63651
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 63648,
                      "mutability": "mutable",
                      "name": "proposal",
                      "nameLocation": "11589:8:87",
                      "nodeType": "VariableDeclaration",
                      "scope": 63824,
                      "src": "11573:24:87",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                      },
                      "typeName": {
                        "id": 63647,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 63646,
                          "name": "Proposal",
                          "nameLocations": [
                            "11573:8:87"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 63352,
                          "src": "11573:8:87"
                        },
                        "referencedDeclaration": 63352,
                        "src": "11573:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_storage_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 63651,
                      "mutability": "mutable",
                      "name": "proposalValues",
                      "nameLocation": "11621:14:87",
                      "nodeType": "VariableDeclaration",
                      "scope": 63824,
                      "src": "11599:36:87",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues"
                      },
                      "typeName": {
                        "id": 63650,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 63649,
                          "name": "ProposalValues",
                          "nameLocations": [
                            "11599:14:87"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 63357,
                          "src": "11599:14:87"
                        },
                        "referencedDeclaration": 63357,
                        "src": "11599:14:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalValues_$63357_storage_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 63655,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 63653,
                        "name": "proposalData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63632,
                        "src": "11658:12:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 63652,
                      "name": "decodeProposalData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63506,
                      "src": "11639:18:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Proposal_$63352_memory_ptr_$_t_struct$_ProposalValues_$63357_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (struct PWNSimpleLoanDutchAuctionProposal.Proposal memory,struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory)"
                      }
                    },
                    "id": 63654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11639:32:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_struct$_Proposal_$63352_memory_ptr_$_t_struct$_ProposalValues_$63357_memory_ptr_$",
                      "typeString": "tuple(struct PWNSimpleLoanDutchAuctionProposal.Proposal memory,struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11572:99:87"
                },
                {
                  "expression": {
                    "id": 63664,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 63656,
                      "name": "proposalHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63641,
                      "src": "11712:12:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 63658,
                          "name": "PROPOSAL_TYPEHASH",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63304,
                          "src": "11744:17:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "id": 63661,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "11774:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            ],
                            "expression": {
                              "id": 63659,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -1,
                              "src": "11763:3:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 63660,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "11767:6:87",
                            "memberName": "encode",
                            "nodeType": "MemberAccess",
                            "src": "11763:10:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 63662,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11763:20:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 63657,
                        "name": "_getProposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64872,
                        "src": "11727:16:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32,bytes memory) view returns (bytes32)"
                        }
                      },
                      "id": 63663,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11727:57:87",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11712:72:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 63665,
                  "nodeType": "ExpressionStatement",
                  "src": "11712:72:87"
                },
                {
                  "assignments": [
                    63667
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 63667,
                      "mutability": "mutable",
                      "name": "creditAmount",
                      "nameLocation": "11846:12:87",
                      "nodeType": "VariableDeclaration",
                      "scope": 63824,
                      "src": "11838:20:87",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 63666,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11838:7:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 63673,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 63669,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63648,
                        "src": "11877:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 63670,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "11887:5:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 63671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11893:9:87",
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "11887:15:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                          "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 63668,
                      "name": "getCreditAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63625,
                      "src": "11861:15:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Proposal_$63352_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (struct PWNSimpleLoanDutchAuctionProposal.Proposal memory,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 63672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11861:42:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11838:65:87"
                },
                {
                  "condition": {
                    "expression": {
                      "id": 63674,
                      "name": "proposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63648,
                      "src": "11951:8:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                      }
                    },
                    "id": 63675,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "11960:7:87",
                    "memberName": "isOffer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 63343,
                    "src": "11951:16:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 63721,
                    "nodeType": "Block",
                    "src": "12449:474:87",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 63710,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 63702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 63699,
                              "name": "creditAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63667,
                              "src": "12484:12:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "expression": {
                                "id": 63700,
                                "name": "proposalValues",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63651,
                                "src": "12499:14:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                }
                              },
                              "id": 63701,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12514:20:87",
                              "memberName": "intendedCreditAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63354,
                              "src": "12499:35:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12484:50:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 63709,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 63707,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 63703,
                                  "name": "proposalValues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63651,
                                  "src": "12554:14:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                  }
                                },
                                "id": 63704,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "12569:20:87",
                                "memberName": "intendedCreditAmount",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63354,
                                "src": "12554:35:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "expression": {
                                  "id": 63705,
                                  "name": "proposalValues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63651,
                                  "src": "12592:14:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                  }
                                },
                                "id": 63706,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "12607:8:87",
                                "memberName": "slippage",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63356,
                                "src": "12592:23:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12554:61:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "id": 63708,
                              "name": "creditAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63667,
                              "src": "12618:12:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12554:76:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "12484:146:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 63720,
                        "nodeType": "IfStatement",
                        "src": "12463:450:87",
                        "trueBody": {
                          "id": 63719,
                          "nodeType": "Block",
                          "src": "12645:268:87",
                          "statements": [
                            {
                              "errorCall": {
                                "arguments": [
                                  {
                                    "id": 63712,
                                    "name": "creditAmount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 63667,
                                    "src": "12733:12:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 63713,
                                      "name": "proposalValues",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 63651,
                                      "src": "12789:14:87",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                      }
                                    },
                                    "id": 63714,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "12804:20:87",
                                    "memberName": "intendedCreditAmount",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 63354,
                                    "src": "12789:35:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 63715,
                                      "name": "proposalValues",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 63651,
                                      "src": "12856:14:87",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                      }
                                    },
                                    "id": 63716,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "12871:8:87",
                                    "memberName": "slippage",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 63356,
                                    "src": "12856:23:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 63711,
                                  "name": "InvalidCreditAmount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63395,
                                  "src": "12670:19:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256,uint256,uint256) pure"
                                  }
                                },
                                "id": 63717,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [
                                  "12712:19:87",
                                  "12767:20:87",
                                  "12846:8:87"
                                ],
                                "names": [
                                  "auctionCreditAmount",
                                  "intendedCreditAmount",
                                  "slippage"
                                ],
                                "nodeType": "FunctionCall",
                                "src": "12670:228:87",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 63718,
                              "nodeType": "RevertStatement",
                              "src": "12663:235:87"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "id": 63722,
                  "nodeType": "IfStatement",
                  "src": "11947:976:87",
                  "trueBody": {
                    "id": 63698,
                    "nodeType": "Block",
                    "src": "11969:474:87",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 63687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 63679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 63676,
                              "name": "creditAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63667,
                              "src": "12004:12:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "expression": {
                                "id": 63677,
                                "name": "proposalValues",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63651,
                                "src": "12019:14:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                }
                              },
                              "id": 63678,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12034:20:87",
                              "memberName": "intendedCreditAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63354,
                              "src": "12019:35:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12004:50:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 63686,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 63684,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 63680,
                                  "name": "proposalValues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63651,
                                  "src": "12074:14:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                  }
                                },
                                "id": 63681,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "12089:20:87",
                                "memberName": "intendedCreditAmount",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63354,
                                "src": "12074:35:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "expression": {
                                  "id": 63682,
                                  "name": "proposalValues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63651,
                                  "src": "12112:14:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                  }
                                },
                                "id": 63683,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "12127:8:87",
                                "memberName": "slippage",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63356,
                                "src": "12112:23:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12074:61:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "id": 63685,
                              "name": "creditAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63667,
                              "src": "12138:12:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12074:76:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "12004:146:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 63697,
                        "nodeType": "IfStatement",
                        "src": "11983:450:87",
                        "trueBody": {
                          "id": 63696,
                          "nodeType": "Block",
                          "src": "12165:268:87",
                          "statements": [
                            {
                              "errorCall": {
                                "arguments": [
                                  {
                                    "id": 63689,
                                    "name": "creditAmount",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 63667,
                                    "src": "12253:12:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 63690,
                                      "name": "proposalValues",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 63651,
                                      "src": "12309:14:87",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                      }
                                    },
                                    "id": 63691,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "12324:20:87",
                                    "memberName": "intendedCreditAmount",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 63354,
                                    "src": "12309:35:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 63692,
                                      "name": "proposalValues",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 63651,
                                      "src": "12376:14:87",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ProposalValues_$63357_memory_ptr",
                                        "typeString": "struct PWNSimpleLoanDutchAuctionProposal.ProposalValues memory"
                                      }
                                    },
                                    "id": 63693,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "12391:8:87",
                                    "memberName": "slippage",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 63356,
                                    "src": "12376:23:87",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 63688,
                                  "name": "InvalidCreditAmount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63395,
                                  "src": "12190:19:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256,uint256,uint256) pure"
                                  }
                                },
                                "id": 63694,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [
                                  "12232:19:87",
                                  "12287:20:87",
                                  "12366:8:87"
                                ],
                                "names": [
                                  "auctionCreditAmount",
                                  "intendedCreditAmount",
                                  "slippage"
                                ],
                                "nodeType": "FunctionCall",
                                "src": "12190:228:87",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 63695,
                              "nodeType": "RevertStatement",
                              "src": "12183:235:87"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 63724,
                        "name": "acceptor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63628,
                        "src": "12996:8:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 63725,
                        "name": "refinancingLoanId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63630,
                        "src": "13018:17:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 63726,
                        "name": "proposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63641,
                        "src": "13049:12:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 63727,
                        "name": "proposalInclusionProof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63635,
                        "src": "13075:22:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "id": 63728,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 63637,
                        "src": "13111:9:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 63730,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13184:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63731,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13193:17:87",
                            "memberName": "collateralAddress",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63309,
                            "src": "13184:26:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 63732,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13242:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63733,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13251:12:87",
                            "memberName": "collateralId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63311,
                            "src": "13242:21:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 63734,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13314:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63735,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13323:31:87",
                            "memberName": "checkCollateralStateFingerprint",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63315,
                            "src": "13314:40:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "expression": {
                              "id": 63736,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13400:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63737,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13409:26:87",
                            "memberName": "collateralStateFingerprint",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63317,
                            "src": "13400:35:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 63738,
                            "name": "creditAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63667,
                            "src": "13467:12:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 63739,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13519:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63740,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13528:20:87",
                            "memberName": "availableCreditLimit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63325,
                            "src": "13519:29:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            },
                            "id": 63747,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              },
                              "id": 63745,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 63741,
                                  "name": "proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63648,
                                  "src": "13578:8:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                  }
                                },
                                "id": 63742,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "13587:12:87",
                                "memberName": "auctionStart",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63333,
                                "src": "13578:21:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint40",
                                  "typeString": "uint40"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "expression": {
                                  "id": 63743,
                                  "name": "proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 63648,
                                  "src": "13602:8:87",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                  }
                                },
                                "id": 63744,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "13611:15:87",
                                "memberName": "auctionDuration",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 63335,
                                "src": "13602:24:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint40",
                                  "typeString": "uint40"
                                }
                              },
                              "src": "13578:48:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint40",
                                "typeString": "uint40"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 63746,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13629:9:87",
                              "subdenomination": "minutes",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_60_by_1",
                                "typeString": "int_const 60"
                              },
                              "value": "1"
                            },
                            "src": "13578:60:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            }
                          },
                          {
                            "expression": {
                              "id": 63748,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13673:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63749,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13682:15:87",
                            "memberName": "allowedAcceptor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63337,
                            "src": "13673:24:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 63750,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13725:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63751,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13734:8:87",
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63339,
                            "src": "13725:17:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 63752,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13769:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63753,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13778:7:87",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63343,
                            "src": "13769:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "expression": {
                              "id": 63754,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13822:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63755,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13831:17:87",
                            "memberName": "refinancingLoanId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63345,
                            "src": "13822:26:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 63756,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13878:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63757,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13887:10:87",
                            "memberName": "nonceSpace",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63347,
                            "src": "13878:19:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 63758,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13922:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63759,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13931:5:87",
                            "memberName": "nonce",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63349,
                            "src": "13922:14:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 63760,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "13968:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63761,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13977:12:87",
                            "memberName": "loanContract",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63351,
                            "src": "13968:21:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 63729,
                          "name": "ProposalBase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 64649,
                          "src": "13134:12:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ProposalBase_$64649_storage_ptr_$",
                            "typeString": "type(struct PWNSimpleLoanProposal.ProposalBase storage pointer)"
                          }
                        },
                        "id": 63762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "13165:17:87",
                          "13228:12:87",
                          "13281:31:87",
                          "13372:26:87",
                          "13453:12:87",
                          "13497:20:87",
                          "13566:10:87",
                          "13656:15:87",
                          "13715:8:87",
                          "13760:7:87",
                          "13803:17:87",
                          "13866:10:87",
                          "13915:5:87",
                          "13954:12:87"
                        ],
                        "names": [
                          "collateralAddress",
                          "collateralId",
                          "checkCollateralStateFingerprint",
                          "collateralStateFingerprint",
                          "creditAmount",
                          "availableCreditLimit",
                          "expiration",
                          "allowedAcceptor",
                          "proposer",
                          "isOffer",
                          "refinancingLoanId",
                          "nonceSpace",
                          "nonce",
                          "loanContract"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "13134:870:87",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalBase_$64649_memory_ptr",
                          "typeString": "struct PWNSimpleLoanProposal.ProposalBase memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_struct$_ProposalBase_$64649_memory_ptr",
                          "typeString": "struct PWNSimpleLoanProposal.ProposalBase memory"
                        }
                      ],
                      "id": 63723,
                      "name": "_acceptProposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 65235,
                      "src": "12967:15:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$_t_struct$_ProposalBase_$64649_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,bytes32,bytes32[] calldata,bytes calldata,struct PWNSimpleLoanProposal.ProposalBase memory)"
                      }
                    },
                    "id": 63763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12967:1047:87",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 63764,
                  "nodeType": "ExpressionStatement",
                  "src": "12967:1047:87"
                },
                {
                  "expression": {
                    "id": 63822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 63765,
                      "name": "loanTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 63644,
                      "src": "14061:9:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                        "typeString": "struct PWNSimpleLoan.Terms memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "condition": {
                            "expression": {
                              "id": 63768,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14115:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63769,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14124:7:87",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63343,
                            "src": "14115:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "id": 63772,
                            "name": "acceptor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63628,
                            "src": "14154:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 63773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "14115:47:87",
                          "trueExpression": {
                            "expression": {
                              "id": 63770,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14134:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63771,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14143:8:87",
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63339,
                            "src": "14134:17:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "condition": {
                            "expression": {
                              "id": 63774,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14186:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63775,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14195:7:87",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63343,
                            "src": "14186:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "expression": {
                              "id": 63777,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14216:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63778,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14225:8:87",
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63339,
                            "src": "14216:17:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 63779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "14186:47:87",
                          "trueExpression": {
                            "id": 63776,
                            "name": "acceptor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63628,
                            "src": "14205:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "expression": {
                            "id": 63780,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63648,
                            "src": "14257:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63781,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14266:8:87",
                          "memberName": "duration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63331,
                          "src": "14257:17:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 63784,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63648,
                                "src": "14345:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63785,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14354:18:87",
                              "memberName": "collateralCategory",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63307,
                              "src": "14345:27:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Category_$50",
                                "typeString": "enum MultiToken.Category"
                              }
                            },
                            {
                              "expression": {
                                "id": 63786,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63648,
                                "src": "14404:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63787,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14413:17:87",
                              "memberName": "collateralAddress",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63309,
                              "src": "14404:26:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 63788,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63648,
                                "src": "14452:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63789,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14461:12:87",
                              "memberName": "collateralId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63311,
                              "src": "14452:21:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 63790,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63648,
                                "src": "14499:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63791,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14508:16:87",
                              "memberName": "collateralAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63313,
                              "src": "14499:25:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_Category_$50",
                                "typeString": "enum MultiToken.Category"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 63782,
                              "name": "MultiToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1132,
                              "src": "14300:10:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_MultiToken_$1132_$",
                                "typeString": "type(library MultiToken)"
                              }
                            },
                            "id": 63783,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14311:5:87",
                            "memberName": "Asset",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 60,
                            "src": "14300:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Asset_$60_storage_ptr_$",
                              "typeString": "type(struct MultiToken.Asset storage pointer)"
                            }
                          },
                          "id": 63792,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "14335:8:87",
                            "14390:12:87",
                            "14448:2:87",
                            "14491:6:87"
                          ],
                          "names": [
                            "category",
                            "assetAddress",
                            "id",
                            "amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "14300:239:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 63795,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 63648,
                                "src": "14610:8:87",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                                }
                              },
                              "id": 63796,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14619:13:87",
                              "memberName": "creditAddress",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 63319,
                              "src": "14610:22:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 63797,
                              "name": "creditAmount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63667,
                              "src": "14658:12:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 63793,
                              "name": "MultiToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1132,
                              "src": "14561:10:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_MultiToken_$1132_$",
                                "typeString": "type(library MultiToken)"
                              }
                            },
                            "id": 63794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14572:5:87",
                            "memberName": "ERC20",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 85,
                            "src": "14561:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$returns$_t_struct$_Asset_$60_memory_ptr_$",
                              "typeString": "function (address,uint256) pure returns (struct MultiToken.Asset memory)"
                            }
                          },
                          "id": 63798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "14596:12:87",
                            "14650:6:87"
                          ],
                          "names": [
                            "assetAddress",
                            "amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "14561:124:87",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 63799,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63648,
                            "src": "14720:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63800,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14729:19:87",
                          "memberName": "fixedInterestAmount",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63327,
                          "src": "14720:28:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "expression": {
                            "id": 63801,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 63648,
                            "src": "14783:8:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                              "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                            }
                          },
                          "id": 63802,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14792:19:87",
                          "memberName": "accruingInterestAPR",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 63329,
                          "src": "14783:28:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        {
                          "condition": {
                            "expression": {
                              "id": 63803,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14841:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63804,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14850:7:87",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63343,
                            "src": "14841:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 63809,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14896:1:87",
                                "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": 63808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14888:7:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 63807,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "14888:7:87",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 63810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14888:10:87",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "id": 63811,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "14841:57:87",
                          "trueExpression": {
                            "expression": {
                              "id": 63805,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14860:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63806,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14869:16:87",
                            "memberName": "proposerSpecHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63341,
                            "src": "14860:25:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "condition": {
                            "expression": {
                              "id": 63812,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14930:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63813,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14939:7:87",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63343,
                            "src": "14930:16:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "expression": {
                              "id": 63818,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 63648,
                              "src": "14962:8:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$63352_memory_ptr",
                                "typeString": "struct PWNSimpleLoanDutchAuctionProposal.Proposal memory"
                              }
                            },
                            "id": 63819,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14971:16:87",
                            "memberName": "proposerSpecHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 63341,
                            "src": "14962:25:87",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "id": 63820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "14930:57:87",
                          "trueExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 63816,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "14957:1:87",
                                "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": 63815,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14949:7:87",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 63814,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "14949:7:87",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 63817,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14949:10:87",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 63766,
                          "name": "PWNSimpleLoan",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63281,
                          "src": "14073:13:87",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_PWNSimpleLoan_$63281_$",
                            "typeString": "type(contract PWNSimpleLoan)"
                          }
                        },
                        "id": 63767,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14087:5:87",
                        "memberName": "Terms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 61054,
                        "src": "14073:19:87",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Terms_$61054_storage_ptr_$",
                          "typeString": "type(struct PWNSimpleLoan.Terms storage pointer)"
                        }
                      },
                      "id": 63821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "14107:6:87",
                        "14176:8:87",
                        "14247:8:87",
                        "14288:10:87",
                        "14553:6:87",
                        "14699:19:87",
                        "14762:19:87",
                        "14825:14:87",
                        "14912:16:87"
                      ],
                      "names": [
                        "lender",
                        "borrower",
                        "duration",
                        "collateral",
                        "credit",
                        "fixedInterestAmount",
                        "accruingInterestAPR",
                        "lenderSpecHash",
                        "borrowerSpecHash"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "14073:925:87",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                        "typeString": "struct PWNSimpleLoan.Terms memory"
                      }
                    },
                    "src": "14061:937:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                      "typeString": "struct PWNSimpleLoan.Terms memory"
                    }
                  },
                  "id": 63823,
                  "nodeType": "ExpressionStatement",
                  "src": "14061:937:87"
                }
              ]
            },
            "baseFunctions": [
              64846
            ],
            "documentation": {
              "id": 63626,
              "nodeType": "StructuredDocumentation",
              "src": "11173:52:87",
              "text": " @inheritdoc PWNSimpleLoanProposal"
            },
            "functionSelector": "01e83272",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptProposal",
            "nameLocation": "11239:14:87",
            "overrides": {
              "id": 63639,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11443:8:87"
            },
            "parameters": {
              "id": 63638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63628,
                  "mutability": "mutable",
                  "name": "acceptor",
                  "nameLocation": "11271:8:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11263:16:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 63627,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11263:7:87",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63630,
                  "mutability": "mutable",
                  "name": "refinancingLoanId",
                  "nameLocation": "11297:17:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11289:25:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63629,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11289:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63632,
                  "mutability": "mutable",
                  "name": "proposalData",
                  "nameLocation": "11339:12:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11324:27:87",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 63631,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "11324:5:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63635,
                  "mutability": "mutable",
                  "name": "proposalInclusionProof",
                  "nameLocation": "11380:22:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11361:41:87",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 63633,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11361:7:87",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 63634,
                    "nodeType": "ArrayTypeName",
                    "src": "11361:9:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63637,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "11427:9:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11412:24:87",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 63636,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "11412:5:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11253:189:87"
            },
            "returnParameters": {
              "id": 63645,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63641,
                  "mutability": "mutable",
                  "name": "proposalHash",
                  "nameLocation": "11478:12:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11470:20:87",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 63640,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11470:7:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 63644,
                  "mutability": "mutable",
                  "name": "loanTerms",
                  "nameLocation": "11519:9:87",
                  "nodeType": "VariableDeclaration",
                  "scope": 63825,
                  "src": "11492:36:87",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                    "typeString": "struct PWNSimpleLoan.Terms"
                  },
                  "typeName": {
                    "id": 63643,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 63642,
                      "name": "PWNSimpleLoan.Terms",
                      "nameLocations": [
                        "11492:13:87",
                        "11506:5:87"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 61054,
                      "src": "11492:19:87"
                    },
                    "referencedDeclaration": 61054,
                    "src": "11492:19:87",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Terms_$61054_storage_ptr",
                      "typeString": "struct PWNSimpleLoan.Terms"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11469:60:87"
            },
            "scope": 63826,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 63294,
              "name": "PWNSimpleLoanProposal",
              "nameLocations": [
                "548:21:87"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 65236,
              "src": "548:21:87"
            },
            "id": 63295,
            "nodeType": "InheritanceSpecifier",
            "src": "548:21:87"
          }
        ],
        "canonicalName": "PWNSimpleLoanDutchAuctionProposal",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 63293,
          "nodeType": "StructuredDocumentation",
          "src": "368:133:87",
          "text": " @title PWN Simple Loan Dutch Auction Proposal\n @notice Contract for creating and accepting dutch auction loan proposals."
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          63826,
          65236
        ],
        "name": "PWNSimpleLoanDutchAuctionProposal",
        "nameLocation": "511:33:87",
        "scope": 63827,
        "usedErrors": [
          59971,
          59984,
          60778,
          60785,
          63374,
          63379,
          63386,
          63395,
          63402,
          64666,
          64669,
          64676,
          64681,
          64686,
          64691,
          64698,
          64705,
          66360
        ]
      }
    ],
    "license": "GPL-3.0-only"
  },
  "id": 87
}