{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_InsufficientFunds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_UnauthorizedModule",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_UnauthorizedUser",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_AlreadyClaimed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_AlreadySettled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_InsufficientFunds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_NoEscalationResult",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "_forVotesWon",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_winningPledgersLength",
          "type": "uint256"
        }
      ],
      "name": "BondEscalationSettled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Bonded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_depositor",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Deposited",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "EscalationRewardClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_payer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Paid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "PledgeReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Pledged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Released",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address[]",
          "name": "_winningPledgers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        }
      ],
      "name": "WinningPledgersPaid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_withdrawer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Withdrew",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ORACLE",
      "outputs": [
        {
          "internalType": "contract IOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_module",
          "type": "address"
        }
      ],
      "name": "approveModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        }
      ],
      "name": "bond",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "bond",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "bondedAmountOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        }
      ],
      "name": "claimEscalationReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "escalationResults",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "forVotesWon",
          "type": "bool"
        },
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountPerPledger",
          "type": "uint256"
        },
        {
          "internalType": "contract IBondEscalationModule",
          "name": "bondEscalationModule",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "_forVotesWon",
          "type": "bool"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_winningPledgersLength",
          "type": "uint256"
        }
      ],
      "name": "onSettleBondEscalation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_payer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_receiver",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "pay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "pledge",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        }
      ],
      "name": "pledgerClaimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "pledges",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "releasePledge",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_module",
          "type": "address"
        }
      ],
      "name": "revokeModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "userApprovedModules",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "_approvedModules",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60a06040523480156200001157600080fd5b50604051620028b1380380620028b1833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516127c9620000e860003960008181610219015281816104420152818161062c015281816108940152818161098001528181610f4801528181611034015281816112210152818161130d0152818161153b015281816116270152818161170b015261191a01526127c96000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80639043e2a0116100cd578063c0c1b54e11610081578063e517a1f711610066578063e517a1f7146103a0578063f3fef3a3146103b3578063f7888aec146103c657600080fd5b8063c0c1b54e1461034f578063cab0e4181461038d57600080fd5b8063a69748b8116100b2578063a69748b814610316578063a6d09dc814610329578063bba9f26f1461033c57600080fd5b80639043e2a0146102e357806396fa9e10146102f657600080fd5b806338013f02116101245780633edfa75d116101095780633edfa75d1461029257806347e7ef24146102bd5780634aa90d16146102d057600080fd5b806338013f02146102145780633c802fc51461025357600080fd5b806317825ef3146101565780631cc41fe81461016b57806322cfb00a146101ee5780632c61d33c14610201575b600080fd5b6101696101643660046122d6565b6103ee565b005b6101b56101793660046122f3565b6004602052600090815260409020805460018201546002830154600390930154919260ff8216926001600160a01b036101009093048316921685565b6040805195865293151560208601526001600160a01b0392831693850193909352606084015216608082015260a0015b60405180910390f35b6101696101fc36600461230c565b61040b565b61016961020f36600461235e565b6105f5565b61023b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e5565b61028461026136600461239f565b600160209081526000938452604080852082529284528284209052825290205481565b6040519081526020016101e5565b6102846102a03660046123e0565b600360209081526000928352604080842090915290825290205481565b6101696102cb366004612410565b6107ce565b6101696102de36600461243c565b61085d565b6101696102f13660046123e0565b610bad565b6103096103043660046122d6565b610ece565b6040516101e5919061249b565b6101696103243660046122d6565b610ef8565b6101696103373660046124e8565b610f11565b61016961034a3660046124e8565b6111ea565b61037d61035d3660046123e0565b600560209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101e5565b61016961039b366004612530565b611504565b6101696103ae366004612578565b6118e3565b6101696103c1366004612410565b611bcd565b6102846103d43660046125d4565b600060208181529281526040808220909352908152205481565b3360009081526002602052604090206104079082611ca1565b5050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810186905233602482015285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015610491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b59190612602565b6104eb576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008581526003602090815260408083206001600160a01b0387168452909152902054821115610547576040517f095508b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038085166000908152602081815260408083209387168352929052908120805484929061057c90849061264e565b909155505060008581526003602090815260408083206001600160a01b038781168086529184529382902080548790039055815190815291820185905291861691879189917fff8bcc5a5250aedfa702052d8bd42c02522c29c23e40768a188ece4b80edde1891015b60405180910390a4505050505050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810185905233602482015284907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190612602565b6106d5576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380871660009081526020818152604080832093871683529290522054821115610732576040517f095508b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526003602090815260408083206001600160a01b03871684529091528120805484929061076490849061264e565b90915550506001600160a01b0386811660008181526020818152604080832094881680845294825291829020805487900390558151938452830185905286928892917f4c8f840b3ec2b142fa4baaaed97faac887353d053a8fc669e76eddbdb829da1c91016105e5565b6107e36001600160a01b038316333084611cbd565b336000908152602081815260408083206001600160a01b03861684529091528120805483929061081490849061264e565b90915550506040518181526001600160a01b0383169033907f8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a79060200160405180910390a35050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810185905233602482015284907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190612602565b61093d576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038088166024830152869188917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190612602565b610a21576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0388166000908152600260205260409020610a439033611d92565b80610a6b57506001600160a01b0388166000908152600260205260409020610a6b9085611d92565b610aa1576040517f8588eb2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808916600090815260208181526040808320938a1683529290522054851115610afe576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038089166000908152600160209081526040808320938a1683529281528282208a835290529081208054879290610b3d90849061264e565b90915550506001600160a01b03888116600081815260208181526040808320948b168084529482529182902080548a9003905590518881528a917f46f04ddc1effd1becc7cb7611a7fd2f9b672b1f0ab34ad69a51023d1abe9e5c191015b60405180910390a45050505050505050565b600082815260046020908152604091829020825160a08101845281548152600182015460ff81161515938201939093526101009092046001600160a01b039081169383018490526002820154606084015260039091015416608082015290610c41576040517fe53ac08400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160008181526005602090815260408083206001600160a01b038716845290915290205460ff1615610ca0576040517f4f4833b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608201516020830151600090610d465760808401516040517fef940cef000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b0387811660248301529091169063ef940cef90604401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d419190612661565b610dd6565b60808401516040517f076404dc000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b0387811660248301529091169063076404dc90604401602060405180830381865afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd69190612661565b60408501519091506000610dea838561267a565b60008681526005602090815260408083206001600160a01b03808d16855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558383528184209087168452909152812080549293508392909190610e5c90849061264e565b909155505060008881526003602090815260408083206001600160a01b03868116855290835292819020805485900390558881015181519084168152918201849052918916918a9188917fa649187f7aba939a5d7af6bf0e38231ef4425ddd00674f16437e959d20e4c1599101610b9b565b6001600160a01b0381166000908152600260205260409020606090610ef290611db4565b92915050565b3360009081526002602052604090206104079082611dc1565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810184905233602482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015610f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbb9190612602565b610ff1576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038087166024830152859187917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa15801561107b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109f9190612602565b6110d5576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808816600090815260016020908152604080832093891683529281528282208983529052205484111561113c576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038088166000908152602081815260408083209389168352929052908120805486929061117190849061264e565b90915550506001600160a01b038781166000818152600160209081526040808320948a168084529482528083208b845282529182902080548990039055905187815289917ff841af1340fe1d6814e6ec7893c8cc8939c12ee8d084afe073c5b10dc8fc794c91015b60405180910390a450505050505050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810184905233602482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015611270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112949190612602565b6112ca576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038087166024830152859187917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa158015611354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113789190612602565b6113ae576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03871660009081526002602052604090206113d09033611d92565b611406576040517f8588eb2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380881660009081526020818152604080832093891683529290522054841115611463576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380881660009081526001602090815260408083209389168352928152828220898352905290812080548692906114a290849061264e565b90915550506001600160a01b03878116600081815260208181526040808320948a168084529482529182902080548990039055905187815289917f46f04ddc1effd1becc7cb7611a7fd2f9b672b1f0ab34ad69a51023d1abe9e5c191016111d9565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810186905233602482015285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa15801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae9190612602565b6115e4576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038087166024830152879187917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa15801561166e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116929190612602565b6116c8576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018990526001600160a01b038088166024830152899188917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612602565b6117ac576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808a166000908152600160209081526040808320938b1683529281528282208d835290522054861115611813576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808916600090815260208181526040808320938b168352929052908120805488929061184890849061264e565b90915550506001600160a01b03808a1660008181526001602090815260408083208c8616845282528083208f84529091529081902080548a900390555190918a16908c907f060bb954af967ecb7aa08a0072a7f8fe308ceee2f5d15f4a9d4a5275a5fe79e9906118cf908c908c906001600160a01b03929092168252602082015260400190565b60405180910390a450505050505050505050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810187905233602482015286907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198d9190612602565b6119c3576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119cd828461267a565b60008781526003602090815260408083206001600160a01b03891684529091529020541015611a28576040517f095508b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008681526004602052604090205415611a6e576040517ffc11ecc300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825288815286151560208083019182526001600160a01b0380891684860190815260608501898152336080870190815260008e815260049095529387902095518655935160018601805492518416610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff921515929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217179055915160028401555160039092018054929091167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055517fea51f708b47296ee0e761d2fb5a34e84aa06342ab1da722fc9c7e827cf3a0ee990611bbc90899089908990899089908990958652602086019490945291151560408501526001600160a01b03166060840152608083015260a082015260c00190565b60405180910390a150505050505050565b336000908152602081815260408083206001600160a01b038616845290915290205481811015611c29576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152602081815260408083206001600160a01b038816808552925290912080548590039055611c5c9184611dd6565b6040518281526001600160a01b0384169033907f0472be967f9a37138dfea1875af44784cafb79f92044ab33d7d6958eddd9ca6c9060200160405180910390a3505050565b6000611cb6836001600160a01b038416611e24565b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611d8c9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e73565b50505050565b6001600160a01b03811660009081526001830160205260408120541515611cb6565b60606000611cb683611f7a565b6000611cb6836001600160a01b038416611fd6565b6040516001600160a01b038316602482015260448101829052611e1f9084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611d0a565b505050565b6000818152600183016020526040812054611e6b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ef2565b506000610ef2565b6000611ec8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120c99092919063ffffffff16565b9050805160001480611ee9575080806020019051810190611ee99190612602565b611e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b606081600001805480602002602001604051908101604052809291908181526020018280548015611fca57602002820191906000526020600020905b815481526020019060010190808311611fb6575b50505050509050919050565b600081815260018301602052604081205480156120bf576000611ffa600183612691565b855490915060009061200e90600190612691565b905081811461207357600086600001828154811061202e5761202e6126a4565b9060005260206000200154905080876000018481548110612051576120516126a4565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612084576120846126d3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610ef2565b6000915050610ef2565b60606120d884846000856120e0565b949350505050565b606082471015612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401611f71565b600080866001600160a01b0316858760405161218e9190612726565b60006040518083038185875af1925050503d80600081146121cb576040519150601f19603f3d011682016040523d82523d6000602084013e6121d0565b606091505b50915091506121e1878383876121ec565b979650505050505050565b6060831561227557825160000361226e576001600160a01b0385163b61226e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611f71565b50816120d8565b6120d8838381511561228a5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f719190612742565b6001600160a01b03811681146122d357600080fd5b50565b6000602082840312156122e857600080fd5b8135611cb6816122be565b60006020828403121561230557600080fd5b5035919050565b600080600080600060a0868803121561232457600080fd5b8535945060208601359350604086013561233d816122be565b9250606086013561234d816122be565b949793965091946080013592915050565b600080600080600060a0868803121561237657600080fd5b8535612381816122be565b94506020860135935060408601359250606086013561234d816122be565b6000806000606084860312156123b457600080fd5b83356123bf816122be565b925060208401356123cf816122be565b929592945050506040919091013590565b600080604083850312156123f357600080fd5b823591506020830135612405816122be565b809150509250929050565b6000806040838503121561242357600080fd5b823561242e816122be565b946020939093013593505050565b600080600080600060a0868803121561245457600080fd5b853561245f816122be565b9450602086013593506040860135612476816122be565b925060608601359150608086013561248d816122be565b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b818110156124dc5783516001600160a01b0316835292840192918401916001016124b7565b50909695505050505050565b600080600080608085870312156124fe57600080fd5b8435612509816122be565b9350602085013592506040850135612520816122be565b9396929550929360600135925050565b600080600080600060a0868803121561254857600080fd5b85359450602086013561255a816122be565b9350604086013561233d816122be565b80151581146122d357600080fd5b60008060008060008060c0878903121561259157600080fd5b863595506020870135945060408701356125aa8161256a565b935060608701356125ba816122be565b9598949750929560808101359460a0909101359350915050565b600080604083850312156125e757600080fd5b82356125f2816122be565b91506020830135612405816122be565b60006020828403121561261457600080fd5b8151611cb68161256a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ef257610ef261261f565b60006020828403121561267357600080fd5b5051919050565b8082028115828204841417610ef257610ef261261f565b81810381811115610ef257610ef261261f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b8381101561271d578181015183820152602001612705565b50506000910152565b60008251612738818460208701612702565b9190910192915050565b6020815260008251806020840152612761816040850160208701612702565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212205595f19012349d763ea8ccfc36543155ce05a71437dfdb08544ab2088896a85964736f6c63430008130033",
    "sourceMap": "501:4153:39:-:0;;;989:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1219:16:38;;;501:4153:39;;14:306:113;100:6;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;195:16;;-1:-1:-1;;;;;240:31:113;;230:42;;220:70;;286:1;283;276:12;220:70;309:5;14:306;-1:-1:-1;;;14:306:113:o;:::-;501:4153:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106101515760003560e01c80639043e2a0116100cd578063c0c1b54e11610081578063e517a1f711610066578063e517a1f7146103a0578063f3fef3a3146103b3578063f7888aec146103c657600080fd5b8063c0c1b54e1461034f578063cab0e4181461038d57600080fd5b8063a69748b8116100b2578063a69748b814610316578063a6d09dc814610329578063bba9f26f1461033c57600080fd5b80639043e2a0146102e357806396fa9e10146102f657600080fd5b806338013f02116101245780633edfa75d116101095780633edfa75d1461029257806347e7ef24146102bd5780634aa90d16146102d057600080fd5b806338013f02146102145780633c802fc51461025357600080fd5b806317825ef3146101565780631cc41fe81461016b57806322cfb00a146101ee5780632c61d33c14610201575b600080fd5b6101696101643660046122d6565b6103ee565b005b6101b56101793660046122f3565b6004602052600090815260409020805460018201546002830154600390930154919260ff8216926001600160a01b036101009093048316921685565b6040805195865293151560208601526001600160a01b0392831693850193909352606084015216608082015260a0015b60405180910390f35b6101696101fc36600461230c565b61040b565b61016961020f36600461235e565b6105f5565b61023b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e5565b61028461026136600461239f565b600160209081526000938452604080852082529284528284209052825290205481565b6040519081526020016101e5565b6102846102a03660046123e0565b600360209081526000928352604080842090915290825290205481565b6101696102cb366004612410565b6107ce565b6101696102de36600461243c565b61085d565b6101696102f13660046123e0565b610bad565b6103096103043660046122d6565b610ece565b6040516101e5919061249b565b6101696103243660046122d6565b610ef8565b6101696103373660046124e8565b610f11565b61016961034a3660046124e8565b6111ea565b61037d61035d3660046123e0565b600560209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101e5565b61016961039b366004612530565b611504565b6101696103ae366004612578565b6118e3565b6101696103c1366004612410565b611bcd565b6102846103d43660046125d4565b600060208181529281526040808220909352908152205481565b3360009081526002602052604090206104079082611ca1565b5050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810186905233602482015285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015610491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b59190612602565b6104eb576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008581526003602090815260408083206001600160a01b0387168452909152902054821115610547576040517f095508b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038085166000908152602081815260408083209387168352929052908120805484929061057c90849061264e565b909155505060008581526003602090815260408083206001600160a01b038781168086529184529382902080548790039055815190815291820185905291861691879189917fff8bcc5a5250aedfa702052d8bd42c02522c29c23e40768a188ece4b80edde1891015b60405180910390a4505050505050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810185905233602482015284907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190612602565b6106d5576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380871660009081526020818152604080832093871683529290522054821115610732576040517f095508b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526003602090815260408083206001600160a01b03871684529091528120805484929061076490849061264e565b90915550506001600160a01b0386811660008181526020818152604080832094881680845294825291829020805487900390558151938452830185905286928892917f4c8f840b3ec2b142fa4baaaed97faac887353d053a8fc669e76eddbdb829da1c91016105e5565b6107e36001600160a01b038316333084611cbd565b336000908152602081815260408083206001600160a01b03861684529091528120805483929061081490849061264e565b90915550506040518181526001600160a01b0383169033907f8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a79060200160405180910390a35050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810185905233602482015284907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190612602565b61093d576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038088166024830152869188917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190612602565b610a21576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0388166000908152600260205260409020610a439033611d92565b80610a6b57506001600160a01b0388166000908152600260205260409020610a6b9085611d92565b610aa1576040517f8588eb2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808916600090815260208181526040808320938a1683529290522054851115610afe576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038089166000908152600160209081526040808320938a1683529281528282208a835290529081208054879290610b3d90849061264e565b90915550506001600160a01b03888116600081815260208181526040808320948b168084529482529182902080548a9003905590518881528a917f46f04ddc1effd1becc7cb7611a7fd2f9b672b1f0ab34ad69a51023d1abe9e5c191015b60405180910390a45050505050505050565b600082815260046020908152604091829020825160a08101845281548152600182015460ff81161515938201939093526101009092046001600160a01b039081169383018490526002820154606084015260039091015416608082015290610c41576040517fe53ac08400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160008181526005602090815260408083206001600160a01b038716845290915290205460ff1615610ca0576040517f4f4833b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608201516020830151600090610d465760808401516040517fef940cef000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b0387811660248301529091169063ef940cef90604401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d419190612661565b610dd6565b60808401516040517f076404dc000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b0387811660248301529091169063076404dc90604401602060405180830381865afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd69190612661565b60408501519091506000610dea838561267a565b60008681526005602090815260408083206001600160a01b03808d16855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558383528184209087168452909152812080549293508392909190610e5c90849061264e565b909155505060008881526003602090815260408083206001600160a01b03868116855290835292819020805485900390558881015181519084168152918201849052918916918a9188917fa649187f7aba939a5d7af6bf0e38231ef4425ddd00674f16437e959d20e4c1599101610b9b565b6001600160a01b0381166000908152600260205260409020606090610ef290611db4565b92915050565b3360009081526002602052604090206104079082611dc1565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810184905233602482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015610f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbb9190612602565b610ff1576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038087166024830152859187917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa15801561107b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109f9190612602565b6110d5576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808816600090815260016020908152604080832093891683529281528282208983529052205484111561113c576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038088166000908152602081815260408083209389168352929052908120805486929061117190849061264e565b90915550506001600160a01b038781166000818152600160209081526040808320948a168084529482528083208b845282529182902080548990039055905187815289917ff841af1340fe1d6814e6ec7893c8cc8939c12ee8d084afe073c5b10dc8fc794c91015b60405180910390a450505050505050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810184905233602482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015611270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112949190612602565b6112ca576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038087166024830152859187917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa158015611354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113789190612602565b6113ae576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03871660009081526002602052604090206113d09033611d92565b611406576040517f8588eb2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380881660009081526020818152604080832093891683529290522054841115611463576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380881660009081526001602090815260408083209389168352928152828220898352905290812080548692906114a290849061264e565b90915550506001600160a01b03878116600081815260208181526040808320948a168084529482529182902080548990039055905187815289917f46f04ddc1effd1becc7cb7611a7fd2f9b672b1f0ab34ad69a51023d1abe9e5c191016111d9565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810186905233602482015285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa15801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae9190612602565b6115e4576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038087166024830152879187917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa15801561166e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116929190612602565b6116c8576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc44a8923000000000000000000000000000000000000000000000000000000008152600481018990526001600160a01b038088166024830152899188917f0000000000000000000000000000000000000000000000000000000000000000169063c44a892390604401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612602565b6117ac576040517f907c2e1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808a166000908152600160209081526040808320938b1683529281528282208d835290522054861115611813576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808916600090815260208181526040808320938b168352929052908120805488929061184890849061264e565b90915550506001600160a01b03808a1660008181526001602090815260408083208c8616845282528083208f84529091529081902080548a900390555190918a16908c907f060bb954af967ecb7aa08a0072a7f8fe308ceee2f5d15f4a9d4a5275a5fe79e9906118cf908c908c906001600160a01b03929092168252602082015260400190565b60405180910390a450505050505050505050565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810187905233602482015286907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4a41c4f90604401602060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198d9190612602565b6119c3576040517f9e6e201500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119cd828461267a565b60008781526003602090815260408083206001600160a01b03891684529091529020541015611a28576040517f095508b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008681526004602052604090205415611a6e576040517ffc11ecc300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825288815286151560208083019182526001600160a01b0380891684860190815260608501898152336080870190815260008e815260049095529387902095518655935160018601805492518416610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff921515929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217179055915160028401555160039092018054929091167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055517fea51f708b47296ee0e761d2fb5a34e84aa06342ab1da722fc9c7e827cf3a0ee990611bbc90899089908990899089908990958652602086019490945291151560408501526001600160a01b03166060840152608083015260a082015260c00190565b60405180910390a150505050505050565b336000908152602081815260408083206001600160a01b038616845290915290205481811015611c29576040517f81faf71500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152602081815260408083206001600160a01b038816808552925290912080548590039055611c5c9184611dd6565b6040518281526001600160a01b0384169033907f0472be967f9a37138dfea1875af44784cafb79f92044ab33d7d6958eddd9ca6c9060200160405180910390a3505050565b6000611cb6836001600160a01b038416611e24565b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611d8c9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e73565b50505050565b6001600160a01b03811660009081526001830160205260408120541515611cb6565b60606000611cb683611f7a565b6000611cb6836001600160a01b038416611fd6565b6040516001600160a01b038316602482015260448101829052611e1f9084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611d0a565b505050565b6000818152600183016020526040812054611e6b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ef2565b506000610ef2565b6000611ec8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120c99092919063ffffffff16565b9050805160001480611ee9575080806020019051810190611ee99190612602565b611e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b606081600001805480602002602001604051908101604052809291908181526020018280548015611fca57602002820191906000526020600020905b815481526020019060010190808311611fb6575b50505050509050919050565b600081815260018301602052604081205480156120bf576000611ffa600183612691565b855490915060009061200e90600190612691565b905081811461207357600086600001828154811061202e5761202e6126a4565b9060005260206000200154905080876000018481548110612051576120516126a4565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612084576120846126d3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610ef2565b6000915050610ef2565b60606120d884846000856120e0565b949350505050565b606082471015612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401611f71565b600080866001600160a01b0316858760405161218e9190612726565b60006040518083038185875af1925050503d80600081146121cb576040519150601f19603f3d011682016040523d82523d6000602084013e6121d0565b606091505b50915091506121e1878383876121ec565b979650505050505050565b6060831561227557825160000361226e576001600160a01b0385163b61226e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611f71565b50816120d8565b6120d8838381511561228a5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f719190612742565b6001600160a01b03811681146122d357600080fd5b50565b6000602082840312156122e857600080fd5b8135611cb6816122be565b60006020828403121561230557600080fd5b5035919050565b600080600080600060a0868803121561232457600080fd5b8535945060208601359350604086013561233d816122be565b9250606086013561234d816122be565b949793965091946080013592915050565b600080600080600060a0868803121561237657600080fd5b8535612381816122be565b94506020860135935060408601359250606086013561234d816122be565b6000806000606084860312156123b457600080fd5b83356123bf816122be565b925060208401356123cf816122be565b929592945050506040919091013590565b600080604083850312156123f357600080fd5b823591506020830135612405816122be565b809150509250929050565b6000806040838503121561242357600080fd5b823561242e816122be565b946020939093013593505050565b600080600080600060a0868803121561245457600080fd5b853561245f816122be565b9450602086013593506040860135612476816122be565b925060608601359150608086013561248d816122be565b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b818110156124dc5783516001600160a01b0316835292840192918401916001016124b7565b50909695505050505050565b600080600080608085870312156124fe57600080fd5b8435612509816122be565b9350602085013592506040850135612520816122be565b9396929550929360600135925050565b600080600080600060a0868803121561254857600080fd5b85359450602086013561255a816122be565b9350604086013561233d816122be565b80151581146122d357600080fd5b60008060008060008060c0878903121561259157600080fd5b863595506020870135945060408701356125aa8161256a565b935060608701356125ba816122be565b9598949750929560808101359460a0909101359350915050565b600080604083850312156125e757600080fd5b82356125f2816122be565b91506020830135612405816122be565b60006020828403121561261457600080fd5b8151611cb68161256a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ef257610ef261261f565b60006020828403121561267357600080fd5b5051919050565b8082028115828204841417610ef257610ef261261f565b81810381811115610ef257610ef261261f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b8381101561271d578181015183820152602001612705565b50506000910152565b60008251612738818460208701612702565b9190910192915050565b6020815260008251806020840152612761816040850160208701612702565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212205595f19012349d763ea8ccfc36543155ce05a71437dfdb08544ab2088896a85964736f6c63430008130033",
    "sourceMap": "501:4153:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4865:95:38;;;;;;:::i;:::-;;:::i;:::-;;769:80:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;769:80:39;;;;;;;;;;;;;;909:25:113;;;977:14;;970:22;965:2;950:18;;943:50;-1:-1:-1;;;;;1090:15:113;;;1070:18;;;1063:43;;;;1137:2;1122:18;;1115:34;1186:15;1180:3;1165:19;;1158:44;896:3;881:19;769:80:39;;;;;;;;4091:561;;;;;;:::i;:::-;;:::i;1097:613::-;;;;;;:::i;:::-;;:::i;668:31:38:-;;;;;;;;-1:-1:-1;;;;;2621:55:113;;;2603:74;;2591:2;2576:18;668:31:38;2441:242:113;874:126:38;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3310:25:113;;;3298:2;3283:18;874:126:38;3164:177:113;633:87:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1713:223:38;;;;;;:::i;:::-;;:::i;3650:644::-;;;;;;:::i;:::-;;:::i;2922:1121:39:-;;;;;;:::i;:::-;;:::i;5143:158:38:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5003:97::-;;;;;;:::i;:::-;;:::i;4337:485::-;;;;;;:::i;:::-;;:::i;3041:566::-;;;;;;:::i;:::-;;:::i;898:86:39:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6419:14:113;;6412:22;6394:41;;6382:2;6367:18;898:86:39;6254:187:113;2384:614:38;;;;;;:::i;:::-;;:::i;1758:1116:39:-;;;;;;:::i;:::-;;:::i;1979:362:38:-;;;;;;:::i;:::-;;:::i;743:87::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4865:95;4931:10;4920:22;;;;:10;:22;;;;;:35;;4947:7;4920:26;:35::i;:::-;;4865:95;:::o;4091:561:39:-;1392:44:38;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;4255:10:39;;1392:6:38;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;4277:19:39::1;::::0;;;:7:::1;:19;::::0;;;;;;;-1:-1:-1;;;;;4277:27:39;::::1;::::0;;;;;;;;:37;-1:-1:-1;4273:94:39::1;;;4323:44;;;;;;;;;;;;;;4273:94;-1:-1:-1::0;;;;;4374:19:39;;::::1;:9;:19:::0;;;::::1;::::0;;;;;;;:27;;::::1;::::0;;;;;;;;:38;;4405:7;;4374:9;:38:::1;::::0;4405:7;;4374:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;4437:19:39::1;::::0;;;:7:::1;:19;::::0;;;;;;;-1:-1:-1;;;;;4437:27:39;;::::1;::::0;;;;;;;;;;:38;;;;::::1;::::0;;4493:154;;9401:74:113;;;9491:18;;;9484:34;;;4493:154:39;;::::1;::::0;4437:19;;4528:10;;4493:154:::1;::::0;9374:18:113;4493:154:39::1;;;;;;;;4091:561:::0;;;;;;:::o;1097:613::-;1392:44:38;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;1356:10:39;;1392:6:38;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;-1:-1:-1;;;;;1378:19:39;;::::1;:9;:19:::0;;;::::1;::::0;;;;;;;:27;;::::1;::::0;;;;;;;:37;-1:-1:-1;1374:94:39::1;;;1424:44;;;;;;;;;;;;;;1374:94;1475:19;::::0;;;:7:::1;:19;::::0;;;;;;;-1:-1:-1;;;;;1475:27:39;::::1;::::0;;;;;;;:38;;1506:7;;1475:19;:38:::1;::::0;1506:7;;1475:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;1538:19:39;;::::1;:9;:19:::0;;;::::1;::::0;;;;;;;:27;;::::1;::::0;;;;;;;;;;:38;;;;::::1;::::0;;1594:111;;9401:74:113;;;9491:18;;9484:34;;;1659:10:39;;1635;;1538:19;1594:111:::1;::::0;9374:18:113;1594:111:39::1;9212:312:113::0;1713:223:38;1777:59;-1:-1:-1;;;;;1777:23:38;;1801:10;1821:4;1828:7;1777:23;:59::i;:::-;1852:10;1842:9;:21;;;;;;;;;;;-1:-1:-1;;;;;1842:29:38;;;;;;;;;:40;;1875:7;;1842:9;:40;;1875:7;;1842:40;:::i;:::-;;;;-1:-1:-1;;1893:38:38;;3310:25:113;;;-1:-1:-1;;;;;1893:38:38;;;1903:10;;1893:38;;3298:2:113;3283:18;1893:38:38;;;;;;;1713:223;;:::o;3650:644::-;1392:44;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;3801:10:38;;1392:6;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;1572:39:::1;::::0;;;;::::1;::::0;::::1;8515:25:113::0;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;3829:10:38;;3841:7;;1572:6:::1;:20;::::0;::::1;::::0;8488:18:113;;1572:39:38::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1567:91;;1620:38;;;;;;;;;;;;;;1567:91;-1:-1:-1::0;;;;;3862:19:38;::::2;;::::0;;;:10:::2;:19;::::0;;;;:40:::2;::::0;3891:10:::2;3862:28;:40::i;:::-;:81;;;-1:-1:-1::0;;;;;;3906:19:38;::::2;;::::0;;;:10:::2;:19;::::0;;;;:37:::2;::::0;3935:7;3906:28:::2;:37::i;:::-;3856:155;;3961:43;;;;;;;;;;;;;;3856:155;-1:-1:-1::0;;;;;4020:18:38;;::::2;:9;:18:::0;;;::::2;::::0;;;;;;;:26;;::::2;::::0;;;;;;;:36;-1:-1:-1;4016:88:38::2;;;4065:39;;;;;;;;;;;;;;4016:88;-1:-1:-1::0;;;;;4111:23:38;;::::2;;::::0;;;:14:::2;:23;::::0;;;;;;;:31;;::::2;::::0;;;;;;;;:43;;;;;;;;:54;;4158:7;;4111:23;:54:::2;::::0;4158:7;;4111:54:::2;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4190:18:38;;::::2;:9;:18:::0;;;::::2;::::0;;;;;;;:26;;::::2;::::0;;;;;;;;;;:37;;;;::::2;::::0;;4245:44;;3310:25:113;;;4252:10:38;;4245:44:::2;::::0;3283:18:113;4245:44:38::2;;;;;;;;1491:1:::1;;3650:644:::0;;;;;;:::o;2922:1121:39:-;3006:31;3040:29;;;:17;:29;;;;;;;;;3006:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3006:63:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;3075:93;;3123:45;;;;;;;;;;;;;;3075:93;3195:17;;3174:18;3222:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;3222:36:39;;;;;;;;;;;;3218:90;;;3267:41;;;;;;;;;;;;;;3218:90;3343:24;;;;3400:19;;;;3315:25;;3400:177;;3505:28;;;;:72;;;;;;;;8515:25:113;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;3505:50:39;;;;;;8488:18:113;;3505:72:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3400:177;;;3428:28;;;;:68;;;;;;;;8515:25:113;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;3428:46:39;;;;;;8488:18:113;;3428:68:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3600:13;;;;3373:204;;-1:-1:-1;3584:13:39;3642:36;3373:204;3642:17;:36;:::i;:::-;3685:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;3685:36:39;;;;;;;;;;;:43;;;;3724:4;3685:43;;;3734:19;;;;;;:27;;;;;;;;;;:43;;3619:59;;-1:-1:-1;3619:59:39;;3734:27;;3685:26;3734:43;;3619:59;;3734:43;:::i;:::-;;;;-1:-1:-1;;3802:19:39;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3802:27:39;;;;;;;;;;;;:43;;;;;;;3989:13;;;;3863:175;;9419:55:113;;;9401:74;;9491:18;;;9484:34;;;3863:175:39;;;;3802:19;;3907:10;;3863:175;;9374:18:113;3863:175:39;9212:312:113;5143:158:38;-1:-1:-1;;;;;5270:17:38;;;;;;:10;:17;;;;;5210:33;;5270:26;;:24;:26::i;:::-;5251:45;5143:158;-1:-1:-1;;5143:158:38:o;5003:97::-;5068:10;5057:22;;;;:10;:22;;;;;:38;;5087:7;5057:29;:38::i;4337:485::-;1392:44;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;4470:10:38;;1392:6;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;1572:39:::1;::::0;;;;::::1;::::0;::::1;8515:25:113::0;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;4498:10:38;;4510:7;;1572:6:::1;:20;::::0;::::1;::::0;8488:18:113;;1572:39:38::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1567:91;;1620:38;;;;;;;;;;;;;;1567:91;-1:-1:-1::0;;;;;4529:23:38;;::::2;;::::0;;;:14:::2;:23;::::0;;;;;;;:31;;::::2;::::0;;;;;;;;:43;;;;;;;:53;-1:-1:-1;4525:105:38::2;;;4591:39;;;;;;;;;;;;;;4525:105;-1:-1:-1::0;;;;;4637:18:38;;::::2;:9;:18:::0;;;::::2;::::0;;;;;;;:26;;::::2;::::0;;;;;;;;:37;;4667:7;;4637:9;:37:::2;::::0;4667:7;;4637:37:::2;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4699:23:38;;::::2;;::::0;;;:14:::2;:23;::::0;;;;;;;:31;;::::2;::::0;;;;;;;;;:43;;;;;;;;;:54;;;;::::2;::::0;;4771:46;;3310:25:113;;;4699:43:38;;4771:46:::2;::::0;3283:18:113;4771:46:38::2;;;;;;;;1491:1:::1;;4337:485:::0;;;;;:::o;3041:566::-;1392:44;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;3171:10:38;;1392:6;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;1572:39:::1;::::0;;;;::::1;::::0;::::1;8515:25:113::0;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;3199:10:38;;3211:7;;1572:6:::1;:20;::::0;::::1;::::0;8488:18:113;;1572:39:38::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1567:91;;1620:38;;;;;;;;;;;;;;1567:91;-1:-1:-1::0;;;;;3231:19:38;::::2;;::::0;;;:10:::2;:19;::::0;;;;:40:::2;::::0;3260:10:::2;3231:28;:40::i;:::-;3226:97;;3280:43;;;;;;;;;;;;;;3226:97;-1:-1:-1::0;;;;;3333:18:38;;::::2;:9;:18:::0;;;::::2;::::0;;;;;;;:26;;::::2;::::0;;;;;;;:36;-1:-1:-1;3329:88:38::2;;;3378:39;;;;;;;;;;;;;;3329:88;-1:-1:-1::0;;;;;3424:23:38;;::::2;;::::0;;;:14:::2;:23;::::0;;;;;;;:31;;::::2;::::0;;;;;;;;:43;;;;;;;;:54;;3471:7;;3424:23;:54:::2;::::0;3471:7;;3424:54:::2;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;3503:18:38;;::::2;:9;:18:::0;;;::::2;::::0;;;;;;;:26;;::::2;::::0;;;;;;;;;;:37;;;;::::2;::::0;;3558:44;;3310:25:113;;;3565:10:38;;3558:44:::2;::::0;3283:18:113;3558:44:38::2;3164:177:113::0;2384:614:38;1392:44;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;2535:10:38;;1392:6;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;1572:39:::1;::::0;;;;::::1;::::0;::::1;8515:25:113::0;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;2563:10:38;;2575:6;;1572::::1;:20;::::0;::::1;::::0;8488:18:113;;1572:39:38::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1567:91;;1620:38;;;;;;;;;;;;;;1567:91;1572:39:::2;::::0;;;;::::2;::::0;::::2;8515:25:113::0;;;-1:-1:-1;;;;;8576:55:113;;;8556:18;;;8549:83;2599:10:38;;2611:9;;1572:6:::2;:20;::::0;::::2;::::0;8488:18:113;;1572:39:38::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1567:91;;1620:38;;;;;;;;;;;;;;1567:91;-1:-1:-1::0;;;;;2632:22:38;;::::3;;::::0;;;:14:::3;:22;::::0;;;;;;;:30;;::::3;::::0;;;;;;;;:42;;;;;;;:52;-1:-1:-1;2628:119:38::3;;;2701:39;;;;;;;;;;;;;;2628:119;-1:-1:-1::0;;;;;2753:20:38;;::::3;:9;:20:::0;;;::::3;::::0;;;;;;;:28;;::::3;::::0;;;;;;;;:39;;2785:7;;2753:9;:39:::3;::::0;2785:7;;2753:39:::3;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;2817:22:38;;::::3;;::::0;;;:14:::3;:22;::::0;;;;;;;:30;;::::3;::::0;;;;;;;:42;;;;;;;;;;:53;;;;::::3;::::0;;2888:105;2817:22;;2888:105;::::3;::::0;2848:10;;2888:105:::3;::::0;::::3;::::0;2840:6;;2863:7;;-1:-1:-1;;;;;9419:55:113;;;;9401:74;;9506:2;9491:18;;9484:34;9389:2;9374:18;;9212:312;2888:105:38::3;;;;;;;;1664:1:::2;;1491::::1;;2384:614:::0;;;;;;:::o;1758:1116:39:-;1392:44:38;;;;;;;;8515:25:113;;;1425:10:38;8556:18:113;;;8549:83;1978:10:39;;1392:6:38;-1:-1:-1;;;;;1392:20:38;;;;8488:18:113;;1392:44:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1387:98;;1445:40;;;;;;;;;;;;;;1387:98;2125:42:39::1;2145:22:::0;2125:17;:42:::1;:::i;:::-;2095:19;::::0;;;:7:::1;:19;::::0;;;;;;;-1:-1:-1;;;;;2095:27:39;::::1;::::0;;;;;;;;:72:::1;2091:144;;;2184:44;;;;;;;;;;;;;;2091:144;2296:1;2245:29:::0;;;:17:::1;:29;::::0;;;;:39;:53;2241:122:::1;;2315:41;;;;;;;;;;;;;;2241:122;2401:213;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;::::0;;::::1;::::0;;;-1:-1:-1;;;;;2401:213:39;;::::1;::::0;;;;;;;;;;;;2596:10:::1;2401:213:::0;;;;;;-1:-1:-1;2369:29:39;;;:17:::1;:29:::0;;;;;;;:245;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;;;::::0;;::::1;;::::0;;;;;;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;2626:243;::::1;::::0;::::1;::::0;2437:10;;2387;;2468:12;;2495:6;;2527:17;;2840:22;;10187:25:113;;;10243:2;10228:18;;10221:34;;;;10298:14;;10291:22;10286:2;10271:18;;10264:50;-1:-1:-1;;;;;10350:55:113;10345:2;10330:18;;10323:83;10437:3;10422:19;;10415:35;10481:3;10466:19;;10459:35;10174:3;10159:19;;9891:609;2626:243:39::1;;;;;;;;1758:1116:::0;;;;;;;:::o;1979:362:38:-;2073:10;2044:16;2063:21;;;;;;;;;;;-1:-1:-1;;;;;2063:29:38;;;;;;;;;;2103:18;;;2099:70;;;2130:39;;;;;;;;;;;;;;2099:70;2204:10;2194:9;:21;;;;;;;;;;;-1:-1:-1;;;;;2194:29:38;;;;;;;;;;:40;;;;;;;2247;;2227:7;2247:19;:40::i;:::-;2299:37;;3310:25:113;;;-1:-1:-1;;;;;2299:37:38;;;2308:10;;2299:37;;3298:2:113;3283:18;2299:37:38;;;;;;;2038:303;1979:362;;:::o;8305:150:18:-;8375:4;8398:50;8403:3;-1:-1:-1;;;;;8423:23:18;;8398:4;:50::i;:::-;8391:57;8305:150;-1:-1:-1;;;8305:150:18:o;1355:203:13:-;1482:68;;-1:-1:-1;;;;;10786:15:113;;;1482:68:13;;;10768:34:113;10838:15;;10818:18;;;10811:43;10870:18;;;10863:34;;;1455:96:13;;1475:5;;1505:27;;10680:18:113;;1482:68:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:19;:96::i;:::-;1355:203;;;;:::o;8860:165:18:-;-1:-1:-1;;;;;8993:23:18;;8940:4;4351:19;;;:12;;;:19;;;;;;:24;;8963:55;4255:127;10259:300;10322:16;10350:22;10375:19;10383:3;10375:7;:19::i;8623:156::-;8696:4;8719:53;8727:3;-1:-1:-1;;;;;8747:23:18;;8719:7;:53::i;941:175:13:-;1050:58;;-1:-1:-1;;;;;9419:55:113;;1050:58:13;;;9401:74:113;9491:18;;;9484:34;;;1023:86:13;;1043:5;;1073:23;;9374:18:113;;1050:58:13;9212:312:113;1023:86:13;941:175;;;:::o;2214:404:18:-;2277:4;4351:19;;;:12;;;:19;;;;;;2293:319;;-1:-1:-1;2335:23:18;;;;;;;;:11;:23;;;;;;;;;;;;;2515:18;;2493:19;;;:12;;;:19;;;;;;:40;;;;2547:11;;2293:319;-1:-1:-1;2596:5:18;2589:12;;5196:642:13;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:13;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;;;;11412:2:113;5720:111:13;;;11394:21:113;11451:2;11431:18;;;11424:30;11490:34;11470:18;;;11463:62;11561:12;11541:18;;;11534:40;11591:19;;5720:111:13;;;;;;;;5570:109:18;5626:16;5661:3;:11;;5654:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5570:109;;;:::o;2786:1388::-;2852:4;2989:19;;;:12;;;:19;;;;;;3023:15;;3019:1149;;3392:21;3416:14;3429:1;3416:10;:14;:::i;:::-;3464:18;;3392:38;;-1:-1:-1;3444:17:18;;3464:22;;3485:1;;3464:22;:::i;:::-;3444:42;;3518:13;3505:9;:26;3501:398;;3551:17;3571:3;:11;;3583:9;3571:22;;;;;;;;:::i;:::-;;;;;;;;;3551:42;;3722:9;3693:3;:11;;3705:13;3693:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3805:23;;;:12;;;:23;;;;;:36;;;3501:398;3977:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4069:3;:12;;:19;4082:5;4069:19;;;;;;;;;;;4062:26;;;4110:4;4103:11;;;;;;;3019:1149;4152:5;4145:12;;;;;4108:223:14;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;4108:223;-1:-1:-1;;;;4108:223:14:o;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;;;;12334:2:113;5354:81:14;;;12316:21:113;12373:2;12353:18;;;12346:30;12412:34;12392:18;;;12385:62;12483:8;12463:18;;;12456:36;12509:19;;5354:81:14;12132:402:113;5354:81:14;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:14;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:14:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:14;;;8113:60;;;;;;;13288:2:113;8113:60:14;;;13270:21:113;13327:2;13307:18;;;13300:30;13366:31;13346:18;;;13339:59;13415:18;;8113:60:14;13086:353:113;8113:60:14;-1:-1:-1;8208:10:14;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;14:154:113:-;-1:-1:-1;;;;;93:5:113;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:247::-;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;425:180::-;484:6;537:2;525:9;516:7;512:23;508:32;505:52;;;553:1;550;543:12;505:52;-1:-1:-1;576:23:113;;425:180;-1:-1:-1;425:180:113:o;1213:609::-;1323:6;1331;1339;1347;1355;1408:3;1396:9;1387:7;1383:23;1379:33;1376:53;;;1425:1;1422;1415:12;1376:53;1461:9;1448:23;1438:33;;1518:2;1507:9;1503:18;1490:32;1480:42;;1572:2;1561:9;1557:18;1544:32;1585:31;1610:5;1585:31;:::i;:::-;1635:5;-1:-1:-1;1692:2:113;1677:18;;1664:32;1705:33;1664:32;1705:33;:::i;:::-;1213:609;;;;-1:-1:-1;1213:609:113;;1811:3;1796:19;1783:33;;1213:609;-1:-1:-1;;1213:609:113:o;1827:::-;1937:6;1945;1953;1961;1969;2022:3;2010:9;2001:7;1997:23;1993:33;1990:53;;;2039:1;2036;2029:12;1990:53;2078:9;2065:23;2097:31;2122:5;2097:31;:::i;:::-;2147:5;-1:-1:-1;2199:2:113;2184:18;;2171:32;;-1:-1:-1;2250:2:113;2235:18;;2222:32;;-1:-1:-1;2306:2:113;2291:18;;2278:32;2319:33;2278:32;2319:33;:::i;2688:471::-;2780:6;2788;2796;2849:2;2837:9;2828:7;2824:23;2820:32;2817:52;;;2865:1;2862;2855:12;2817:52;2904:9;2891:23;2923:31;2948:5;2923:31;:::i;:::-;2973:5;-1:-1:-1;3030:2:113;3015:18;;3002:32;3043:33;3002:32;3043:33;:::i;:::-;2688:471;;3095:7;;-1:-1:-1;;;3149:2:113;3134:18;;;;3121:32;;2688:471::o;3346:330::-;3429:6;3437;3490:2;3478:9;3469:7;3465:23;3461:32;3458:52;;;3506:1;3503;3496:12;3458:52;3542:9;3529:23;3519:33;;3602:2;3591:9;3587:18;3574:32;3615:31;3640:5;3615:31;:::i;:::-;3665:5;3655:15;;;3346:330;;;;;:::o;3681:::-;3764:6;3772;3825:2;3813:9;3804:7;3800:23;3796:32;3793:52;;;3841:1;3838;3831:12;3793:52;3880:9;3867:23;3899:31;3924:5;3899:31;:::i;:::-;3949:5;4001:2;3986:18;;;;3973:32;;-1:-1:-1;;;3681:330:113:o;4016:682::-;4126:6;4134;4142;4150;4158;4211:3;4199:9;4190:7;4186:23;4182:33;4179:53;;;4228:1;4225;4218:12;4179:53;4267:9;4254:23;4286:31;4311:5;4286:31;:::i;:::-;4336:5;-1:-1:-1;4388:2:113;4373:18;;4360:32;;-1:-1:-1;4444:2:113;4429:18;;4416:32;4457:33;4416:32;4457:33;:::i;:::-;4509:7;-1:-1:-1;4563:2:113;4548:18;;4535:32;;-1:-1:-1;4619:3:113;4604:19;;4591:33;4633;4591;4633;:::i;:::-;4685:7;4675:17;;;4016:682;;;;;;;;:::o;5023:681::-;5194:2;5246:21;;;5316:13;;5219:18;;;5338:22;;;5165:4;;5194:2;5417:15;;;;5391:2;5376:18;;;5165:4;5460:218;5474:6;5471:1;5468:13;5460:218;;;5539:13;;-1:-1:-1;;;;;5535:62:113;5523:75;;5653:15;;;;5618:12;;;;5496:1;5489:9;5460:218;;;-1:-1:-1;5695:3:113;;5023:681;-1:-1:-1;;;;;;5023:681:113:o;5709:540::-;5810:6;5818;5826;5834;5887:3;5875:9;5866:7;5862:23;5858:33;5855:53;;;5904:1;5901;5894:12;5855:53;5943:9;5930:23;5962:31;5987:5;5962:31;:::i;:::-;6012:5;-1:-1:-1;6064:2:113;6049:18;;6036:32;;-1:-1:-1;6120:2:113;6105:18;;6092:32;6133:33;6092:32;6133:33;:::i;:::-;5709:540;;;;-1:-1:-1;6185:7:113;;6239:2;6224:18;6211:32;;-1:-1:-1;;5709:540:113:o;6446:682::-;6556:6;6564;6572;6580;6588;6641:3;6629:9;6620:7;6616:23;6612:33;6609:53;;;6658:1;6655;6648:12;6609:53;6694:9;6681:23;6671:33;;6754:2;6743:9;6739:18;6726:32;6767:31;6792:5;6767:31;:::i;:::-;6817:5;-1:-1:-1;6874:2:113;6859:18;;6846:32;6887:33;6846:32;6887:33;:::i;7133:118::-;7219:5;7212:13;7205:21;7198:5;7195:32;7185:60;;7241:1;7238;7231:12;7256:672;7372:6;7380;7388;7396;7404;7412;7465:3;7453:9;7444:7;7440:23;7436:33;7433:53;;;7482:1;7479;7472:12;7433:53;7518:9;7505:23;7495:33;;7575:2;7564:9;7560:18;7547:32;7537:42;;7629:2;7618:9;7614:18;7601:32;7642:28;7664:5;7642:28;:::i;:::-;7689:5;-1:-1:-1;7746:2:113;7731:18;;7718:32;7759:33;7718:32;7759:33;:::i;:::-;7256:672;;;;-1:-1:-1;7256:672:113;;7865:3;7850:19;;7837:33;;7917:3;7902:19;;;7889:33;;-1:-1:-1;7256:672:113;-1:-1:-1;;7256:672:113:o;7933:403::-;8016:6;8024;8077:2;8065:9;8056:7;8052:23;8048:32;8045:52;;;8093:1;8090;8083:12;8045:52;8132:9;8119:23;8151:31;8176:5;8151:31;:::i;:::-;8201:5;-1:-1:-1;8258:2:113;8243:18;;8230:32;8271:33;8230:32;8271:33;:::i;8643:245::-;8710:6;8763:2;8751:9;8742:7;8738:23;8734:32;8731:52;;;8779:1;8776;8769:12;8731:52;8811:9;8805:16;8830:28;8852:5;8830:28;:::i;8893:184::-;8945:77;8942:1;8935:88;9042:4;9039:1;9032:15;9066:4;9063:1;9056:15;9082:125;9147:9;;;9168:10;;;9165:36;;;9181:18;;:::i;9529:184::-;9599:6;9652:2;9640:9;9631:7;9627:23;9623:32;9620:52;;;9668:1;9665;9658:12;9620:52;-1:-1:-1;9691:16:113;;9529:184;-1:-1:-1;9529:184:113:o;9718:168::-;9791:9;;;9822;;9839:15;;;9833:22;;9819:37;9809:71;;9860:18;;:::i;11621:128::-;11688:9;;;11709:11;;;11706:37;;;11723:18;;:::i;11754:184::-;11806:77;11803:1;11796:88;11903:4;11900:1;11893:15;11927:4;11924:1;11917:15;11943:184;11995:77;11992:1;11985:88;12092:4;12089:1;12082:15;12116:4;12113:1;12106:15;12539:250;12624:1;12634:113;12648:6;12645:1;12642:13;12634:113;;;12724:11;;;12718:18;12705:11;;;12698:39;12670:2;12663:10;12634:113;;;-1:-1:-1;;12781:1:113;12763:16;;12756:27;12539:250::o;12794:287::-;12923:3;12961:6;12955:13;12977:66;13036:6;13031:3;13024:4;13016:6;13012:17;12977:66;:::i;:::-;13059:16;;;;;12794:287;-1:-1:-1;;12794:287:113:o;13444:455::-;13593:2;13582:9;13575:21;13556:4;13625:6;13619:13;13668:6;13663:2;13652:9;13648:18;13641:34;13684:79;13756:6;13751:2;13740:9;13736:18;13731:2;13723:6;13719:15;13684:79;:::i;:::-;13815:2;13803:15;13820:66;13799:88;13784:104;;;;13890:2;13780:113;;13444:455;-1:-1:-1;;13444:455:113:o",
    "linkReferences": {},
    "immutableReferences": {
      "34929": [
        {
          "start": 537,
          "length": 32
        },
        {
          "start": 1090,
          "length": 32
        },
        {
          "start": 1580,
          "length": 32
        },
        {
          "start": 2196,
          "length": 32
        },
        {
          "start": 2432,
          "length": 32
        },
        {
          "start": 3912,
          "length": 32
        },
        {
          "start": 4148,
          "length": 32
        },
        {
          "start": 4641,
          "length": 32
        },
        {
          "start": 4877,
          "length": 32
        },
        {
          "start": 5435,
          "length": 32
        },
        {
          "start": 5671,
          "length": 32
        },
        {
          "start": 5899,
          "length": 32
        },
        {
          "start": 6426,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "ORACLE()": "38013f02",
    "approveModule(address)": "17825ef3",
    "balanceOf(address,address)": "f7888aec",
    "bond(address,bytes32,address,uint256)": "bba9f26f",
    "bond(address,bytes32,address,uint256,address)": "4aa90d16",
    "bondedAmountOf(address,address,bytes32)": "3c802fc5",
    "claimEscalationReward(bytes32,address)": "9043e2a0",
    "deposit(address,uint256)": "47e7ef24",
    "escalationResults(bytes32)": "1cc41fe8",
    "onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)": "e517a1f7",
    "pay(bytes32,address,address,address,uint256)": "cab0e418",
    "pledge(address,bytes32,bytes32,address,uint256)": "2c61d33c",
    "pledgerClaimed(bytes32,address)": "c0c1b54e",
    "pledges(bytes32,address)": "3edfa75d",
    "release(address,bytes32,address,uint256)": "a6d09dc8",
    "releasePledge(bytes32,bytes32,address,address,uint256)": "22cfb00a",
    "revokeModule(address)": "a69748b8",
    "userApprovedModules(address)": "96fa9e10",
    "withdraw(address,uint256)": "f3fef3a3"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccountingExtension_InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccountingExtension_InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccountingExtension_UnauthorizedModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccountingExtension_UnauthorizedUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_AlreadySettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_NoEscalationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_forVotesWon\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_winningPledgersLength\",\"type\":\"uint256\"}],\"name\":\"BondEscalationSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Bonded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"EscalationRewardClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Paid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"PledgeReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Pledged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Released\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"_winningPledgers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"}],\"name\":\"WinningPledgersPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Withdrew\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"approveModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"bond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"bond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"bondedAmountOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"}],\"name\":\"claimEscalationReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"escalationResults\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"forVotesWon\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountPerPledger\",\"type\":\"uint256\"},{\"internalType\":\"contract IBondEscalationModule\",\"name\":\"bondEscalationModule\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_forVotesWon\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_winningPledgersLength\",\"type\":\"uint256\"}],\"name\":\"onSettleBondEscalation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"pledge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"}],\"name\":\"pledgerClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"pledges\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"releasePledge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"revokeModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"userApprovedModules\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"_approvedModules\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"BondEscalationSettled(bytes32,bytes32,bool,address,uint256,uint256)\":{\"params\":{\"_amountPerPledger\":\"The amount of `_token` to be paid for each winning pledgers\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_forVotesWon\":\"True if the winning side were the for votes\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being paid out\",\"_winningPledgersLength\":\"The number of winning pledgers\"}},\"Bonded(bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` bonded\",\"_bonder\":\"The user who is getting its tokens bonded\",\"_token\":\"The address of the token being bonded\"}},\"Deposited(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` deposited\",\"_depositor\":\"The user who deposited the tokens\",\"_token\":\"The address of the token deposited by the user\"}},\"EscalationRewardClaimed(bytes32,bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` paid to the pledger\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"The user who claimed their reward\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being paid out\"}},\"Paid(bytes32,address,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` transferred\",\"_beneficiary\":\"The user receiving the tokens\",\"_payer\":\"The user who is getting its tokens transferred\",\"_token\":\"The address of the token being transferred\"}},\"PledgeReleased(bytes32,bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` released\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"The user who is getting their tokens released\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being released\"}},\"Pledged(address,bytes32,bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` pledged by the user\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"The user who pledged the tokens\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being pledged\"}},\"Released(bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` released\",\"_beneficiary\":\"The user who is getting its tokens released\",\"_token\":\"The address of the token being released\"}},\"WinningPledgersPaid(bytes32,bytes32,address[],address,uint256)\":{\"params\":{\"_amountPerPledger\":\"The amount of `_token` paid to each of the winning pledgers\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being paid out\",\"_winningPledgers\":\"The users who got paid for pledging for the winning side\"}},\"Withdrew(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` withdrawn\",\"_token\":\"The address of the token withdrawn by the user\",\"_withdrawer\":\"The user who withdrew the tokens\"}}},\"kind\":\"dev\",\"methods\":{\"approveModule(address)\":{\"params\":{\"_module\":\"The address of the module to be approved\"}},\"bond(address,bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` to bond\",\"_bonder\":\"The address of the user to bond tokens for\",\"_requestId\":\"The id of the request the user is bonding for\",\"_token\":\"The address of the token being bonded\"}},\"bond(address,bytes32,address,uint256,address)\":{\"params\":{\"_amount\":\"The amount of `_token` to bond\",\"_bonder\":\"The address of the user to bond tokens for\",\"_requestId\":\"The id of the request the user is bonding for\",\"_sender\":\"The address starting the propose call on the Oracle\",\"_token\":\"The address of the token being bonded\"}},\"claimEscalationReward(bytes32,address)\":{\"params\":{\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"Address of the pledger to claim the rewards\"}},\"deposit(address,uint256)\":{\"details\":\"The user must have approved the accounting extension to transfer the tokens.\",\"params\":{\"_amount\":\"The amount of `_token` to deposit\",\"_token\":\"The address of the token being deposited\"}},\"onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)\":{\"details\":\"This function must be called by an allowed module\",\"params\":{\"_amountPerPledger\":\"Amount of `_token` to be rewarded to each of the winning pledgers\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_forVotesWon\":\"True if the for votes won the dispute\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"Address of the token being paid as a reward for winning the bond escalation\",\"_winningPledgersLength\":\"Amount of pledges that won the dispute\"}},\"pay(bytes32,address,address,address,uint256)\":{\"details\":\"Only the virtual balances in the accounting extension are modified. The token contract is not called nor its balances modified.\",\"params\":{\"_amount\":\"The amount of `_token` being transferred\",\"_payer\":\"The address of the user paying the tokens\",\"_receiver\":\"The address of the user receiving the tokens\",\"_requestId\":\"The id of the request handling the user's tokens\",\"_token\":\"The address of the token being transferred\"}},\"pledge(address,bytes32,bytes32,address,uint256)\":{\"details\":\"This function must be called by an allowed module\",\"params\":{\"_amount\":\"Amount of token to pledge\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"Address of the pledger\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"Address of the token being paid as a reward for winning the bond escalation\"}},\"release(address,bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` to release\",\"_bonder\":\"The address of the user to release tokens for\",\"_requestId\":\"The id of the request where the tokens were bonded\",\"_token\":\"The address of the token being released\"}},\"releasePledge(bytes32,bytes32,address,address,uint256)\":{\"details\":\"This function must be called by an allowed module\",\"params\":{\"_amount\":\"Amount of `_token` to be released to the pledger\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"Address of the pledger\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"Address of the token to be released\"}},\"revokeModule(address)\":{\"params\":{\"_module\":\"The address of the module to be revoked\"}},\"userApprovedModules(address)\":{\"params\":{\"_user\":\"The address of the user\"},\"returns\":{\"_approvedModules\":\"The array of all modules approved by the user\"}},\"withdraw(address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` to withdraw\",\"_token\":\"The address of the token being withdrawn\"}}},\"stateVariables\":{\"escalationResults\":{\"params\":{\"_disputeId\":\"The ID of the bond-escalated dispute\"},\"returns\":{\"amountPerPledger\":\"    Amount of `_token` to be rewarded to each of the winning pledgers\",\"bondEscalationModule\":\"The address of the bond escalation module that was used\",\"forVotesWon\":\"         True if the for votes won the dispute\",\"requestId\":\"           The ID of the bond-escalated request\",\"token\":\"               Address of the token being paid as a reward for winning the bond escalation\"}},\"pledgerClaimed\":{\"params\":{\"_pledger\":\"Address of the pledger\",\"_requestId\":\"The ID of the bond-escalated request\"},\"return\":\"         True if the pledger has claimed their reward\",\"returns\":{\"_0\":\"         True if the pledger has claimed their reward\"}},\"pledges\":{\"params\":{\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_token\":\"Address of the token being pledged\"},\"return\":\"_amount    The amount of pledged tokens\",\"returns\":{\"_amount\":\"   The amount of pledged tokens\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AccountingExtension_InsufficientAllowance()\":[{\"notice\":\"Thrown when the module bonding user tokens hasn't been approved by the user.\"}],\"AccountingExtension_InsufficientFunds()\":[{\"notice\":\"Thrown when the account doesn't have enough balance to bond/withdraw or not enough bonded to release/pay\"}],\"AccountingExtension_UnauthorizedModule()\":[{\"notice\":\"Thrown when an `onlyAllowedModule` function is called by something else than a module being used in the corresponding request\"}],\"AccountingExtension_UnauthorizedUser()\":[{\"notice\":\"Thrown when an `onlyParticipant` function is called with an address that is not part of the request.\"}],\"BondEscalationAccounting_AlreadyClaimed()\":[{\"notice\":\"Thrown when the user tries to claim their pledge for an escalation that was already claimed\"}],\"BondEscalationAccounting_AlreadySettled()\":[{\"notice\":\"Thrown when trying to settle an already settled escalation\"}],\"BondEscalationAccounting_InsufficientFunds()\":[{\"notice\":\"Thrown when the user doesn't have enough funds to pledge\"}],\"BondEscalationAccounting_NoEscalationResult()\":[{\"notice\":\"Thrown when the user tries to claim their pledge for an escalation that wasn't finished yet\"}]},\"events\":{\"BondEscalationSettled(bytes32,bytes32,bool,address,uint256,uint256)\":{\"notice\":\"A bond escalation has been settled\"},\"Bonded(bytes32,address,address,uint256)\":{\"notice\":\"User's funds have been bonded\"},\"Deposited(address,address,uint256)\":{\"notice\":\"A user deposited tokens into the accounting extension\"},\"EscalationRewardClaimed(bytes32,bytes32,address,address,uint256)\":{\"notice\":\"A user claimed their reward for pledging for the winning side of a dispute\"},\"Paid(bytes32,address,address,address,uint256)\":{\"notice\":\"A payment between users has been made\"},\"PledgeReleased(bytes32,bytes32,address,address,uint256)\":{\"notice\":\"A pledge has been released back to the user\"},\"Pledged(address,bytes32,bytes32,address,uint256)\":{\"notice\":\"A user pledged tokens for one of the sides of a dispute\"},\"Released(bytes32,address,address,uint256)\":{\"notice\":\"User's funds have been released\"},\"WinningPledgersPaid(bytes32,bytes32,address[],address,uint256)\":{\"notice\":\"The pledgers of the winning side of a dispute have been paid\"},\"Withdrew(address,address,uint256)\":{\"notice\":\"A user withdrew tokens from the accounting extension\"}},\"kind\":\"user\",\"methods\":{\"ORACLE()\":{\"notice\":\"Returns the interface for the Oracle contract\"},\"approveModule(address)\":{\"notice\":\"Allows a user to approve a module for bonding tokens\"},\"balanceOf(address,address)\":{\"notice\":\"Returns the amount of a token a user has deposited\"},\"bond(address,bytes32,address,uint256)\":{\"notice\":\"Allows a allowed module to bond a user's tokens for a request\"},\"bond(address,bytes32,address,uint256,address)\":{\"notice\":\"Allows a valid module to bond a user's tokens for a request\"},\"bondedAmountOf(address,address,bytes32)\":{\"notice\":\"Returns the amount of a token a user has bonded\"},\"claimEscalationReward(bytes32,address)\":{\"notice\":\"Claims the reward for the pledger the given dispute\"},\"deposit(address,uint256)\":{\"notice\":\"Transfers tokens from a user and updates his virtual balance\"},\"escalationResults(bytes32)\":{\"notice\":\"The result of the given dispute\"},\"onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)\":{\"notice\":\"Updates the accounting of the given dispute to reflect the result of the bond escalation\"},\"pay(bytes32,address,address,address,uint256)\":{\"notice\":\"Allows a allowed module to transfer bonded tokens from one user to another\"},\"pledge(address,bytes32,bytes32,address,uint256)\":{\"notice\":\"Pledges the given amount of token to the provided dispute id of the provided request id\"},\"pledgerClaimed(bytes32,address)\":{\"notice\":\"True if the given pledger has claimed their reward for the given dispute\"},\"pledges(bytes32,address)\":{\"notice\":\"The amount pledged by the given pledger in the given dispute of the given request\"},\"release(address,bytes32,address,uint256)\":{\"notice\":\"Allows a valid module to release a user's tokens\"},\"releasePledge(bytes32,bytes32,address,address,uint256)\":{\"notice\":\"Releases a given amount of funds to the pledger\"},\"revokeModule(address)\":{\"notice\":\"Allows a user to revoke a module's approval for bonding tokens\"},\"userApprovedModules(address)\":{\"notice\":\"Returns a list of all modules a user has approved\"},\"withdraw(address,uint256)\":{\"notice\":\"Allows an user to withdraw deposited tokens\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/contracts/extensions/BondEscalationAccounting.sol\":\"BondEscalationAccounting\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@defi-wonderland/=node_modules/@defi-wonderland/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol\":{\"keccak256\":\"0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f\",\"dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol\":{\"keccak256\":\"0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823\",\"dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol\":{\"keccak256\":\"0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d\",\"dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol\":{\"keccak256\":\"0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e\",\"dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol\":{\"keccak256\":\"0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d\",\"dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol\":{\"keccak256\":\"0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67\",\"dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol\":{\"keccak256\":\"0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf\",\"dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df\",\"dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW\"]},\"solidity/contracts/extensions/AccountingExtension.sol\":{\"keccak256\":\"0x26b74aa4bf4bd221da169e960932e5894376e964f7bc7d9eb19660142015958a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81279015c35af771cbb182db9e7c4a4b69410525f191c38512d9cba621feb302\",\"dweb:/ipfs/QmWrLiRhuyjAEq8pmUVQzbfiuai1Fy4frNvuLPBBQ55E4j\"]},\"solidity/contracts/extensions/BondEscalationAccounting.sol\":{\"keccak256\":\"0x16a2309617fcb98a246d983ebebaa8f1d856ae3ad23ca55279add1b05c10be70\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://71a89d3e2b41b7e36b1280d98c8a063efdccb95d8edd9498d67b92484b052aca\",\"dweb:/ipfs/Qma7qfTuSVKEaaNd7C8L3wXLBPbDvMEcGtEch6VctyGhuD\"]},\"solidity/interfaces/extensions/IAccountingExtension.sol\":{\"keccak256\":\"0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0\",\"dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5\"]},\"solidity/interfaces/extensions/IBondEscalationAccounting.sol\":{\"keccak256\":\"0xbb8a09dc8120dce27ef6365377acc387e0ef230969b993590cc81aaa096e36d0\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://31c592b9527e6be74502d7ec135a77bb2802662c75df3a05f916fa050fe34747\",\"dweb:/ipfs/QmQBj39ptDdwMzhjgMzkJHNWbL7Ek41YNhMZaKDtKBG7oc\"]},\"solidity/interfaces/modules/dispute/IBondEscalationModule.sol\":{\"keccak256\":\"0x092ef0770e8587b1828891addecd270a0d49de18df36093480e006842dd3ef20\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://93939711123171337804d8acfe5aab8c1924b997cede75d16e13e7e61bf62f08\",\"dweb:/ipfs/QmQp8T8FXe5aJ6oJdUFRnzAoKarmmRihEF9aZiJWdaBwdt\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "contract IOracle",
              "name": "_oracle",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_InsufficientAllowance"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_InsufficientFunds"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_UnauthorizedModule"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_UnauthorizedUser"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_AlreadyClaimed"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_AlreadySettled"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_InsufficientFunds"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_NoEscalationResult"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "bool",
              "name": "_forVotesWon",
              "type": "bool",
              "indexed": false
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_winningPledgersLength",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "BondEscalationSettled",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Bonded",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_depositor",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Deposited",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "EscalationRewardClaimed",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_beneficiary",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_payer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Paid",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "PledgeReleased",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Pledged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_beneficiary",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Released",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address[]",
              "name": "_winningPledgers",
              "type": "address[]",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "WinningPledgersPaid",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_withdrawer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Withdrew",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ORACLE",
          "outputs": [
            {
              "internalType": "contract IOracle",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_module",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "approveModule"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "balanceOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_balance",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "_sender",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "bond"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "bond"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "bondedAmountOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "claimEscalationReward"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "deposit"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "escalationResults",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "forVotesWon",
              "type": "bool"
            },
            {
              "internalType": "contract IERC20",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amountPerPledger",
              "type": "uint256"
            },
            {
              "internalType": "contract IBondEscalationModule",
              "name": "bondEscalationModule",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "_forVotesWon",
              "type": "bool"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_winningPledgersLength",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "onSettleBondEscalation"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_payer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_receiver",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pay"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pledge"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "pledgerClaimed",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "pledges",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "release"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "releasePledge"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_module",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "revokeModule"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_user",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "userApprovedModules",
          "outputs": [
            {
              "internalType": "address[]",
              "name": "_approvedModules",
              "type": "address[]"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "withdraw"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "approveModule(address)": {
            "params": {
              "_module": "The address of the module to be approved"
            }
          },
          "bond(address,bytes32,address,uint256)": {
            "params": {
              "_amount": "The amount of `_token` to bond",
              "_bonder": "The address of the user to bond tokens for",
              "_requestId": "The id of the request the user is bonding for",
              "_token": "The address of the token being bonded"
            }
          },
          "bond(address,bytes32,address,uint256,address)": {
            "params": {
              "_amount": "The amount of `_token` to bond",
              "_bonder": "The address of the user to bond tokens for",
              "_requestId": "The id of the request the user is bonding for",
              "_sender": "The address starting the propose call on the Oracle",
              "_token": "The address of the token being bonded"
            }
          },
          "claimEscalationReward(bytes32,address)": {
            "params": {
              "_disputeId": "The ID of the bond-escalated dispute",
              "_pledger": "Address of the pledger to claim the rewards"
            }
          },
          "deposit(address,uint256)": {
            "details": "The user must have approved the accounting extension to transfer the tokens.",
            "params": {
              "_amount": "The amount of `_token` to deposit",
              "_token": "The address of the token being deposited"
            }
          },
          "onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)": {
            "details": "This function must be called by an allowed module",
            "params": {
              "_amountPerPledger": "Amount of `_token` to be rewarded to each of the winning pledgers",
              "_disputeId": "The ID of the bond-escalated dispute",
              "_forVotesWon": "True if the for votes won the dispute",
              "_requestId": "The ID of the bond-escalated request",
              "_token": "Address of the token being paid as a reward for winning the bond escalation",
              "_winningPledgersLength": "Amount of pledges that won the dispute"
            }
          },
          "pay(bytes32,address,address,address,uint256)": {
            "details": "Only the virtual balances in the accounting extension are modified. The token contract is not called nor its balances modified.",
            "params": {
              "_amount": "The amount of `_token` being transferred",
              "_payer": "The address of the user paying the tokens",
              "_receiver": "The address of the user receiving the tokens",
              "_requestId": "The id of the request handling the user's tokens",
              "_token": "The address of the token being transferred"
            }
          },
          "pledge(address,bytes32,bytes32,address,uint256)": {
            "details": "This function must be called by an allowed module",
            "params": {
              "_amount": "Amount of token to pledge",
              "_disputeId": "The ID of the bond-escalated dispute",
              "_pledger": "Address of the pledger",
              "_requestId": "The ID of the bond-escalated request",
              "_token": "Address of the token being paid as a reward for winning the bond escalation"
            }
          },
          "release(address,bytes32,address,uint256)": {
            "params": {
              "_amount": "The amount of `_token` to release",
              "_bonder": "The address of the user to release tokens for",
              "_requestId": "The id of the request where the tokens were bonded",
              "_token": "The address of the token being released"
            }
          },
          "releasePledge(bytes32,bytes32,address,address,uint256)": {
            "details": "This function must be called by an allowed module",
            "params": {
              "_amount": "Amount of `_token` to be released to the pledger",
              "_disputeId": "The ID of the bond-escalated dispute",
              "_pledger": "Address of the pledger",
              "_requestId": "The ID of the bond-escalated request",
              "_token": "Address of the token to be released"
            }
          },
          "revokeModule(address)": {
            "params": {
              "_module": "The address of the module to be revoked"
            }
          },
          "userApprovedModules(address)": {
            "params": {
              "_user": "The address of the user"
            },
            "returns": {
              "_approvedModules": "The array of all modules approved by the user"
            }
          },
          "withdraw(address,uint256)": {
            "params": {
              "_amount": "The amount of `_token` to withdraw",
              "_token": "The address of the token being withdrawn"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "ORACLE()": {
            "notice": "Returns the interface for the Oracle contract"
          },
          "approveModule(address)": {
            "notice": "Allows a user to approve a module for bonding tokens"
          },
          "balanceOf(address,address)": {
            "notice": "Returns the amount of a token a user has deposited"
          },
          "bond(address,bytes32,address,uint256)": {
            "notice": "Allows a allowed module to bond a user's tokens for a request"
          },
          "bond(address,bytes32,address,uint256,address)": {
            "notice": "Allows a valid module to bond a user's tokens for a request"
          },
          "bondedAmountOf(address,address,bytes32)": {
            "notice": "Returns the amount of a token a user has bonded"
          },
          "claimEscalationReward(bytes32,address)": {
            "notice": "Claims the reward for the pledger the given dispute"
          },
          "deposit(address,uint256)": {
            "notice": "Transfers tokens from a user and updates his virtual balance"
          },
          "escalationResults(bytes32)": {
            "notice": "The result of the given dispute"
          },
          "onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)": {
            "notice": "Updates the accounting of the given dispute to reflect the result of the bond escalation"
          },
          "pay(bytes32,address,address,address,uint256)": {
            "notice": "Allows a allowed module to transfer bonded tokens from one user to another"
          },
          "pledge(address,bytes32,bytes32,address,uint256)": {
            "notice": "Pledges the given amount of token to the provided dispute id of the provided request id"
          },
          "pledgerClaimed(bytes32,address)": {
            "notice": "True if the given pledger has claimed their reward for the given dispute"
          },
          "pledges(bytes32,address)": {
            "notice": "The amount pledged by the given pledger in the given dispute of the given request"
          },
          "release(address,bytes32,address,uint256)": {
            "notice": "Allows a valid module to release a user's tokens"
          },
          "releasePledge(bytes32,bytes32,address,address,uint256)": {
            "notice": "Releases a given amount of funds to the pledger"
          },
          "revokeModule(address)": {
            "notice": "Allows a user to revoke a module's approval for bonding tokens"
          },
          "userApprovedModules(address)": {
            "notice": "Returns a list of all modules a user has approved"
          },
          "withdraw(address,uint256)": {
            "notice": "Allows an user to withdraw deposited tokens"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@defi-wonderland/=node_modules/@defi-wonderland/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "solmate/=node_modules/solmate/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 10000
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "solidity/contracts/extensions/BondEscalationAccounting.sol": "BondEscalationAccounting"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol": {
        "keccak256": "0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05",
        "urls": [
          "bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f",
          "dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol": {
        "keccak256": "0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf",
        "urls": [
          "bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823",
          "dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol": {
        "keccak256": "0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4",
        "urls": [
          "bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d",
          "dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol": {
        "keccak256": "0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e",
        "urls": [
          "bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e",
          "dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol": {
        "keccak256": "0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032",
        "urls": [
          "bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d",
          "dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol": {
        "keccak256": "0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6",
        "urls": [
          "bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67",
          "dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol": {
        "keccak256": "0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b",
        "urls": [
          "bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf",
          "dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305",
        "urls": [
          "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5",
          "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": {
        "keccak256": "0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a",
        "urls": [
          "bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a",
          "dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
        "keccak256": "0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1",
        "urls": [
          "bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68",
          "dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/Address.sol": {
        "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa",
        "urls": [
          "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931",
          "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": {
        "keccak256": "0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514",
        "urls": [
          "bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df",
          "dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW"
        ],
        "license": "MIT"
      },
      "solidity/contracts/extensions/AccountingExtension.sol": {
        "keccak256": "0x26b74aa4bf4bd221da169e960932e5894376e964f7bc7d9eb19660142015958a",
        "urls": [
          "bzz-raw://81279015c35af771cbb182db9e7c4a4b69410525f191c38512d9cba621feb302",
          "dweb:/ipfs/QmWrLiRhuyjAEq8pmUVQzbfiuai1Fy4frNvuLPBBQ55E4j"
        ],
        "license": "MIT"
      },
      "solidity/contracts/extensions/BondEscalationAccounting.sol": {
        "keccak256": "0x16a2309617fcb98a246d983ebebaa8f1d856ae3ad23ca55279add1b05c10be70",
        "urls": [
          "bzz-raw://71a89d3e2b41b7e36b1280d98c8a063efdccb95d8edd9498d67b92484b052aca",
          "dweb:/ipfs/Qma7qfTuSVKEaaNd7C8L3wXLBPbDvMEcGtEch6VctyGhuD"
        ],
        "license": "AGPL-3.0-only"
      },
      "solidity/interfaces/extensions/IAccountingExtension.sol": {
        "keccak256": "0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e",
        "urls": [
          "bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0",
          "dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IBondEscalationAccounting.sol": {
        "keccak256": "0xbb8a09dc8120dce27ef6365377acc387e0ef230969b993590cc81aaa096e36d0",
        "urls": [
          "bzz-raw://31c592b9527e6be74502d7ec135a77bb2802662c75df3a05f916fa050fe34747",
          "dweb:/ipfs/QmQBj39ptDdwMzhjgMzkJHNWbL7Ek41YNhMZaKDtKBG7oc"
        ],
        "license": "AGPL-3.0-only"
      },
      "solidity/interfaces/modules/dispute/IBondEscalationModule.sol": {
        "keccak256": "0x092ef0770e8587b1828891addecd270a0d49de18df36093480e006842dd3ef20",
        "urls": [
          "bzz-raw://93939711123171337804d8acfe5aab8c1924b997cede75d16e13e7e61bf62f08",
          "dweb:/ipfs/QmQp8T8FXe5aJ6oJdUFRnzAoKarmmRihEF9aZiJWdaBwdt"
        ],
        "license": "AGPL-3.0-only"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/contracts/extensions/BondEscalationAccounting.sol",
    "id": 35761,
    "exportedSymbols": {
      "AccountingExtension": [
        35417
      ],
      "BondEscalationAccounting": [
        35760
      ],
      "IBondEscalationAccounting": [
        42784
      ],
      "IBondEscalationModule": [
        43004
      ],
      "IERC20": [
        2822
      ],
      "IOracle": [
        2282
      ]
    },
    "nodeType": "SourceUnit",
    "src": "42:4613:39",
    "nodes": [
      {
        "id": 35419,
        "nodeType": "PragmaDirective",
        "src": "42:24:39",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 35421,
        "nodeType": "ImportDirective",
        "src": "68:70:39",
        "nodes": [],
        "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 35761,
        "sourceUnit": 2823,
        "symbolAliases": [
          {
            "foreign": {
              "id": 35420,
              "name": "IERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2822,
              "src": "76:6:39",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 35423,
        "nodeType": "ImportDirective",
        "src": "139:96:39",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 35761,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 35422,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "147:7:39",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 35425,
        "nodeType": "ImportDirective",
        "src": "237:62:39",
        "nodes": [],
        "absolutePath": "solidity/contracts/extensions/AccountingExtension.sol",
        "file": "./AccountingExtension.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 35761,
        "sourceUnit": 35418,
        "symbolAliases": [
          {
            "foreign": {
              "id": 35424,
              "name": "AccountingExtension",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 35417,
              "src": "245:19:39",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 35427,
        "nodeType": "ImportDirective",
        "src": "301:100:39",
        "nodes": [],
        "absolutePath": "solidity/interfaces/extensions/IBondEscalationAccounting.sol",
        "file": "../../interfaces/extensions/IBondEscalationAccounting.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 35761,
        "sourceUnit": 42785,
        "symbolAliases": [
          {
            "foreign": {
              "id": 35426,
              "name": "IBondEscalationAccounting",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 42784,
              "src": "309:25:39",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 35429,
        "nodeType": "ImportDirective",
        "src": "402:97:39",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/dispute/IBondEscalationModule.sol",
        "file": "../../interfaces/modules/dispute/IBondEscalationModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 35761,
        "sourceUnit": 43005,
        "symbolAliases": [
          {
            "foreign": {
              "id": 35428,
              "name": "IBondEscalationModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 43004,
              "src": "410:21:39",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 35760,
        "nodeType": "ContractDefinition",
        "src": "501:4153:39",
        "nodes": [
          {
            "id": 35441,
            "nodeType": "VariableDeclaration",
            "src": "633:87:39",
            "nodes": [],
            "baseFunctions": [
              42700
            ],
            "constant": false,
            "documentation": {
              "id": 35434,
              "nodeType": "StructuredDocumentation",
              "src": "589:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "3edfa75d",
            "mutability": "mutable",
            "name": "pledges",
            "nameLocation": "713:7:39",
            "scope": 35760,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
              "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
            },
            "typeName": {
              "id": 35440,
              "keyName": "_disputeId",
              "keyNameLocation": "649:10:39",
              "keyType": {
                "id": 35435,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "641:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "633:72:39",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 35439,
                "keyName": "_token",
                "keyNameLocation": "678:6:39",
                "keyType": {
                  "id": 35437,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 35436,
                    "name": "IERC20",
                    "nameLocations": [
                      "671:6:39"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 2822,
                    "src": "671:6:39"
                  },
                  "referencedDeclaration": 2822,
                  "src": "671:6:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  }
                },
                "nodeType": "Mapping",
                "src": "663:41:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                  "typeString": "mapping(contract IERC20 => uint256)"
                },
                "valueName": "_amount",
                "valueNameLocation": "696:7:39",
                "valueType": {
                  "id": 35438,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "688:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 35447,
            "nodeType": "VariableDeclaration",
            "src": "769:80:39",
            "nodes": [],
            "baseFunctions": [
              42718
            ],
            "constant": false,
            "documentation": {
              "id": 35442,
              "nodeType": "StructuredDocumentation",
              "src": "725:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "1cc41fe8",
            "mutability": "mutable",
            "name": "escalationResults",
            "nameLocation": "832:17:39",
            "scope": 35760,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EscalationResult_$42677_storage_$",
              "typeString": "mapping(bytes32 => struct IBondEscalationAccounting.EscalationResult)"
            },
            "typeName": {
              "id": 35446,
              "keyName": "_disputeId",
              "keyNameLocation": "785:10:39",
              "keyType": {
                "id": 35443,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "777:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "769:55:39",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EscalationResult_$42677_storage_$",
                "typeString": "mapping(bytes32 => struct IBondEscalationAccounting.EscalationResult)"
              },
              "valueName": "_result",
              "valueNameLocation": "816:7:39",
              "valueType": {
                "id": 35445,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 35444,
                  "name": "EscalationResult",
                  "nameLocations": [
                    "799:16:39"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42677,
                  "src": "799:16:39"
                },
                "referencedDeclaration": 42677,
                "src": "799:16:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_EscalationResult_$42677_storage_ptr",
                  "typeString": "struct IBondEscalationAccounting.EscalationResult"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 35454,
            "nodeType": "VariableDeclaration",
            "src": "898:86:39",
            "nodes": [],
            "baseFunctions": [
              42728
            ],
            "constant": false,
            "documentation": {
              "id": 35448,
              "nodeType": "StructuredDocumentation",
              "src": "854:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "c0c1b54e",
            "mutability": "mutable",
            "name": "pledgerClaimed",
            "nameLocation": "970:14:39",
            "scope": 35760,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$",
              "typeString": "mapping(bytes32 => mapping(address => bool))"
            },
            "typeName": {
              "id": 35453,
              "keyName": "_requestId",
              "keyNameLocation": "914:10:39",
              "keyType": {
                "id": 35449,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "906:7:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "898:64:39",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$",
                "typeString": "mapping(bytes32 => mapping(address => bool))"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 35452,
                "keyName": "_pledger",
                "keyNameLocation": "944:8:39",
                "keyType": {
                  "id": 35450,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "936:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "nodeType": "Mapping",
                "src": "928:33:39",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                  "typeString": "mapping(address => bool)"
                },
                "valueName": "",
                "valueNameLocation": "-1:-1:-1",
                "valueType": {
                  "id": 35451,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "956:4:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 35464,
            "nodeType": "FunctionDefinition",
            "src": "989:60:39",
            "nodes": [],
            "body": {
              "id": 35463,
              "nodeType": "Block",
              "src": "1047:2:39",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 35460,
                    "name": "_oracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 35457,
                    "src": "1038:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  }
                ],
                "id": 35461,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 35459,
                  "name": "AccountingExtension",
                  "nameLocations": [
                    "1018:19:39"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 35417,
                  "src": "1018:19:39"
                },
                "nodeType": "ModifierInvocation",
                "src": "1018:28:39"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 35458,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35457,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "1009:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35464,
                  "src": "1001:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracle_$2282",
                    "typeString": "contract IOracle"
                  },
                  "typeName": {
                    "id": 35456,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 35455,
                      "name": "IOracle",
                      "nameLocations": [
                        "1001:7:39"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2282,
                      "src": "1001:7:39"
                    },
                    "referencedDeclaration": 2282,
                    "src": "1001:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1000:17:39"
            },
            "returnParameters": {
              "id": 35462,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1047:0:39"
            },
            "scope": 35760,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 35519,
            "nodeType": "FunctionDefinition",
            "src": "1097:613:39",
            "nodes": [],
            "body": {
              "id": 35518,
              "nodeType": "Block",
              "src": "1368:342:39",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 35488,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35482,
                          "name": "balanceOf",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 34937,
                          "src": "1378:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(contract IERC20 => uint256))"
                          }
                        },
                        "id": 35484,
                        "indexExpression": {
                          "id": 35483,
                          "name": "_pledger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35467,
                          "src": "1388:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1378:19:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                          "typeString": "mapping(contract IERC20 => uint256)"
                        }
                      },
                      "id": 35486,
                      "indexExpression": {
                        "id": 35485,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35474,
                        "src": "1398:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1378:27:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 35487,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35476,
                      "src": "1408:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1378:37:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35492,
                  "nodeType": "IfStatement",
                  "src": "1374:94:39",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 35489,
                        "name": "BondEscalationAccounting_InsufficientFunds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42686,
                        "src": "1424:42:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 35490,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1424:44:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 35491,
                    "nodeType": "RevertStatement",
                    "src": "1417:51:39"
                  }
                },
                {
                  "expression": {
                    "id": 35499,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35493,
                          "name": "pledges",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35441,
                          "src": "1475:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
                          }
                        },
                        "id": 35496,
                        "indexExpression": {
                          "id": 35494,
                          "name": "_disputeId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35471,
                          "src": "1483:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1475:19:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                          "typeString": "mapping(contract IERC20 => uint256)"
                        }
                      },
                      "id": 35497,
                      "indexExpression": {
                        "id": 35495,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35474,
                        "src": "1495:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1475:27:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 35498,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35476,
                      "src": "1506:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1475:38:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 35500,
                  "nodeType": "ExpressionStatement",
                  "src": "1475:38:39"
                },
                {
                  "id": 35509,
                  "nodeType": "UncheckedBlock",
                  "src": "1520:63:39",
                  "statements": [
                    {
                      "expression": {
                        "id": 35507,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "baseExpression": {
                            "baseExpression": {
                              "id": 35501,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 34937,
                              "src": "1538:9:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                                "typeString": "mapping(address => mapping(contract IERC20 => uint256))"
                              }
                            },
                            "id": 35504,
                            "indexExpression": {
                              "id": 35502,
                              "name": "_pledger",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 35467,
                              "src": "1548:8:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1538:19:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                              "typeString": "mapping(contract IERC20 => uint256)"
                            }
                          },
                          "id": 35505,
                          "indexExpression": {
                            "id": 35503,
                            "name": "_token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 35474,
                            "src": "1558:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$2822",
                              "typeString": "contract IERC20"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "1538:27:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "-=",
                        "rightHandSide": {
                          "id": 35506,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35476,
                          "src": "1569:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1538:38:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 35508,
                      "nodeType": "ExpressionStatement",
                      "src": "1538:38:39"
                    }
                  ]
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 35511,
                        "name": "_pledger",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35467,
                        "src": "1613:8:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 35512,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35469,
                        "src": "1635:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35513,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35471,
                        "src": "1659:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35514,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35474,
                        "src": "1679:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "id": 35515,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35476,
                        "src": "1696:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 35510,
                      "name": "Pledged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42605,
                      "src": "1594:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,bytes32,contract IERC20,uint256)"
                      }
                    },
                    "id": 35516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "1603:8:39",
                      "1623:10:39",
                      "1647:10:39",
                      "1671:6:39",
                      "1687:7:39"
                    ],
                    "names": [
                      "_pledger",
                      "_requestId",
                      "_disputeId",
                      "_token",
                      "_amount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "1594:111:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 35517,
                  "nodeType": "EmitStatement",
                  "src": "1589:116:39"
                }
              ]
            },
            "baseFunctions": [
              42743
            ],
            "documentation": {
              "id": 35465,
              "nodeType": "StructuredDocumentation",
              "src": "1053:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "2c61d33c",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 35479,
                    "name": "_requestId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 35469,
                    "src": "1356:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 35480,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 35478,
                  "name": "onlyAllowedModule",
                  "nameLocations": [
                    "1338:17:39"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 34982,
                  "src": "1338:17:39"
                },
                "nodeType": "ModifierInvocation",
                "src": "1338:29:39"
              }
            ],
            "name": "pledge",
            "nameLocation": "1106:6:39",
            "parameters": {
              "id": 35477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35467,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "1126:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35519,
                  "src": "1118:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 35466,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1118:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35469,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1250:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35519,
                  "src": "1242:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35468,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1242:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35471,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1274:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35519,
                  "src": "1266:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35470,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1266:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35474,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "1297:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35519,
                  "src": "1290:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 35473,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 35472,
                      "name": "IERC20",
                      "nameLocations": [
                        "1290:6:39"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "1290:6:39"
                    },
                    "referencedDeclaration": 2822,
                    "src": "1290:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35476,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "1317:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35519,
                  "src": "1309:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 35475,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1309:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1112:216:39"
            },
            "returnParameters": {
              "id": 35481,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1368:0:39"
            },
            "scope": 35760,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 35592,
            "nodeType": "FunctionDefinition",
            "src": "1758:1116:39",
            "nodes": [],
            "body": {
              "id": 35591,
              "nodeType": "Block",
              "src": "1990:884:39",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 35547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35539,
                          "name": "pledges",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35441,
                          "src": "2095:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
                          }
                        },
                        "id": 35541,
                        "indexExpression": {
                          "id": 35540,
                          "name": "_disputeId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35524,
                          "src": "2103:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2095:19:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                          "typeString": "mapping(contract IERC20 => uint256)"
                        }
                      },
                      "id": 35543,
                      "indexExpression": {
                        "id": 35542,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35529,
                        "src": "2115:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2095:27:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 35546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 35544,
                        "name": "_amountPerPledger",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35531,
                        "src": "2125:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "id": 35545,
                        "name": "_winningPledgersLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35533,
                        "src": "2145:22:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2125:42:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2095:72:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35552,
                  "nodeType": "IfStatement",
                  "src": "2091:144:39",
                  "trueBody": {
                    "id": 35551,
                    "nodeType": "Block",
                    "src": "2169:66:39",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 35548,
                            "name": "BondEscalationAccounting_InsufficientFunds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42686,
                            "src": "2184:42:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 35549,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2184:44:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 35550,
                        "nodeType": "RevertStatement",
                        "src": "2177:51:39"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 35561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "baseExpression": {
                          "id": 35553,
                          "name": "escalationResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35447,
                          "src": "2245:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EscalationResult_$42677_storage_$",
                            "typeString": "mapping(bytes32 => struct IBondEscalationAccounting.EscalationResult storage ref)"
                          }
                        },
                        "id": 35555,
                        "indexExpression": {
                          "id": 35554,
                          "name": "_disputeId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35524,
                          "src": "2263:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2245:29:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EscalationResult_$42677_storage",
                          "typeString": "struct IBondEscalationAccounting.EscalationResult storage ref"
                        }
                      },
                      "id": 35556,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2275:9:39",
                      "memberName": "requestId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42666,
                      "src": "2245:39:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 35559,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2296:1:39",
                          "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": 35558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2288:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 35557,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2288:7:39",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 35560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2288:10:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2245:53:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35566,
                  "nodeType": "IfStatement",
                  "src": "2241:122:39",
                  "trueBody": {
                    "id": 35565,
                    "nodeType": "Block",
                    "src": "2300:63:39",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 35562,
                            "name": "BondEscalationAccounting_AlreadySettled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42689,
                            "src": "2315:39:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 35563,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2315:41:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 35564,
                        "nodeType": "RevertStatement",
                        "src": "2308:48:39"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 35580,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 35567,
                        "name": "escalationResults",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35447,
                        "src": "2369:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EscalationResult_$42677_storage_$",
                          "typeString": "mapping(bytes32 => struct IBondEscalationAccounting.EscalationResult storage ref)"
                        }
                      },
                      "id": 35569,
                      "indexExpression": {
                        "id": 35568,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35524,
                        "src": "2387:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2369:29:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_EscalationResult_$42677_storage",
                        "typeString": "struct IBondEscalationAccounting.EscalationResult storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 35571,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35522,
                          "src": "2437:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 35572,
                          "name": "_forVotesWon",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35526,
                          "src": "2468:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "id": 35573,
                          "name": "_token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35529,
                          "src": "2495:6:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$2822",
                            "typeString": "contract IERC20"
                          }
                        },
                        {
                          "id": 35574,
                          "name": "_amountPerPledger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35531,
                          "src": "2527:17:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 35576,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -15,
                                "src": "2596:3:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 35577,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2600:6:39",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "2596:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 35575,
                            "name": "IBondEscalationModule",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43004,
                            "src": "2574:21:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IBondEscalationModule_$43004_$",
                              "typeString": "type(contract IBondEscalationModule)"
                            }
                          },
                          "id": 35578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2574:33:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                            "typeString": "contract IBondEscalationModule"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_contract$_IERC20_$2822",
                            "typeString": "contract IERC20"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                            "typeString": "contract IBondEscalationModule"
                          }
                        ],
                        "id": 35570,
                        "name": "EscalationResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42677,
                        "src": "2401:16:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_EscalationResult_$42677_storage_ptr_$",
                          "typeString": "type(struct IBondEscalationAccounting.EscalationResult storage pointer)"
                        }
                      },
                      "id": 35579,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "2426:9:39",
                        "2455:11:39",
                        "2488:5:39",
                        "2509:16:39",
                        "2552:20:39"
                      ],
                      "names": [
                        "requestId",
                        "forVotesWon",
                        "token",
                        "amountPerPledger",
                        "bondEscalationModule"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "2401:213:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                        "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                      }
                    },
                    "src": "2369:245:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_EscalationResult_$42677_storage",
                      "typeString": "struct IBondEscalationAccounting.EscalationResult storage ref"
                    }
                  },
                  "id": 35581,
                  "nodeType": "ExpressionStatement",
                  "src": "2369:245:39"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 35583,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35522,
                        "src": "2668:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35584,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35524,
                        "src": "2698:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35585,
                        "name": "_forVotesWon",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35526,
                        "src": "2730:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "id": 35586,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35529,
                        "src": "2758:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "id": 35587,
                        "name": "_amountPerPledger",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35531,
                        "src": "2791:17:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 35588,
                        "name": "_winningPledgersLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35533,
                        "src": "2840:22:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 35582,
                      "name": "BondEscalationSettled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42636,
                      "src": "2626:21:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$_t_contract$_IERC20_$2822_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bool,contract IERC20,uint256,uint256)"
                      }
                    },
                    "id": 35589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "2656:10:39",
                      "2686:10:39",
                      "2716:12:39",
                      "2750:6:39",
                      "2772:17:39",
                      "2816:22:39"
                    ],
                    "names": [
                      "_requestId",
                      "_disputeId",
                      "_forVotesWon",
                      "_token",
                      "_amountPerPledger",
                      "_winningPledgersLength"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "2626:243:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 35590,
                  "nodeType": "EmitStatement",
                  "src": "2621:248:39"
                }
              ]
            },
            "baseFunctions": [
              42760
            ],
            "documentation": {
              "id": 35520,
              "nodeType": "StructuredDocumentation",
              "src": "1714:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "e517a1f7",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 35536,
                    "name": "_requestId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 35522,
                    "src": "1978:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 35537,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 35535,
                  "name": "onlyAllowedModule",
                  "nameLocations": [
                    "1960:17:39"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 34982,
                  "src": "1960:17:39"
                },
                "nodeType": "ModifierInvocation",
                "src": "1960:29:39"
              }
            ],
            "name": "onSettleBondEscalation",
            "nameLocation": "1767:22:39",
            "parameters": {
              "id": 35534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35522,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1803:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35592,
                  "src": "1795:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35521,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1795:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35524,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1827:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35592,
                  "src": "1819:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35523,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1819:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35526,
                  "mutability": "mutable",
                  "name": "_forVotesWon",
                  "nameLocation": "1848:12:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35592,
                  "src": "1843:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 35525,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1843:4:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35529,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "1873:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35592,
                  "src": "1866:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 35528,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 35527,
                      "name": "IERC20",
                      "nameLocations": [
                        "1866:6:39"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "1866:6:39"
                    },
                    "referencedDeclaration": 2822,
                    "src": "1866:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35531,
                  "mutability": "mutable",
                  "name": "_amountPerPledger",
                  "nameLocation": "1893:17:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35592,
                  "src": "1885:25:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 35530,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1885:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35533,
                  "mutability": "mutable",
                  "name": "_winningPledgersLength",
                  "nameLocation": "1924:22:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35592,
                  "src": "1916:30:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 35532,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1916:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1789:161:39"
            },
            "returnParameters": {
              "id": 35538,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1990:0:39"
            },
            "scope": 35760,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 35704,
            "nodeType": "FunctionDefinition",
            "src": "2922:1121:39",
            "nodes": [],
            "body": {
              "id": 35703,
              "nodeType": "Block",
              "src": "3000:1043:39",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    35602
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35602,
                      "mutability": "mutable",
                      "name": "_result",
                      "nameLocation": "3030:7:39",
                      "nodeType": "VariableDeclaration",
                      "scope": 35703,
                      "src": "3006:31:39",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                        "typeString": "struct IBondEscalationAccounting.EscalationResult"
                      },
                      "typeName": {
                        "id": 35601,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 35600,
                          "name": "EscalationResult",
                          "nameLocations": [
                            "3006:16:39"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 42677,
                          "src": "3006:16:39"
                        },
                        "referencedDeclaration": 42677,
                        "src": "3006:16:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EscalationResult_$42677_storage_ptr",
                          "typeString": "struct IBondEscalationAccounting.EscalationResult"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 35606,
                  "initialValue": {
                    "baseExpression": {
                      "id": 35603,
                      "name": "escalationResults",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35447,
                      "src": "3040:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_EscalationResult_$42677_storage_$",
                        "typeString": "mapping(bytes32 => struct IBondEscalationAccounting.EscalationResult storage ref)"
                      }
                    },
                    "id": 35605,
                    "indexExpression": {
                      "id": 35604,
                      "name": "_disputeId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35595,
                      "src": "3058:10:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3040:29:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_EscalationResult_$42677_storage",
                      "typeString": "struct IBondEscalationAccounting.EscalationResult storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3006:63:39"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    },
                    "id": 35615,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 35607,
                        "name": "_result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35602,
                        "src": "3079:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                          "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                        }
                      },
                      "id": 35608,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3087:5:39",
                      "memberName": "token",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42671,
                      "src": "3079:13:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$2822",
                        "typeString": "contract IERC20"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 35612,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3111:1:39",
                              "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": 35611,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3103:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 35610,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3103:7:39",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 35613,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3103:10:39",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 35609,
                        "name": "IERC20",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2822,
                        "src": "3096:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IERC20_$2822_$",
                          "typeString": "type(contract IERC20)"
                        }
                      },
                      "id": 35614,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3096:18:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$2822",
                        "typeString": "contract IERC20"
                      }
                    },
                    "src": "3079:35:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35619,
                  "nodeType": "IfStatement",
                  "src": "3075:93:39",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 35616,
                        "name": "BondEscalationAccounting_NoEscalationResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42683,
                        "src": "3123:43:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 35617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3123:45:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 35618,
                    "nodeType": "RevertStatement",
                    "src": "3116:52:39"
                  }
                },
                {
                  "assignments": [
                    35621
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35621,
                      "mutability": "mutable",
                      "name": "_requestId",
                      "nameLocation": "3182:10:39",
                      "nodeType": "VariableDeclaration",
                      "scope": 35703,
                      "src": "3174:18:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 35620,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3174:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 35624,
                  "initialValue": {
                    "expression": {
                      "id": 35622,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35602,
                      "src": "3195:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                        "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                      }
                    },
                    "id": 35623,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3203:9:39",
                    "memberName": "requestId",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 42666,
                    "src": "3195:17:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3174:38:39"
                },
                {
                  "condition": {
                    "baseExpression": {
                      "baseExpression": {
                        "id": 35625,
                        "name": "pledgerClaimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35454,
                        "src": "3222:14:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => bool))"
                        }
                      },
                      "id": 35627,
                      "indexExpression": {
                        "id": 35626,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35621,
                        "src": "3237:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3222:26:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                        "typeString": "mapping(address => bool)"
                      }
                    },
                    "id": 35629,
                    "indexExpression": {
                      "id": 35628,
                      "name": "_pledger",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35597,
                      "src": "3249:8:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3222:36:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35633,
                  "nodeType": "IfStatement",
                  "src": "3218:90:39",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 35630,
                        "name": "BondEscalationAccounting_AlreadyClaimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42680,
                        "src": "3267:39:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 35631,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3267:41:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 35632,
                    "nodeType": "RevertStatement",
                    "src": "3260:48:39"
                  }
                },
                {
                  "assignments": [
                    35635
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35635,
                      "mutability": "mutable",
                      "name": "_amountPerPledger",
                      "nameLocation": "3323:17:39",
                      "nodeType": "VariableDeclaration",
                      "scope": 35703,
                      "src": "3315:25:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 35634,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3315:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 35638,
                  "initialValue": {
                    "expression": {
                      "id": 35636,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35602,
                      "src": "3343:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                        "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                      }
                    },
                    "id": 35637,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3351:16:39",
                    "memberName": "amountPerPledger",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 42673,
                    "src": "3343:24:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3315:52:39"
                },
                {
                  "assignments": [
                    35640
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35640,
                      "mutability": "mutable",
                      "name": "_numberOfPledges",
                      "nameLocation": "3381:16:39",
                      "nodeType": "VariableDeclaration",
                      "scope": 35703,
                      "src": "3373:24:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 35639,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3373:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 35656,
                  "initialValue": {
                    "condition": {
                      "expression": {
                        "id": 35641,
                        "name": "_result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35602,
                        "src": "3400:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                          "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                        }
                      },
                      "id": 35642,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3408:11:39",
                      "memberName": "forVotesWon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42668,
                      "src": "3400:19:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "arguments": [
                        {
                          "id": 35652,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35621,
                          "src": "3556:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 35653,
                          "name": "_pledger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35597,
                          "src": "3568:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 35649,
                            "name": "_result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 35602,
                            "src": "3505:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                              "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                            }
                          },
                          "id": 35650,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3513:20:39",
                          "memberName": "bondEscalationModule",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42676,
                          "src": "3505:28:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                            "typeString": "contract IBondEscalationModule"
                          }
                        },
                        "id": 35651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3534:21:39",
                        "memberName": "pledgesAgainstDispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42953,
                        "src": "3505:50:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (bytes32,address) view external returns (uint256)"
                        }
                      },
                      "id": 35654,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3505:72:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 35655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "3400:177:39",
                    "trueExpression": {
                      "arguments": [
                        {
                          "id": 35646,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35621,
                          "src": "3475:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 35647,
                          "name": "_pledger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35597,
                          "src": "3487:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 35643,
                            "name": "_result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 35602,
                            "src": "3428:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                              "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                            }
                          },
                          "id": 35644,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3436:20:39",
                          "memberName": "bondEscalationModule",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42676,
                          "src": "3428:28:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                            "typeString": "contract IBondEscalationModule"
                          }
                        },
                        "id": 35645,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3457:17:39",
                        "memberName": "pledgesForDispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42943,
                        "src": "3428:46:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (bytes32,address) view external returns (uint256)"
                        }
                      },
                      "id": 35648,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3428:68:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3373:204:39"
                },
                {
                  "assignments": [
                    35659
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35659,
                      "mutability": "mutable",
                      "name": "_token",
                      "nameLocation": "3591:6:39",
                      "nodeType": "VariableDeclaration",
                      "scope": 35703,
                      "src": "3584:13:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$2822",
                        "typeString": "contract IERC20"
                      },
                      "typeName": {
                        "id": 35658,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 35657,
                          "name": "IERC20",
                          "nameLocations": [
                            "3584:6:39"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2822,
                          "src": "3584:6:39"
                        },
                        "referencedDeclaration": 2822,
                        "src": "3584:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 35662,
                  "initialValue": {
                    "expression": {
                      "id": 35660,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35602,
                      "src": "3600:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                        "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                      }
                    },
                    "id": 35661,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3608:5:39",
                    "memberName": "token",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 42671,
                    "src": "3600:13:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3584:29:39"
                },
                {
                  "assignments": [
                    35664
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35664,
                      "mutability": "mutable",
                      "name": "_claimAmount",
                      "nameLocation": "3627:12:39",
                      "nodeType": "VariableDeclaration",
                      "scope": 35703,
                      "src": "3619:20:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 35663,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3619:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 35668,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 35667,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 35665,
                      "name": "_amountPerPledger",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35635,
                      "src": "3642:17:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "id": 35666,
                      "name": "_numberOfPledges",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35640,
                      "src": "3662:16:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3642:36:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3619:59:39"
                },
                {
                  "expression": {
                    "id": 35675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35669,
                          "name": "pledgerClaimed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35454,
                          "src": "3685:14:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => bool))"
                          }
                        },
                        "id": 35672,
                        "indexExpression": {
                          "id": 35670,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35621,
                          "src": "3700:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3685:26:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                          "typeString": "mapping(address => bool)"
                        }
                      },
                      "id": 35673,
                      "indexExpression": {
                        "id": 35671,
                        "name": "_pledger",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35597,
                        "src": "3712:8:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3685:36:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 35674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3724:4:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "3685:43:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35676,
                  "nodeType": "ExpressionStatement",
                  "src": "3685:43:39"
                },
                {
                  "expression": {
                    "id": 35683,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35677,
                          "name": "balanceOf",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 34937,
                          "src": "3734:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(contract IERC20 => uint256))"
                          }
                        },
                        "id": 35680,
                        "indexExpression": {
                          "id": 35678,
                          "name": "_pledger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35597,
                          "src": "3744:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3734:19:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                          "typeString": "mapping(contract IERC20 => uint256)"
                        }
                      },
                      "id": 35681,
                      "indexExpression": {
                        "id": 35679,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35659,
                        "src": "3754:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3734:27:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 35682,
                      "name": "_claimAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35664,
                      "src": "3765:12:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3734:43:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 35684,
                  "nodeType": "ExpressionStatement",
                  "src": "3734:43:39"
                },
                {
                  "id": 35693,
                  "nodeType": "UncheckedBlock",
                  "src": "3784:68:39",
                  "statements": [
                    {
                      "expression": {
                        "id": 35691,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "baseExpression": {
                            "baseExpression": {
                              "id": 35685,
                              "name": "pledges",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 35441,
                              "src": "3802:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
                              }
                            },
                            "id": 35688,
                            "indexExpression": {
                              "id": 35686,
                              "name": "_disputeId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 35595,
                              "src": "3810:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3802:19:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                              "typeString": "mapping(contract IERC20 => uint256)"
                            }
                          },
                          "id": 35689,
                          "indexExpression": {
                            "id": 35687,
                            "name": "_token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 35659,
                            "src": "3822:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$2822",
                              "typeString": "contract IERC20"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "3802:27:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "-=",
                        "rightHandSide": {
                          "id": 35690,
                          "name": "_claimAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35664,
                          "src": "3833:12:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3802:43:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 35692,
                      "nodeType": "ExpressionStatement",
                      "src": "3802:43:39"
                    }
                  ]
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 35695,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35621,
                        "src": "3907:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35696,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35595,
                        "src": "3937:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35697,
                        "name": "_pledger",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35597,
                        "src": "3965:8:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 35698,
                          "name": "_result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35602,
                          "src": "3989:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_EscalationResult_$42677_memory_ptr",
                            "typeString": "struct IBondEscalationAccounting.EscalationResult memory"
                          }
                        },
                        "id": 35699,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3997:5:39",
                        "memberName": "token",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42671,
                        "src": "3989:13:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "id": 35700,
                        "name": "_claimAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35664,
                        "src": "4019:12:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 35694,
                      "name": "EscalationRewardClaimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42664,
                      "src": "3863:23:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,contract IERC20,uint256)"
                      }
                    },
                    "id": 35701,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "3895:10:39",
                      "3925:10:39",
                      "3955:8:39",
                      "3981:6:39",
                      "4010:7:39"
                    ],
                    "names": [
                      "_requestId",
                      "_disputeId",
                      "_pledger",
                      "_token",
                      "_amount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "3863:175:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 35702,
                  "nodeType": "EmitStatement",
                  "src": "3858:180:39"
                }
              ]
            },
            "baseFunctions": [
              42783
            ],
            "documentation": {
              "id": 35593,
              "nodeType": "StructuredDocumentation",
              "src": "2878:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "9043e2a0",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claimEscalationReward",
            "nameLocation": "2931:21:39",
            "parameters": {
              "id": 35598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35595,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "2961:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35704,
                  "src": "2953:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35594,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2953:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35597,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "2981:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35704,
                  "src": "2973:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 35596,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2973:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2952:38:39"
            },
            "returnParameters": {
              "id": 35599,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3000:0:39"
            },
            "scope": 35760,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 35759,
            "nodeType": "FunctionDefinition",
            "src": "4091:561:39",
            "nodes": [],
            "body": {
              "id": 35758,
              "nodeType": "Block",
              "src": "4267:385:39",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 35728,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35722,
                          "name": "pledges",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35441,
                          "src": "4277:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
                          }
                        },
                        "id": 35724,
                        "indexExpression": {
                          "id": 35723,
                          "name": "_disputeId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35709,
                          "src": "4285:10:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4277:19:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                          "typeString": "mapping(contract IERC20 => uint256)"
                        }
                      },
                      "id": 35726,
                      "indexExpression": {
                        "id": 35725,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35714,
                        "src": "4297:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4277:27:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 35727,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35716,
                      "src": "4307:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4277:37:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 35732,
                  "nodeType": "IfStatement",
                  "src": "4273:94:39",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 35729,
                        "name": "BondEscalationAccounting_InsufficientFunds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42686,
                        "src": "4323:42:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 35730,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4323:44:39",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 35731,
                    "nodeType": "RevertStatement",
                    "src": "4316:51:39"
                  }
                },
                {
                  "expression": {
                    "id": 35739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "baseExpression": {
                          "id": 35733,
                          "name": "balanceOf",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 34937,
                          "src": "4374:9:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(contract IERC20 => uint256))"
                          }
                        },
                        "id": 35736,
                        "indexExpression": {
                          "id": 35734,
                          "name": "_pledger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35711,
                          "src": "4384:8:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4374:19:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                          "typeString": "mapping(contract IERC20 => uint256)"
                        }
                      },
                      "id": 35737,
                      "indexExpression": {
                        "id": 35735,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35714,
                        "src": "4394:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4374:27:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 35738,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 35716,
                      "src": "4405:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4374:38:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 35740,
                  "nodeType": "ExpressionStatement",
                  "src": "4374:38:39"
                },
                {
                  "id": 35749,
                  "nodeType": "UncheckedBlock",
                  "src": "4419:63:39",
                  "statements": [
                    {
                      "expression": {
                        "id": 35747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "baseExpression": {
                            "baseExpression": {
                              "id": 35741,
                              "name": "pledges",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 35441,
                              "src": "4437:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(contract IERC20 => uint256))"
                              }
                            },
                            "id": 35744,
                            "indexExpression": {
                              "id": 35742,
                              "name": "_disputeId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 35709,
                              "src": "4445:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4437:19:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_contract$_IERC20_$2822_$_t_uint256_$",
                              "typeString": "mapping(contract IERC20 => uint256)"
                            }
                          },
                          "id": 35745,
                          "indexExpression": {
                            "id": 35743,
                            "name": "_token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 35714,
                            "src": "4457:6:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$2822",
                              "typeString": "contract IERC20"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "4437:27:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "-=",
                        "rightHandSide": {
                          "id": 35746,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 35716,
                          "src": "4468:7:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4437:38:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 35748,
                      "nodeType": "ExpressionStatement",
                      "src": "4437:38:39"
                    }
                  ]
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 35751,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35707,
                        "src": "4528:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35752,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35709,
                        "src": "4558:10:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 35753,
                        "name": "_pledger",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35711,
                        "src": "4586:8:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 35754,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35714,
                        "src": "4610:6:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "id": 35755,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35716,
                        "src": "4633:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 35750,
                      "name": "PledgeReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42650,
                      "src": "4493:14:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,contract IERC20,uint256)"
                      }
                    },
                    "id": 35756,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "4516:10:39",
                      "4546:10:39",
                      "4576:8:39",
                      "4602:6:39",
                      "4624:7:39"
                    ],
                    "names": [
                      "_requestId",
                      "_disputeId",
                      "_pledger",
                      "_token",
                      "_amount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "4493:154:39",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 35757,
                  "nodeType": "EmitStatement",
                  "src": "4488:159:39"
                }
              ]
            },
            "baseFunctions": [
              42775
            ],
            "documentation": {
              "id": 35705,
              "nodeType": "StructuredDocumentation",
              "src": "4047:41:39",
              "text": "@inheritdoc IBondEscalationAccounting"
            },
            "functionSelector": "22cfb00a",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 35719,
                    "name": "_requestId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 35707,
                    "src": "4255:10:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 35720,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 35718,
                  "name": "onlyAllowedModule",
                  "nameLocations": [
                    "4237:17:39"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 34982,
                  "src": "4237:17:39"
                },
                "nodeType": "ModifierInvocation",
                "src": "4237:29:39"
              }
            ],
            "name": "releasePledge",
            "nameLocation": "4100:13:39",
            "parameters": {
              "id": 35717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35707,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "4127:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35759,
                  "src": "4119:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35706,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4119:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35709,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "4151:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35759,
                  "src": "4143:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 35708,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4143:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35711,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "4175:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35759,
                  "src": "4167:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 35710,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4167:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35714,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "4196:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35759,
                  "src": "4189:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 35713,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 35712,
                      "name": "IERC20",
                      "nameLocations": [
                        "4189:6:39"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "4189:6:39"
                    },
                    "referencedDeclaration": 2822,
                    "src": "4189:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 35716,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "4216:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 35759,
                  "src": "4208:15:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 35715,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4208:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4113:114:39"
            },
            "returnParameters": {
              "id": 35721,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4267:0:39"
            },
            "scope": 35760,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 35430,
              "name": "AccountingExtension",
              "nameLocations": [
                "538:19:39"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 35417,
              "src": "538:19:39"
            },
            "id": 35431,
            "nodeType": "InheritanceSpecifier",
            "src": "538:19:39"
          },
          {
            "baseName": {
              "id": 35432,
              "name": "IBondEscalationAccounting",
              "nameLocations": [
                "559:25:39"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 42784,
              "src": "559:25:39"
            },
            "id": 35433,
            "nodeType": "InheritanceSpecifier",
            "src": "559:25:39"
          }
        ],
        "canonicalName": "BondEscalationAccounting",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          35760,
          42784,
          35417,
          42580
        ],
        "name": "BondEscalationAccounting",
        "nameLocation": "510:24:39",
        "scope": 35761,
        "usedErrors": [
          42444,
          42447,
          42450,
          42453,
          42680,
          42683,
          42686,
          42689
        ]
      }
    ],
    "license": "AGPL-3.0-only"
  },
  "id": 39
}