{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "enum IOracle.DisputeStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "DisputeStatusChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        }
      ],
      "name": "ResponseDisputed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ORACLE",
      "outputs": [
        {
          "internalType": "contract IOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            },
            {
              "internalType": "address",
              "name": "verifier",
              "type": "address"
            },
            {
              "internalType": "contract IAccountingExtension",
              "name": "accountingExtension",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "bondToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "bondSize",
              "type": "uint256"
            }
          ],
          "internalType": "struct ICircuitResolverModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "disputeEscalated",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        }
      ],
      "name": "disputeResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "responseId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "status",
              "type": "uint8"
            }
          ],
          "internalType": "struct IOracle.Dispute",
          "name": "_dispute",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "responseId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "status",
              "type": "uint8"
            }
          ],
          "internalType": "struct IOracle.Dispute",
          "name": "_dispute",
          "type": "tuple"
        }
      ],
      "name": "onDisputeStatusChange",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "requestData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_requestData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "setupRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60a060405234801561001057600080fd5b506040516118a13803806118a183398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516117c96100d86000396000818161012c015281816101950152818161023d015281816102cc0152818161033f015281816103ab01528181610611015281816106fa015281816107b701528181610a2901528181610ad10152610b5a01526117c96000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80634d610a46116100765780637fadb88d1161005b5780637fadb88d146101b957806393f0899a146101cc57806398660c181461020557600080fd5b80634d610a46146101735780637dc0d1d01461019357600080fd5b806334837c29116100a757806334837c29146100eb5780633661346b146100fe57806338013f021461012757600080fd5b80632e76be2a146100c3578063309de607146100d8575b600080fd5b6100d66100d1366004610dd4565b610225565b005b6100d66100e6366004610e72565b6102b4565b6100d66100f9366004610f1d565b610327565b61011161010c366004610fb3565b61089c565b60405161011e919061101c565b60405180910390f35b61014e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011e565b610186610181366004610fb3565b610936565b60405161011e9190611036565b7f000000000000000000000000000000000000000000000000000000000000000061014e565b6100d66101c7366004610fb3565b610a11565b60408051808201909152601581527f436972637569745265736f6c7665724d6f64756c6500000000000000000000006020820152610111565b6102186102133660046110a4565b610a83565b60405161011e9190611158565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610294576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526020819052604090206102ad828483611262565b505b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610323576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610396576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103a58260800151610936565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663415a2bc184606001516040518263ffffffff1660e01b815260040161040891815260200190565b600060405180830381865afa158015610425573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261044d91908101906113e7565b6080840151600090815260016020526040812080549293509091610470906111c1565b80601f016020809104026020016040519081016040528092919081815260200182805461049c906111c1565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b50505050509050600081518360800151511415806105195750818051906020012083608001518051906020012014155b90508015610770576040848101516080878101518884015160208a015160608a0151938a015195517fcab0e418000000000000000000000000000000000000000000000000000000008152600481019390935273ffffffffffffffffffffffffffffffffffffffff91821660248401528116604483015291821660648201526084810193909352169063cab0e4189060a401600060405180830381600087803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b50505060208087015160808801516000818152600184526040808220905191955073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016946392b0382f949392610645929101611487565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161067293929190611530565b6020604051808303816000875af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b5919061156e565b60808701516040517fc65ff8f200000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c65ff8f291610738918590600401918252602082015260400190565b600060405180830381600087803b15801561075257600080fd5b505af1158015610766573d6000803e3d6000fd5b5050505050610826565b608085015160608601516040517fc65ff8f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263c65ff8f2926107f392600401918252602082015260400190565b600060405180830381600087803b15801561080d57600080fd5b505af1158015610821573d6000803e3d6000fd5b505050505b6080850151600090815260016020526040812061084291610d86565b84608001517f9a96d939e838e8499325cdd0ab8ada4766e4783add4060e6e328f6a5113c60718660600151876020015188604001518960a0015160405161088c9493929190611587565b60405180910390a2505050505050565b600060208190529081526040902080546108b5906111c1565b80601f01602080910402602001604051908101604052809291908181526020018280546108e1906111c1565b801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b505050505081565b6040805160a0810182526060808252600060208301819052928201839052810182905260808101919091526000828152602081905260409020805461097a906111c1565b80601f01602080910402602001604051908101604052809291908181526020018280546109a6906111c1565b80156109f35780601f106109c8576101008083540402835291602001916109f3565b820191906000526020600020905b8154815290600101906020018083116109d657829003601f168201915b5050505050806020019051810190610a0b91906115bf565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a80576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b610ab96040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b28576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f415a2bc1000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063415a2bc190602401600060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bde91908101906113e7565b90506000610beb87610936565b90506000816020015173ffffffffffffffffffffffffffffffffffffffff168260000151604051610c1c919061167b565b6000604051808303816000865af19150503d8060008114610c59576040519150601f19603f3d011682016040523d82523d6000602084013e610c5e565b606091505b5060008a81526001602052604090209092509050610c7c8282611697565b5060008151846080015151141580610ca65750818051906020012084608001518051906020012014155b90506040518060c001604052804281526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018a815260200182610d09576004610d0c565b60035b6005811115610d1d57610d1d6110ee565b9052604080518a815273ffffffffffffffffffffffffffffffffffffffff8a8116602083015289168183015290519196508a917f10d26bcb7d6ba7d73ccfb97211024d458d277dce4abe8206bc5346aa4e55cd1e9181900360600190a250505050949350505050565b508054610d92906111c1565b6000825580601f10610da2575050565b601f016020900490600052602060002090810190610a8091905b80821115610dd05760008155600101610dbc565b5090565b600080600060408486031215610de957600080fd5b83359250602084013567ffffffffffffffff80821115610e0857600080fd5b818601915086601f830112610e1c57600080fd5b813581811115610e2b57600080fd5b876020828501011115610e3d57600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff81168114610a8057600080fd5b60008060408385031215610e8557600080fd5b823591506020830135610e9781610e50565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715610ef457610ef4610ea2565b60405290565b60405160a0810167ffffffffffffffff81118282101715610ef457610ef4610ea2565b60008082840360e0811215610f3157600080fd5b8335925060c0601f1982011215610f4757600080fd5b50610f50610ed1565b602084013581526040840135610f6581610e50565b60208201526060840135610f7881610e50565b6040820152608084810135606083015260a08501359082015260c084013560068110610fa357600080fd5b60a0820152919491935090915050565b600060208284031215610fc557600080fd5b5035919050565b60005b83811015610fe7578181015183820152602001610fcf565b50506000910152565b60008151808452611008816020860160208601610fcc565b601f01601f19169290920160200192915050565b60208152600061102f6020830184610ff0565b9392505050565b602081526000825160a0602084015261105260c0840182610ff0565b9050602084015173ffffffffffffffffffffffffffffffffffffffff80821660408601528060408701511660608601528060608701511660808601525050608084015160a08401528091505092915050565b600080600080608085870312156110ba57600080fd5b843593506020850135925060408501356110d381610e50565b915060608501356110e381610e50565b939692955090935050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060c08201905082518252602083015173ffffffffffffffffffffffffffffffffffffffff80821660208501528060408601511660408501525050606083015160608301526080830151608083015260a08301516111ba60a084018261111d565b5092915050565b600181811c908216806111d557607f821691505b60208210810361120e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102af57600081815260208120601f850160051c8101602086101561123b5750805b601f850160051c820191505b8181101561125a57828155600101611247565b505050505050565b67ffffffffffffffff83111561127a5761127a610ea2565b61128e8361128883546111c1565b83611214565b6000601f8411600181146112e057600085156112aa5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611358565b600083815260209020601f19861690835b8281101561131157868501358255602094850194600190920191016112f1565b508682101561134c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600082601f83011261137057600080fd5b815167ffffffffffffffff8082111561138b5761138b610ea2565b604051601f8301601f19908116603f011681019082821181831017156113b3576113b3610ea2565b816040528381528660208588010111156113cc57600080fd5b6113dd846020830160208901610fcc565b9695505050505050565b6000602082840312156113f957600080fd5b815167ffffffffffffffff8082111561141157600080fd5b9083019060a0828603121561142557600080fd5b61142d610efa565b82518152602083015161143f81610e50565b80602083015250604083015160408201526060830151606082015260808301518281111561146c57600080fd5b6114788782860161135f565b60808301525095945050505050565b600060208083526000845461149b816111c1565b808487015260406001808416600081146114bc57600181146114f457611522565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550611522565b896000528660002060005b8581101561151a5781548b82018601529083019088016114ff565b8a0184019650505b509398975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006115656060830184610ff0565b95945050505050565b60006020828403121561158057600080fd5b5051919050565b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101611565606083018461111d565b6000602082840312156115d157600080fd5b815167ffffffffffffffff808211156115e957600080fd5b9083019060a082860312156115fd57600080fd5b611605610efa565b82518281111561161457600080fd5b6116208782860161135f565b8252506020830151915061163382610e50565b8160208201526040830151915061164982610e50565b8160408201526060830151915061165f82610e50565b8160608201526080830151608082015280935050505092915050565b6000825161168d818460208701610fcc565b9190910192915050565b815167ffffffffffffffff8111156116b1576116b1610ea2565b6116c5816116bf84546111c1565b84611214565b602080601f83116001811461171857600084156116e25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561125a565b600085815260208120601f198616915b8281101561174757888601518255948401946001909101908401611728565b508582101561178357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220da5a065bdf9edc98d7e5b70197f71e03e14b24a9be862212ff72db20194d190e64736f6c63430008130033",
    "sourceMap": "409:3041:43:-:0;;;478:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;353:16:0;;;409:3041:43;;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;:::-;409:3041:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80634d610a46116100765780637fadb88d1161005b5780637fadb88d146101b957806393f0899a146101cc57806398660c181461020557600080fd5b80634d610a46146101735780637dc0d1d01461019357600080fd5b806334837c29116100a757806334837c29146100eb5780633661346b146100fe57806338013f021461012757600080fd5b80632e76be2a146100c3578063309de607146100d8575b600080fd5b6100d66100d1366004610dd4565b610225565b005b6100d66100e6366004610e72565b6102b4565b6100d66100f9366004610f1d565b610327565b61011161010c366004610fb3565b61089c565b60405161011e919061101c565b60405180910390f35b61014e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011e565b610186610181366004610fb3565b610936565b60405161011e9190611036565b7f000000000000000000000000000000000000000000000000000000000000000061014e565b6100d66101c7366004610fb3565b610a11565b60408051808201909152601581527f436972637569745265736f6c7665724d6f64756c6500000000000000000000006020820152610111565b6102186102133660046110a4565b610a83565b60405161011e9190611158565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610294576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526020819052604090206102ad828483611262565b505b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610323576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610396576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103a58260800151610936565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663415a2bc184606001516040518263ffffffff1660e01b815260040161040891815260200190565b600060405180830381865afa158015610425573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261044d91908101906113e7565b6080840151600090815260016020526040812080549293509091610470906111c1565b80601f016020809104026020016040519081016040528092919081815260200182805461049c906111c1565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b50505050509050600081518360800151511415806105195750818051906020012083608001518051906020012014155b90508015610770576040848101516080878101518884015160208a015160608a0151938a015195517fcab0e418000000000000000000000000000000000000000000000000000000008152600481019390935273ffffffffffffffffffffffffffffffffffffffff91821660248401528116604483015291821660648201526084810193909352169063cab0e4189060a401600060405180830381600087803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b50505060208087015160808801516000818152600184526040808220905191955073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016946392b0382f949392610645929101611487565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161067293929190611530565b6020604051808303816000875af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b5919061156e565b60808701516040517fc65ff8f200000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c65ff8f291610738918590600401918252602082015260400190565b600060405180830381600087803b15801561075257600080fd5b505af1158015610766573d6000803e3d6000fd5b5050505050610826565b608085015160608601516040517fc65ff8f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263c65ff8f2926107f392600401918252602082015260400190565b600060405180830381600087803b15801561080d57600080fd5b505af1158015610821573d6000803e3d6000fd5b505050505b6080850151600090815260016020526040812061084291610d86565b84608001517f9a96d939e838e8499325cdd0ab8ada4766e4783add4060e6e328f6a5113c60718660600151876020015188604001518960a0015160405161088c9493929190611587565b60405180910390a2505050505050565b600060208190529081526040902080546108b5906111c1565b80601f01602080910402602001604051908101604052809291908181526020018280546108e1906111c1565b801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b505050505081565b6040805160a0810182526060808252600060208301819052928201839052810182905260808101919091526000828152602081905260409020805461097a906111c1565b80601f01602080910402602001604051908101604052809291908181526020018280546109a6906111c1565b80156109f35780601f106109c8576101008083540402835291602001916109f3565b820191906000526020600020905b8154815290600101906020018083116109d657829003601f168201915b5050505050806020019051810190610a0b91906115bf565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a80576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b610ab96040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b28576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f415a2bc1000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063415a2bc190602401600060405180830381865afa158015610bb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bde91908101906113e7565b90506000610beb87610936565b90506000816020015173ffffffffffffffffffffffffffffffffffffffff168260000151604051610c1c919061167b565b6000604051808303816000865af19150503d8060008114610c59576040519150601f19603f3d011682016040523d82523d6000602084013e610c5e565b606091505b5060008a81526001602052604090209092509050610c7c8282611697565b5060008151846080015151141580610ca65750818051906020012084608001518051906020012014155b90506040518060c001604052804281526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018a815260200182610d09576004610d0c565b60035b6005811115610d1d57610d1d6110ee565b9052604080518a815273ffffffffffffffffffffffffffffffffffffffff8a8116602083015289168183015290519196508a917f10d26bcb7d6ba7d73ccfb97211024d458d277dce4abe8206bc5346aa4e55cd1e9181900360600190a250505050949350505050565b508054610d92906111c1565b6000825580601f10610da2575050565b601f016020900490600052602060002090810190610a8091905b80821115610dd05760008155600101610dbc565b5090565b600080600060408486031215610de957600080fd5b83359250602084013567ffffffffffffffff80821115610e0857600080fd5b818601915086601f830112610e1c57600080fd5b813581811115610e2b57600080fd5b876020828501011115610e3d57600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff81168114610a8057600080fd5b60008060408385031215610e8557600080fd5b823591506020830135610e9781610e50565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715610ef457610ef4610ea2565b60405290565b60405160a0810167ffffffffffffffff81118282101715610ef457610ef4610ea2565b60008082840360e0811215610f3157600080fd5b8335925060c0601f1982011215610f4757600080fd5b50610f50610ed1565b602084013581526040840135610f6581610e50565b60208201526060840135610f7881610e50565b6040820152608084810135606083015260a08501359082015260c084013560068110610fa357600080fd5b60a0820152919491935090915050565b600060208284031215610fc557600080fd5b5035919050565b60005b83811015610fe7578181015183820152602001610fcf565b50506000910152565b60008151808452611008816020860160208601610fcc565b601f01601f19169290920160200192915050565b60208152600061102f6020830184610ff0565b9392505050565b602081526000825160a0602084015261105260c0840182610ff0565b9050602084015173ffffffffffffffffffffffffffffffffffffffff80821660408601528060408701511660608601528060608701511660808601525050608084015160a08401528091505092915050565b600080600080608085870312156110ba57600080fd5b843593506020850135925060408501356110d381610e50565b915060608501356110e381610e50565b939692955090935050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060c08201905082518252602083015173ffffffffffffffffffffffffffffffffffffffff80821660208501528060408601511660408501525050606083015160608301526080830151608083015260a08301516111ba60a084018261111d565b5092915050565b600181811c908216806111d557607f821691505b60208210810361120e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102af57600081815260208120601f850160051c8101602086101561123b5750805b601f850160051c820191505b8181101561125a57828155600101611247565b505050505050565b67ffffffffffffffff83111561127a5761127a610ea2565b61128e8361128883546111c1565b83611214565b6000601f8411600181146112e057600085156112aa5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611358565b600083815260209020601f19861690835b8281101561131157868501358255602094850194600190920191016112f1565b508682101561134c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600082601f83011261137057600080fd5b815167ffffffffffffffff8082111561138b5761138b610ea2565b604051601f8301601f19908116603f011681019082821181831017156113b3576113b3610ea2565b816040528381528660208588010111156113cc57600080fd5b6113dd846020830160208901610fcc565b9695505050505050565b6000602082840312156113f957600080fd5b815167ffffffffffffffff8082111561141157600080fd5b9083019060a0828603121561142557600080fd5b61142d610efa565b82518152602083015161143f81610e50565b80602083015250604083015160408201526060830151606082015260808301518281111561146c57600080fd5b6114788782860161135f565b60808301525095945050505050565b600060208083526000845461149b816111c1565b808487015260406001808416600081146114bc57600181146114f457611522565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550611522565b896000528660002060005b8581101561151a5781548b82018601529083019088016114ff565b8a0184019650505b509398975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006115656060830184610ff0565b95945050505050565b60006020828403121561158057600080fd5b5051919050565b84815273ffffffffffffffffffffffffffffffffffffffff84811660208301528316604082015260808101611565606083018461111d565b6000602082840312156115d157600080fd5b815167ffffffffffffffff808211156115e957600080fd5b9083019060a082860312156115fd57600080fd5b611605610efa565b82518281111561161457600080fd5b6116208782860161135f565b8252506020830151915061163382610e50565b8160208201526040830151915061164982610e50565b8160408201526060830151915061165f82610e50565b8160608201526080830151608082015280935050505092915050565b6000825161168d818460208701610fcc565b9190910192915050565b815167ffffffffffffffff8111156116b1576116b1610ea2565b6116c5816116bf84546111c1565b84611214565b602080601f83116001811461171857600084156116e25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561125a565b600085815260208120601f198616915b8281101561174757888601518255948401946001909101908401611728565b508582101561178357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220da5a065bdf9edc98d7e5b70197f71e03e14b24a9be862212ff72db20194d190e64736f6c63430008130033",
    "sourceMap": "409:3041:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:175:0;;;;;;:::i;:::-;;:::i;:::-;;900:95;;;;;;:::i;:::-;;:::i;1135:1316:43:-;;;;;;:::i;:::-;;:::i;237:68:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;201:31;;;;;;;;4087:42:113;4075:55;;;4057:74;;4045:2;4030:18;201:31:0;3895:242:113;798:179:43;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;571:94:0:-;653:6;571:94;;1022:68:43;;;;;;:::i;:::-;;:::i;640:113::-;718:30;;;;;;;;;;;;;;;;;640:113;;2496:952;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;695:175:0:-;472:10;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;791:11:::1;:23:::0;;;::::1;::::0;;;;;;:31:::1;817:5:::0;;791:23;:31:::1;:::i;:::-;;828:37;695:175:::0;;;:::o;900:95::-;472:10;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;900:95;;:::o;1135:1316:43:-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;1251:32:43::1;1286:37;1304:8;:18;;;1286:17;:37::i;:::-;1251:72;;1330:33;1366:6;:18;;;1385:8;:19;;;1366:39;;;;;;;;;;;;;9949:25:113::0;;9937:2;9922:18;;9803:177;1366:39:43::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1366:39:43::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1462:18;::::0;::::1;::::0;1412:29:::1;1444:37:::0;;;:17:::1;:37;::::0;;;;1412:69;;1330:75;;-1:-1:-1;1412:29:43;;:69:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1487:9;1528:16;:23;1499:9;:18;;;:25;:52;;:122;;;;1604:16;1594:27;;;;;;1571:9;:18;;;1561:29;;;;;;:60;;1499:122;1487:134;;1632:4;1628:546;;;1646:27;::::0;;::::1;::::0;1700:18:::1;::::0;;::::1;::::0;1736:17;;::::1;::::0;1774::::1;::::0;::::1;::::0;1809::::1;::::0;::::1;::::0;1845:16;;::::1;::::0;1646:224;;;;;::::1;::::0;::::1;11922:25:113::0;;;;1646:31:43::1;12044:15:113::0;;;12024:18;;;12017:43;12096:15;;12076:18;;;12069:43;12148:15;;;12128:18;;;12121:43;12180:19;;;12173:35;;;;1646:31:43::1;::::0;::::1;::::0;11894:19:113;;1646:224:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;1938:17:43::1;::::0;;::::1;::::0;1957:18:::1;::::0;::::1;::::0;1878:26:::1;1988:37:::0;;;:17:::1;:37:::0;;;;;;1977:49;;1878:26;;-1:-1:-1;1915:22:43::1;:6;:22;::::0;::::1;::::0;1938:17;1957:18;1977:49:::1;::::0;1988:37;1977:49:::1;;:::i;:::-;;;;;;;;;;;;;1915:112;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2051:18;::::0;::::1;::::0;2035:55:::1;::::0;;;;1878:149;;-1:-1:-1;2035:15:43::1;:6;:15;::::0;::::1;::::0;:55:::1;::::0;1878:149;;2035:55:::1;;14019:25:113::0;;;14075:2;14060:18;;14053:34;14007:2;13992:18;;13845:248;2035:55:43::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1638:459;1628:546;;;2127:18;::::0;::::1;::::0;2147:19:::1;::::0;::::1;::::0;2111:56:::1;::::0;;;;:15:::1;:6;:15;::::0;::::1;::::0;:56:::1;::::0;::::1;;14019:25:113::0;;;14075:2;14060:18;;14053:34;14007:2;13992:18;;13845:248;2111:56:43::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1628:546;2205:18;::::0;::::1;::::0;2187:37:::1;::::0;;;:17:::1;:37;::::0;;;;2180:44:::1;::::0;::::1;:::i;:::-;2277:8;:18;;;2236:210;2316:8;:19;;;2354:8;:17;;;2390:8;:17;;;2424:8;:15;;;2236:210;;;;;;;;;:::i;:::-;;;;;;;;1245:1206;;;;1135:1316:::0;;:::o;237:68:0:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;798:179:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;927:11:43;:23;;;;;;;;;;916:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;906:66;798:179;-1:-1:-1;;798:179:43:o;1022:68::-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;1022:68:43;:::o;2496:952::-;2649:31;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2649:31:43;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;2724:31:43::1;::::0;;;;::::1;::::0;::::1;9949:25:113::0;;;2688:33:43::1;::::0;2724:6:::1;:18;;::::0;::::1;::::0;9922::113;;2724:31:43::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;2724:31:43::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;2688:67;;2761:32;2796:29;2814:10;2796:17;:29::i;:::-;2761:64;;2835:29;2868:7;:16;;;:21;;2890:7;:16;;;2868:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;2913:29:43::1;::::0;;;:17:::1;:29;::::0;;;;2832:75;;-1:-1:-1;2913:29:43;-1:-1:-1;2913:48:43::1;2832:75:::0;2913:29;:48:::1;:::i;:::-;;2968:9;3009:16;:23;2980:9;:18;;;:25;:52;;:122;;;;3085:16;3075:27;;;;;;3052:9;:18;;;3042:29;;;;;;:60;;2980:122;2968:134;;3120:248;;;;;;;;3346:15;3120:248;;;;3154:9;3120:248;;;;;;3212:9;3120:248;;;;;;3183:11;3120:248;;;;3240:10;3120:248;;;;3266:4;:61;;3301:26;3266:61;;;3273:25;3266:61;3120:248;;;;;;;;:::i;:::-;::::0;;3380:63:::1;::::0;;17635:25:113;;;17679:42;17757:15;;;17752:2;17737:18;;17730:43;17809:15;;17789:18;;;17782:43;3380:63:43;;3109:259;;-1:-1:-1;3397:10:43;;3380:63:::1;::::0;;;;17623:2:113;3380:63:43;;::::1;2682:766;;;;2496:952:::0;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:659:113:-;93:6;101;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;214:9;201:23;191:33;;275:2;264:9;260:18;247:32;298:18;339:2;331:6;328:14;325:34;;;355:1;352;345:12;325:34;393:6;382:9;378:22;368:32;;438:7;431:4;427:2;423:13;419:27;409:55;;460:1;457;450:12;409:55;500:2;487:16;526:2;518:6;515:14;512:34;;;542:1;539;532:12;512:34;587:7;582:2;573:6;569:2;565:15;561:24;558:37;555:57;;;608:1;605;598:12;555:57;639:2;635;631:11;621:21;;661:6;651:16;;;;;14:659;;;;;:::o;678:154::-;764:42;757:5;753:54;746:5;743:65;733:93;;822:1;819;812:12;837:315;905:6;913;966:2;954:9;945:7;941:23;937:32;934:52;;;982:1;979;972:12;934:52;1018:9;1005:23;995:33;;1078:2;1067:9;1063:18;1050:32;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1131:15;;;837:315;;;;;:::o;1157:184::-;1209:77;1206:1;1199:88;1306:4;1303:1;1296:15;1330:4;1327:1;1320:15;1346:248;1413:2;1407:9;1455:4;1443:17;;1490:18;1475:34;;1511:22;;;1472:62;1469:88;;;1537:18;;:::i;:::-;1573:2;1566:22;1346:248;:::o;1599:253::-;1671:2;1665:9;1713:4;1701:17;;1748:18;1733:34;;1769:22;;;1730:62;1727:88;;;1795:18;;:::i;1857:1037::-;1950:6;1958;2002:9;1993:7;1989:23;2032:3;2028:2;2024:12;2021:32;;;2049:1;2046;2039:12;2021:32;2085:9;2072:23;2062:33;;2188:4;-1:-1:-1;;2115:2:113;2111:75;2107:86;2104:106;;;2206:1;2203;2196:12;2104:106;;2232:17;;:::i;:::-;2300:2;2289:9;2285:18;2272:32;2265:5;2258:47;2357:2;2346:9;2342:18;2329:32;2370:33;2395:7;2370:33;:::i;:::-;2430:2;2419:14;;2412:31;2495:2;2480:18;;2467:32;2508:33;2467:32;2508:33;:::i;:::-;2568:2;2557:14;;2550:31;2641:3;2626:19;;;2613:33;2608:2;2597:14;;2590:57;2708:3;2693:19;;2680:33;2663:15;;;2656:58;2766:4;2751:20;;2738:34;2803:1;2791:14;;2781:42;;2819:1;2816;2809:12;2781:42;2850:3;2839:15;;2832:32;1857:1037;;2843:5;;-1:-1:-1;1857:1037:113;;-1:-1:-1;;1857:1037:113:o;2899:180::-;2958:6;3011:2;2999:9;2990:7;2986:23;2982:32;2979:52;;;3027:1;3024;3017:12;2979:52;-1:-1:-1;3050:23:113;;2899:180;-1:-1:-1;2899:180:113:o;3084:250::-;3169:1;3179:113;3193:6;3190:1;3187:13;3179:113;;;3269:11;;;3263:18;3250:11;;;3243:39;3215:2;3208:10;3179:113;;;-1:-1:-1;;3326:1:113;3308:16;;3301:27;3084:250::o;3339:329::-;3380:3;3418:5;3412:12;3445:6;3440:3;3433:19;3461:76;3530:6;3523:4;3518:3;3514:14;3507:4;3500:5;3496:16;3461:76;:::i;:::-;3582:2;3570:15;-1:-1:-1;;3566:88:113;3557:98;;;;3657:4;3553:109;;3339:329;-1:-1:-1;;3339:329:113:o;3673:217::-;3820:2;3809:9;3802:21;3783:4;3840:44;3880:2;3869:9;3865:18;3857:6;3840:44;:::i;:::-;3832:52;3673:217;-1:-1:-1;;;3673:217:113:o;4142:763::-;4343:2;4332:9;4325:21;4306:4;4381:6;4375:13;4424:4;4419:2;4408:9;4404:18;4397:32;4452:51;4498:3;4487:9;4483:19;4469:12;4452:51;:::i;:::-;4438:65;;4552:2;4544:6;4540:15;4534:22;4575:42;4673:2;4657:14;4653:23;4648:2;4637:9;4633:18;4626:51;4741:2;4735;4727:6;4723:15;4717:22;4713:31;4708:2;4697:9;4693:18;4686:59;4810:2;4804;4796:6;4792:15;4786:22;4782:31;4776:3;4765:9;4761:19;4754:60;;;4870:3;4862:6;4858:16;4852:23;4845:4;4834:9;4830:20;4823:53;4893:6;4885:14;;;4142:763;;;;:::o;5365:525::-;5451:6;5459;5467;5475;5528:3;5516:9;5507:7;5503:23;5499:33;5496:53;;;5545:1;5542;5535:12;5496:53;5581:9;5568:23;5558:33;;5638:2;5627:9;5623:18;5610:32;5600:42;;5692:2;5681:9;5677:18;5664:32;5705:31;5730:5;5705:31;:::i;:::-;5755:5;-1:-1:-1;5812:2:113;5797:18;;5784:32;5825:33;5784:32;5825:33;:::i;:::-;5365:525;;;;-1:-1:-1;5365:525:113;;-1:-1:-1;;5365:525:113:o;5895:184::-;5947:77;5944:1;5937:88;6044:4;6041:1;6034:15;6068:4;6065:1;6058:15;6084:298;6169:1;6162:5;6159:12;6149:200;;6205:77;6202:1;6195:88;6306:4;6303:1;6296:15;6334:4;6331:1;6324:15;6149:200;6358:18;;6084:298::o;6387:738::-;6529:4;6571:3;6560:9;6556:19;6548:27;;6608:6;6602:13;6591:9;6584:32;6663:4;6655:6;6651:17;6645:24;6688:42;6786:2;6772:12;6768:21;6761:4;6750:9;6746:20;6739:51;6858:2;6850:4;6842:6;6838:17;6832:24;6828:33;6821:4;6810:9;6806:20;6799:63;;;6918:4;6910:6;6906:17;6900:24;6893:4;6882:9;6878:20;6871:54;6981:4;6973:6;6969:17;6963:24;6956:4;6945:9;6941:20;6934:54;7037:4;7029:6;7025:17;7019:24;7052:67;7113:4;7102:9;7098:20;7082:14;7052:67;:::i;:::-;;6387:738;;;;:::o;7130:437::-;7209:1;7205:12;;;;7252;;;7273:61;;7327:4;7319:6;7315:17;7305:27;;7273:61;7380:2;7372:6;7369:14;7349:18;7346:38;7343:218;;7417:77;7414:1;7407:88;7518:4;7515:1;7508:15;7546:4;7543:1;7536:15;7343:218;;7130:437;;;:::o;7697:544::-;7798:2;7793:3;7790:11;7787:448;;;7834:1;7859:5;7855:2;7848:17;7904:4;7900:2;7890:19;7974:2;7962:10;7958:19;7955:1;7951:27;7945:4;7941:38;8010:4;7998:10;7995:20;7992:47;;;-1:-1:-1;8033:4:113;7992:47;8088:2;8083:3;8079:12;8076:1;8072:20;8066:4;8062:31;8052:41;;8143:82;8161:2;8154:5;8151:13;8143:82;;;8206:17;;;8187:1;8176:13;8143:82;;;8147:3;;;7697:544;;;:::o;8477:1321::-;8599:18;8594:3;8591:27;8588:53;;;8621:18;;:::i;:::-;8650:93;8739:3;8699:38;8731:4;8725:11;8699:38;:::i;:::-;8693:4;8650:93;:::i;:::-;8769:1;8794:2;8789:3;8786:11;8811:1;8806:734;;;;9584:1;9601:3;9598:93;;;-1:-1:-1;9657:19:113;;;9644:33;9598:93;8383:66;8374:1;8370:11;;;8366:84;8362:89;8352:100;8458:1;8454:11;;;8349:117;9704:78;;8779:1013;;8806:734;7644:1;7637:14;;;7681:4;7668:18;;-1:-1:-1;;8842:76:113;;;9001:9;9023:229;9037:7;9034:1;9031:14;9023:229;;;9126:19;;;9113:33;9098:49;;9233:4;9218:20;;;;9186:1;9174:14;;;;9053:12;9023:229;;;9027:3;9280;9271:7;9268:16;9265:219;;;9400:66;9394:3;9388;9385:1;9381:11;9377:21;9373:94;9369:99;9356:9;9351:3;9347:19;9334:33;9330:139;9322:6;9315:155;9265:219;;;9527:1;9521:3;9518:1;9514:11;9510:19;9504:4;9497:33;8779:1013;;;8477:1321;;;:::o;9985:757::-;10038:5;10091:3;10084:4;10076:6;10072:17;10068:27;10058:55;;10109:1;10106;10099:12;10058:55;10138:6;10132:13;10164:18;10201:2;10197;10194:10;10191:36;;;10207:18;;:::i;:::-;10341:2;10335:9;10403:4;10395:13;;-1:-1:-1;;10391:22:113;;;10415:2;10387:31;10383:40;10371:53;;;10439:18;;;10459:22;;;10436:46;10433:72;;;10485:18;;:::i;:::-;10525:10;10521:2;10514:22;10560:2;10552:6;10545:18;10606:3;10599:4;10594:2;10586:6;10582:15;10578:26;10575:35;10572:55;;;10623:1;10620;10613:12;10572:55;10636:76;10709:2;10702:4;10694:6;10690:17;10683:4;10675:6;10671:17;10636:76;:::i;:::-;10730:6;9985:757;-1:-1:-1;;;;;;9985:757:113:o;10747:896::-;10843:6;10896:2;10884:9;10875:7;10871:23;10867:32;10864:52;;;10912:1;10909;10902:12;10864:52;10945:9;10939:16;10974:18;11015:2;11007:6;11004:14;11001:34;;;11031:1;11028;11021:12;11001:34;11054:22;;;;11110:4;11092:16;;;11088:27;11085:47;;;11128:1;11125;11118:12;11085:47;11154:22;;:::i;:::-;11205:2;11199:9;11192:5;11185:24;11247:2;11243;11239:11;11233:18;11260:33;11285:7;11260:33;:::i;:::-;11325:7;11320:2;11313:5;11309:14;11302:31;;11379:2;11375;11371:11;11365:18;11360:2;11353:5;11349:14;11342:42;11430:2;11426;11422:11;11416:18;11411:2;11404:5;11400:14;11393:42;11474:3;11470:2;11466:12;11460:19;11504:2;11494:8;11491:16;11488:36;;;11520:1;11517;11510:12;11488:36;11557:55;11604:7;11593:8;11589:2;11585:17;11557:55;:::i;:::-;11551:3;11540:15;;11533:80;-1:-1:-1;11544:5:113;10747:896;-1:-1:-1;;;;;10747:896:113:o;12219:1019::-;12326:4;12355:2;12384;12373:9;12366:21;12407:1;12440:6;12434:13;12470:36;12496:9;12470:36;:::i;:::-;12542:6;12537:2;12526:9;12522:18;12515:34;12568:2;12589:1;12621:2;12610:9;12606:18;12638:1;12633:216;;;;12863:1;12858:354;;;;12599:613;;12633:216;12696:66;12685:9;12681:82;12676:2;12665:9;12661:18;12654:110;12836:2;12824:6;12817:14;12810:22;12807:1;12803:30;12792:9;12788:46;12784:55;12777:62;;12633:216;;12858:354;12889:6;12886:1;12879:17;12937:2;12934:1;12924:16;12962:1;12976:180;12990:6;12987:1;12984:13;12976:180;;;13083:14;;13059:17;;;13055:26;;13048:50;13126:16;;;;13005:10;;12976:180;;;13180:17;;13176:26;;;-1:-1:-1;;12599:613:113;-1:-1:-1;13229:3:113;;12219:1019;-1:-1:-1;;;;;;;;12219:1019:113:o;13243:408::-;13458:42;13450:6;13446:55;13435:9;13428:74;13538:6;13533:2;13522:9;13518:18;13511:34;13581:2;13576;13565:9;13561:18;13554:30;13409:4;13601:44;13641:2;13630:9;13626:18;13618:6;13601:44;:::i;:::-;13593:52;13243:408;-1:-1:-1;;;;;13243:408:113:o;13656:184::-;13726:6;13779:2;13767:9;13758:7;13754:23;13750:32;13747:52;;;13795:1;13792;13785:12;13747:52;-1:-1:-1;13818:16:113;;13656:184;-1:-1:-1;13656:184:113:o;14098:509::-;14345:25;;;14389:42;14467:15;;;14462:2;14447:18;;14440:43;14519:15;;14514:2;14499:18;;14492:43;14332:3;14317:19;;14544:57;14597:2;14582:18;;14574:6;14544:57;:::i;14612:1052::-;14718:6;14771:2;14759:9;14750:7;14746:23;14742:32;14739:52;;;14787:1;14784;14777:12;14739:52;14820:9;14814:16;14849:18;14890:2;14882:6;14879:14;14876:34;;;14906:1;14903;14896:12;14876:34;14929:22;;;;14985:4;14967:16;;;14963:27;14960:47;;;15003:1;15000;14993:12;14960:47;15029:22;;:::i;:::-;15082:2;15076:9;15110:2;15100:8;15097:16;15094:36;;;15126:1;15123;15116:12;15094:36;15153:55;15200:7;15189:8;15185:2;15181:17;15153:55;:::i;:::-;15146:5;15139:70;;15247:2;15243;15239:11;15233:18;15218:33;;15260;15285:7;15260:33;:::i;:::-;15325:7;15320:2;15313:5;15309:14;15302:31;15371:2;15367;15363:11;15357:18;15342:33;;15384;15409:7;15384:33;:::i;:::-;15449:7;15444:2;15437:5;15433:14;15426:31;15495:2;15491;15487:11;15481:18;15466:33;;15508;15533:7;15508:33;:::i;:::-;15573:7;15568:2;15561:5;15557:14;15550:31;15628:3;15624:2;15620:12;15614:19;15608:3;15601:5;15597:15;15590:44;15653:5;15643:15;;;;;14612:1052;;;;:::o;15669:287::-;15798:3;15836:6;15830:13;15852:66;15911:6;15906:3;15899:4;15891:6;15887:17;15852:66;:::i;:::-;15934:16;;;;;15669:287;-1:-1:-1;;15669:287:113:o;15961:1467::-;16085:3;16079:10;16112:18;16104:6;16101:30;16098:56;;;16134:18;;:::i;:::-;16163:96;16252:6;16212:38;16244:4;16238:11;16212:38;:::i;:::-;16206:4;16163:96;:::i;:::-;16314:4;;16378:2;16367:14;;16395:1;16390:781;;;;17215:1;17232:6;17229:89;;;-1:-1:-1;17284:19:113;;;17278:26;17229:89;8383:66;8374:1;8370:11;;;8366:84;8362:89;8352:100;8458:1;8454:11;;;8349:117;17331:81;;16360:1062;;16390:781;7644:1;7637:14;;;7681:4;7668:18;;-1:-1:-1;;16426:79:113;;;16602:236;16616:7;16613:1;16610:14;16602:236;;;16705:19;;;16699:26;16684:42;;16797:27;;;;16765:1;16753:14;;;;16632:19;;16602:236;;;16606:3;16866:6;16857:7;16854:19;16851:261;;;16927:19;;;16921:26;17028:66;17010:1;17006:14;;;17022:3;17002:24;16998:97;16994:102;16979:118;16964:134;;16851:261;-1:-1:-1;;;;;17158:1:113;17142:14;;;17138:22;17125:36;;-1:-1:-1;15961:1467:113:o",
    "linkReferences": {},
    "immutableReferences": {
      "10": [
        {
          "start": 300,
          "length": 32
        },
        {
          "start": 405,
          "length": 32
        },
        {
          "start": 573,
          "length": 32
        },
        {
          "start": 716,
          "length": 32
        },
        {
          "start": 831,
          "length": 32
        },
        {
          "start": 939,
          "length": 32
        },
        {
          "start": 1553,
          "length": 32
        },
        {
          "start": 1786,
          "length": 32
        },
        {
          "start": 1975,
          "length": 32
        },
        {
          "start": 2601,
          "length": 32
        },
        {
          "start": 2769,
          "length": 32
        },
        {
          "start": 2906,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "ORACLE()": "38013f02",
    "decodeRequestData(bytes32)": "4d610a46",
    "disputeEscalated(bytes32)": "7fadb88d",
    "disputeResponse(bytes32,bytes32,address,address)": "98660c18",
    "finalizeRequest(bytes32,address)": "309de607",
    "moduleName()": "93f0899a",
    "onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))": "34837c29",
    "oracle()": "7dc0d1d0",
    "requestData(bytes32)": "3661346b",
    "setupRequest(bytes32,bytes)": "2e76be2a"
  },
  "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\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"DisputeStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"ResponseDisputed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"contract IAccountingExtension\",\"name\":\"accountingExtension\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"bondToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bondSize\",\"type\":\"uint256\"}],\"internalType\":\"struct ICircuitResolverModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"disputeEscalated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"disputeResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"responseId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IOracle.Dispute\",\"name\":\"_dispute\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"responseId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IOracle.Dispute\",\"name\":\"_dispute\",\"type\":\"tuple\"}],\"name\":\"onDisputeStatusChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"requestData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_requestData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"setupRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DisputeStatusChanged(bytes32,bytes32,address,address,uint8)\":{\"params\":{\"_disputer\":\"The address of the disputed\",\"_proposer\":\"The address of the proposer\",\"_requestId\":\"The id of the request\",\"_responseId\":\"The id of the response\",\"_status\":\"The new status of the dispute\"}},\"RequestFinalized(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request that was finalized\"}},\"ResponseDisputed(bytes32,bytes32,address,address)\":{\"params\":{\"_disputer\":\"The address of the disputed\",\"_proposer\":\"The address of the proposer\",\"_requestId\":\"The id of the request created\",\"_responseId\":\"The id of the response disputed\"}}},\"kind\":\"dev\",\"methods\":{\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The ID of the request\"},\"returns\":{\"_params\":\"The decoded parameters of the request\"}},\"disputeEscalated(bytes32)\":{\"params\":{\"_disputeId\":\"The ID of the dispute being escalated\"}},\"disputeResponse(bytes32,bytes32,address,address)\":{\"params\":{\"_disputer\":\"The address of the user who disputed the response\",\"_proposer\":\"The address of the user who proposed the disputed response\",\"_requestId\":\"The ID of the request whose response is disputed\",\"_responseId\":\"The ID of the response being disputed\"},\"returns\":{\"_dispute\":\"The dispute on the proposed response\"}},\"finalizeRequest(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request being finalized\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))\":{\"params\":{\"_dispute\":\"The dispute data\",\"_disputeId\":\"The id of the dispute\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}]},\"events\":{\"DisputeStatusChanged(bytes32,bytes32,address,address,uint8)\":{\"notice\":\"Emitted when a dispute status is updated\"},\"RequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"},\"ResponseDisputed(bytes32,bytes32,address,address)\":{\"notice\":\"Emitted when a response is disputed\"}},\"kind\":\"user\",\"methods\":{\"decodeRequestData(bytes32)\":{\"notice\":\"Returns the decoded data for a request\"},\"disputeEscalated(bytes32)\":{\"notice\":\"Called by the oracle when a dispute has been escalated.\"},\"disputeResponse(bytes32,bytes32,address,address)\":{\"notice\":\"Called by the oracle when a dispute has been made on a response. Bonds the tokens of the disputer.\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes a given request and executes any additional logic set by the chosen modules\"},\"moduleName()\":{\"notice\":\"Returns the name of the module.\"},\"onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))\":{\"notice\":\"Callback executed after a response to a dispute is received by the oracle\"},\"oracle()\":{\"notice\":\"Returns the address of the oracle\"},\"requestData(bytes32)\":{\"notice\":\"Returns the data of the request associated with the provided id\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/contracts/modules/dispute/CircuitResolverModule.sol\":\"CircuitResolverModule\"},\"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/contracts/Module.sol\":{\"keccak256\":\"0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41\",\"dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7\"]},\"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\"]},\"solidity/contracts/modules/dispute/CircuitResolverModule.sol\":{\"keccak256\":\"0x74425fa7e8438f28a23c2ec3e3702cb7102107d8232df7763f40e65bfa538703\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c553775d362528d5150cca76010bdccf199ff583775262f9cbc13c4465cbf5db\",\"dweb:/ipfs/QmRgK1KXtHdErTEW3qB3LaehMitwZULUtPZr2ULefaiERz\"]},\"solidity/interfaces/extensions/IAccountingExtension.sol\":{\"keccak256\":\"0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0\",\"dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5\"]},\"solidity/interfaces/modules/dispute/ICircuitResolverModule.sol\":{\"keccak256\":\"0xcf0ba4a39bef5ac909b4e8cd9f099e79bbcff6f79f65acc1233cd436bbfa3a76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c70aa0288fd53cad7867ee778b97ad5d5eabde96596fa451902a6908e34bd642\",\"dweb:/ipfs/QmR4hMs57ehRaCGRnxLYr9KAqT2tAK6XrjypggZHYxkZrd\"]}},\"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": "Module_OnlyOracle"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "_status",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DisputeStatusChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ResponseDisputed",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ORACLE",
          "outputs": [
            {
              "internalType": "contract IOracle",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct ICircuitResolverModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes",
                  "name": "callData",
                  "type": "bytes"
                },
                {
                  "internalType": "address",
                  "name": "verifier",
                  "type": "address"
                },
                {
                  "internalType": "contract IAccountingExtension",
                  "name": "accountingExtension",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "bondToken",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "bondSize",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "disputeEscalated"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "disputeResponse",
          "outputs": [
            {
              "internalType": "struct IOracle.Dispute",
              "name": "_dispute",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "responseId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "enum IOracle.DisputeStatus",
                  "name": "status",
                  "type": "uint8"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [],
          "stateMutability": "pure",
          "type": "function",
          "name": "moduleName",
          "outputs": [
            {
              "internalType": "string",
              "name": "_moduleName",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            },
            {
              "internalType": "struct IOracle.Dispute",
              "name": "_dispute",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "responseId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "enum IOracle.DisputeStatus",
                  "name": "status",
                  "type": "uint8"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "onDisputeStatusChange"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "oracle",
          "outputs": [
            {
              "internalType": "address",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "_requestData",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setupRequest"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The ID of the request"
            },
            "returns": {
              "_params": "The decoded parameters of the request"
            }
          },
          "disputeEscalated(bytes32)": {
            "params": {
              "_disputeId": "The ID of the dispute being escalated"
            }
          },
          "disputeResponse(bytes32,bytes32,address,address)": {
            "params": {
              "_disputer": "The address of the user who disputed the response",
              "_proposer": "The address of the user who proposed the disputed response",
              "_requestId": "The ID of the request whose response is disputed",
              "_responseId": "The ID of the response being disputed"
            },
            "returns": {
              "_dispute": "The dispute on the proposed response"
            }
          },
          "finalizeRequest(bytes32,address)": {
            "params": {
              "_finalizer": "The address that initiated the finalization",
              "_requestId": "The ID of the request being finalized"
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))": {
            "params": {
              "_dispute": "The dispute data",
              "_disputeId": "The id of the dispute"
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "decodeRequestData(bytes32)": {
            "notice": "Returns the decoded data for a request"
          },
          "disputeEscalated(bytes32)": {
            "notice": "Called by the oracle when a dispute has been escalated."
          },
          "disputeResponse(bytes32,bytes32,address,address)": {
            "notice": "Called by the oracle when a dispute has been made on a response. Bonds the tokens of the disputer."
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes a given request and executes any additional logic set by the chosen modules"
          },
          "moduleName()": {
            "notice": "Returns the name of the module."
          },
          "onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))": {
            "notice": "Callback executed after a response to a dispute is received by the oracle"
          },
          "oracle()": {
            "notice": "Returns the address of the oracle"
          },
          "requestData(bytes32)": {
            "notice": "Returns the data of the request associated with the provided id"
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          }
        },
        "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/modules/dispute/CircuitResolverModule.sol": "CircuitResolverModule"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol": {
        "keccak256": "0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf",
        "urls": [
          "bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41",
          "dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7"
        ],
        "license": "MIT"
      },
      "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"
      },
      "solidity/contracts/modules/dispute/CircuitResolverModule.sol": {
        "keccak256": "0x74425fa7e8438f28a23c2ec3e3702cb7102107d8232df7763f40e65bfa538703",
        "urls": [
          "bzz-raw://c553775d362528d5150cca76010bdccf199ff583775262f9cbc13c4465cbf5db",
          "dweb:/ipfs/QmRgK1KXtHdErTEW3qB3LaehMitwZULUtPZr2ULefaiERz"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IAccountingExtension.sol": {
        "keccak256": "0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e",
        "urls": [
          "bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0",
          "dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/modules/dispute/ICircuitResolverModule.sol": {
        "keccak256": "0xcf0ba4a39bef5ac909b4e8cd9f099e79bbcff6f79f65acc1233cd436bbfa3a76",
        "urls": [
          "bzz-raw://c70aa0288fd53cad7867ee778b97ad5d5eabde96596fa451902a6908e34bd642",
          "dweb:/ipfs/QmR4hMs57ehRaCGRnxLYr9KAqT2tAK6XrjypggZHYxkZrd"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/contracts/modules/dispute/CircuitResolverModule.sol",
    "id": 37469,
    "exportedSymbols": {
      "CircuitResolverModule": [
        37468
      ],
      "ICircuitResolverModule": [
        43131
      ],
      "IModule": [
        1782
      ],
      "IOracle": [
        2282
      ],
      "Module": [
        98
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:3419:43",
    "nodes": [
      {
        "id": 37178,
        "nodeType": "PragmaDirective",
        "src": "32:24:43",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 37181,
        "nodeType": "ImportDirective",
        "src": "104:102:43",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 37469,
        "sourceUnit": 99,
        "symbolAliases": [
          {
            "foreign": {
              "id": 37179,
              "name": "Module",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 98,
              "src": "112:6:43",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 37180,
              "name": "IModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1782,
              "src": "120:7:43",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 37183,
        "nodeType": "ImportDirective",
        "src": "207:96:43",
        "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": 37469,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 37182,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "215:7:43",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 37185,
        "nodeType": "ImportDirective",
        "src": "305:102:43",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/dispute/ICircuitResolverModule.sol",
        "file": "../../../interfaces/modules/dispute/ICircuitResolverModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 37469,
        "sourceUnit": 43132,
        "symbolAliases": [
          {
            "foreign": {
              "id": 37184,
              "name": "ICircuitResolverModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 43131,
              "src": "313:22:43",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 37468,
        "nodeType": "ContractDefinition",
        "src": "409:3041:43",
        "nodes": [
          {
            "id": 37199,
            "nodeType": "FunctionDefinition",
            "src": "478:47:43",
            "nodes": [],
            "body": {
              "id": 37198,
              "nodeType": "Block",
              "src": "523:2:43",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 37195,
                    "name": "_oracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 37192,
                    "src": "514:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  }
                ],
                "id": 37196,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 37194,
                  "name": "Module",
                  "nameLocations": [
                    "507:6:43"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "507:6:43"
                },
                "nodeType": "ModifierInvocation",
                "src": "507:15:43"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 37193,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37192,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "498:7:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37199,
                  "src": "490:15:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracle_$2282",
                    "typeString": "contract IOracle"
                  },
                  "typeName": {
                    "id": 37191,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37190,
                      "name": "IOracle",
                      "nameLocations": [
                        "490:7:43"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2282,
                      "src": "490:7:43"
                    },
                    "referencedDeclaration": 2282,
                    "src": "490:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "489:17:43"
            },
            "returnParameters": {
              "id": 37197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "523:0:43"
            },
            "scope": 37468,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 37203,
            "nodeType": "VariableDeclaration",
            "src": "529:80:43",
            "nodes": [],
            "constant": false,
            "mutability": "mutable",
            "name": "_correctResponses",
            "nameLocation": "592:17:43",
            "scope": 37468,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
              "typeString": "mapping(bytes32 => bytes)"
            },
            "typeName": {
              "id": 37202,
              "keyName": "_requestId",
              "keyNameLocation": "545:10:43",
              "keyType": {
                "id": 37200,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "537:7:43",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "529:53:43",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                "typeString": "mapping(bytes32 => bytes)"
              },
              "valueName": "_correctResponse",
              "valueNameLocation": "565:16:43",
              "valueType": {
                "id": 37201,
                "name": "bytes",
                "nodeType": "ElementaryTypeName",
                "src": "559:5:43",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "id": 37212,
            "nodeType": "FunctionDefinition",
            "src": "640:113:43",
            "nodes": [],
            "body": {
              "id": 37211,
              "nodeType": "Block",
              "src": "712:41:43",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "hexValue": "436972637569745265736f6c7665724d6f64756c65",
                    "id": 37209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "725:23:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_9ded9543382f02b5f4692d7b6e292e725be33f2415f6f5d78c7ebba0d27d1a7f",
                      "typeString": "literal_string \"CircuitResolverModule\""
                    },
                    "value": "CircuitResolverModule"
                  },
                  "functionReturnParameters": 37208,
                  "id": 37210,
                  "nodeType": "Return",
                  "src": "718:30:43"
                }
              ]
            },
            "baseFunctions": [
              1781
            ],
            "documentation": {
              "id": 37204,
              "nodeType": "StructuredDocumentation",
              "src": "614:23:43",
              "text": "@inheritdoc IModule"
            },
            "functionSelector": "93f0899a",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "moduleName",
            "nameLocation": "649:10:43",
            "parameters": {
              "id": 37205,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "659:2:43"
            },
            "returnParameters": {
              "id": 37208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37207,
                  "mutability": "mutable",
                  "name": "_moduleName",
                  "nameLocation": "699:11:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37212,
                  "src": "685:25:43",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 37206,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "685:6:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "684:27:43"
            },
            "scope": 37468,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 37233,
            "nodeType": "FunctionDefinition",
            "src": "798:179:43",
            "nodes": [],
            "body": {
              "id": 37232,
              "nodeType": "Block",
              "src": "900:77:43",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 37230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 37221,
                      "name": "_params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37219,
                      "src": "906:7:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                        "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 37224,
                            "name": "requestData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14,
                            "src": "927:11:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                              "typeString": "mapping(bytes32 => bytes storage ref)"
                            }
                          },
                          "id": 37226,
                          "indexExpression": {
                            "id": 37225,
                            "name": "_requestId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37215,
                            "src": "939:10:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "927:23:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        },
                        {
                          "components": [
                            {
                              "id": 37227,
                              "name": "RequestParameters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43091,
                              "src": "953:17:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43091_storage_ptr_$",
                                "typeString": "type(struct ICircuitResolverModule.RequestParameters storage pointer)"
                              }
                            }
                          ],
                          "id": 37228,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "952:19:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43091_storage_ptr_$",
                            "typeString": "type(struct ICircuitResolverModule.RequestParameters storage pointer)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43091_storage_ptr_$",
                            "typeString": "type(struct ICircuitResolverModule.RequestParameters storage pointer)"
                          }
                        ],
                        "expression": {
                          "id": 37222,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "916:3:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 37223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "920:6:43",
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "src": "916:10:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 37229,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "916:56:43",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                        "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                      }
                    },
                    "src": "906:66:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                      "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                    }
                  },
                  "id": 37231,
                  "nodeType": "ExpressionStatement",
                  "src": "906:66:43"
                }
              ]
            },
            "baseFunctions": [
              43100
            ],
            "documentation": {
              "id": 37213,
              "nodeType": "StructuredDocumentation",
              "src": "757:38:43",
              "text": "@inheritdoc ICircuitResolverModule"
            },
            "functionSelector": "4d610a46",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "807:17:43",
            "parameters": {
              "id": 37216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37215,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "833:10:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37233,
                  "src": "825:18:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 37214,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "825:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "824:20:43"
            },
            "returnParameters": {
              "id": 37220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37219,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "891:7:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37233,
                  "src": "866:32:43",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                    "typeString": "struct ICircuitResolverModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 37218,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37217,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "866:17:43"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43091,
                      "src": "866:17:43"
                    },
                    "referencedDeclaration": 43091,
                    "src": "866:17:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43091_storage_ptr",
                      "typeString": "struct ICircuitResolverModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "865:34:43"
            },
            "scope": 37468,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 37242,
            "nodeType": "FunctionDefinition",
            "src": "1022:68:43",
            "nodes": [],
            "body": {
              "id": 37241,
              "nodeType": "Block",
              "src": "1088:2:43",
              "nodes": [],
              "statements": []
            },
            "baseFunctions": [
              43130
            ],
            "documentation": {
              "id": 37234,
              "nodeType": "StructuredDocumentation",
              "src": "981:38:43",
              "text": "@inheritdoc ICircuitResolverModule"
            },
            "functionSelector": "7fadb88d",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 37239,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 37238,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "1077:10:43"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "1077:10:43"
                },
                "nodeType": "ModifierInvocation",
                "src": "1077:10:43"
              }
            ],
            "name": "disputeEscalated",
            "nameLocation": "1031:16:43",
            "parameters": {
              "id": 37237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37236,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1056:10:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37242,
                  "src": "1048:18:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 37235,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1048:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1047:20:43"
            },
            "returnParameters": {
              "id": 37240,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1088:0:43"
            },
            "scope": 37468,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 37372,
            "nodeType": "FunctionDefinition",
            "src": "1135:1316:43",
            "nodes": [],
            "body": {
              "id": 37371,
              "nodeType": "Block",
              "src": "1245:1206:43",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    37255
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37255,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "1276:7:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37371,
                      "src": "1251:32:43",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                        "typeString": "struct ICircuitResolverModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 37254,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 37253,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "1251:17:43"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 43091,
                          "src": "1251:17:43"
                        },
                        "referencedDeclaration": 43091,
                        "src": "1251:17:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$43091_storage_ptr",
                          "typeString": "struct ICircuitResolverModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37260,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 37257,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "1304:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37258,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1313:9:43",
                        "memberName": "requestId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2041,
                        "src": "1304:18:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 37256,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37233,
                      "src": "1286:17:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$43091_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct ICircuitResolverModule.RequestParameters memory)"
                      }
                    },
                    "id": 37259,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1286:37:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                      "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1251:72:43"
                },
                {
                  "assignments": [
                    37265
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37265,
                      "mutability": "mutable",
                      "name": "_response",
                      "nameLocation": "1354:9:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37371,
                      "src": "1330:33:43",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response"
                      },
                      "typeName": {
                        "id": 37264,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 37263,
                          "name": "IOracle.Response",
                          "nameLocations": [
                            "1330:7:43",
                            "1338:8:43"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2031,
                          "src": "1330:16:43"
                        },
                        "referencedDeclaration": 2031,
                        "src": "1330:16:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                          "typeString": "struct IOracle.Response"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37271,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 37268,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "1385:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37269,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1394:10:43",
                        "memberName": "responseId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2039,
                        "src": "1385:19:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 37266,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1366:6:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 37267,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1373:11:43",
                      "memberName": "getResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2118,
                      "src": "1366:18:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                      }
                    },
                    "id": 37270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1366:39:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1330:75:43"
                },
                {
                  "assignments": [
                    37273
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37273,
                      "mutability": "mutable",
                      "name": "_correctResponse",
                      "nameLocation": "1425:16:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37371,
                      "src": "1412:29:43",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 37272,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "1412:5:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37278,
                  "initialValue": {
                    "baseExpression": {
                      "id": 37274,
                      "name": "_correctResponses",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37203,
                      "src": "1444:17:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes32 => bytes storage ref)"
                      }
                    },
                    "id": 37277,
                    "indexExpression": {
                      "expression": {
                        "id": 37275,
                        "name": "_dispute",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37248,
                        "src": "1462:8:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                          "typeString": "struct IOracle.Dispute memory"
                        }
                      },
                      "id": 37276,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1471:9:43",
                      "memberName": "requestId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2041,
                      "src": "1462:18:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1444:37:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1412:69:43"
                },
                {
                  "assignments": [
                    37280
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37280,
                      "mutability": "mutable",
                      "name": "_won",
                      "nameLocation": "1492:4:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37371,
                      "src": "1487:9:43",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 37279,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1487:4:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37296,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 37295,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 37286,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "expression": {
                            "id": 37281,
                            "name": "_response",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37265,
                            "src": "1499:9:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                              "typeString": "struct IOracle.Response memory"
                            }
                          },
                          "id": 37282,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1509:8:43",
                          "memberName": "response",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2030,
                          "src": "1499:18:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 37283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1518:6:43",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "1499:25:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "expression": {
                          "id": 37284,
                          "name": "_correctResponse",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37273,
                          "src": "1528:16:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 37285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1545:6:43",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "1528:23:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1499:52:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 37294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "expression": {
                              "id": 37288,
                              "name": "_response",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37265,
                              "src": "1571:9:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                                "typeString": "struct IOracle.Response memory"
                              }
                            },
                            "id": 37289,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1581:8:43",
                            "memberName": "response",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2030,
                            "src": "1571:18:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37287,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -8,
                          "src": "1561:9:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 37290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1561:29:43",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 37292,
                            "name": "_correctResponse",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37273,
                            "src": "1604:16:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37291,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -8,
                          "src": "1594:9:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 37293,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1594:27:43",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "1561:60:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1499:122:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1487:134:43"
                },
                {
                  "condition": {
                    "id": 37297,
                    "name": "_won",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 37280,
                    "src": "1632:4:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 37350,
                    "nodeType": "Block",
                    "src": "2103:71:43",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 37344,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "2127:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37345,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2136:9:43",
                              "memberName": "requestId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2041,
                              "src": "2127:18:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 37346,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "2147:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37347,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2156:10:43",
                              "memberName": "responseId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2039,
                              "src": "2147:19:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "id": 37341,
                              "name": "ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "2111:6:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IOracle_$2282",
                                "typeString": "contract IOracle"
                              }
                            },
                            "id": 37343,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2118:8:43",
                            "memberName": "finalize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2275,
                            "src": "2111:15:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32,bytes32) external"
                            }
                          },
                          "id": 37348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2111:56:43",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 37349,
                        "nodeType": "ExpressionStatement",
                        "src": "2111:56:43"
                      }
                    ]
                  },
                  "id": 37351,
                  "nodeType": "IfStatement",
                  "src": "1628:546:43",
                  "trueBody": {
                    "id": 37340,
                    "nodeType": "Block",
                    "src": "1638:459:43",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 37303,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "1700:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37304,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1709:9:43",
                              "memberName": "requestId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2041,
                              "src": "1700:18:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 37305,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "1736:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37306,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1745:8:43",
                              "memberName": "proposer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2037,
                              "src": "1736:17:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 37307,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "1774:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37308,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1783:8:43",
                              "memberName": "disputer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2035,
                              "src": "1774:17:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 37309,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37255,
                                "src": "1809:7:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                                  "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                                }
                              },
                              "id": 37310,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1817:9:43",
                              "memberName": "bondToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43088,
                              "src": "1809:17:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              }
                            },
                            {
                              "expression": {
                                "id": 37311,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37255,
                                "src": "1845:7:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                                  "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                                }
                              },
                              "id": 37312,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1853:8:43",
                              "memberName": "bondSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43090,
                              "src": "1845:16:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 37298,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37255,
                                "src": "1646:7:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                                  "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                                }
                              },
                              "id": 37301,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1654:19:43",
                              "memberName": "accountingExtension",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43085,
                              "src": "1646:27:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                                "typeString": "contract IAccountingExtension"
                              }
                            },
                            "id": 37302,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1674:3:43",
                            "memberName": "pay",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42517,
                            "src": "1646:31:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,address,contract IERC20,uint256) external"
                            }
                          },
                          "id": 37313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "1688:10:43",
                            "1728:6:43",
                            "1763:9:43",
                            "1801:6:43",
                            "1836:7:43"
                          ],
                          "names": [
                            "_requestId",
                            "_payer",
                            "_receiver",
                            "_token",
                            "_amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "1646:224:43",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 37314,
                        "nodeType": "ExpressionStatement",
                        "src": "1646:224:43"
                      },
                      {
                        "assignments": [
                          37316
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 37316,
                            "mutability": "mutable",
                            "name": "_correctResponseId",
                            "nameLocation": "1886:18:43",
                            "nodeType": "VariableDeclaration",
                            "scope": 37340,
                            "src": "1878:26:43",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 37315,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1878:7:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 37331,
                        "initialValue": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 37319,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "1938:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37320,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1947:8:43",
                              "memberName": "disputer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2035,
                              "src": "1938:17:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 37321,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "1957:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37322,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1966:9:43",
                              "memberName": "requestId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2041,
                              "src": "1957:18:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "baseExpression": {
                                    "id": 37325,
                                    "name": "_correctResponses",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 37203,
                                    "src": "1988:17:43",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                                      "typeString": "mapping(bytes32 => bytes storage ref)"
                                    }
                                  },
                                  "id": 37328,
                                  "indexExpression": {
                                    "expression": {
                                      "id": 37326,
                                      "name": "_dispute",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 37248,
                                      "src": "2006:8:43",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                        "typeString": "struct IOracle.Dispute memory"
                                      }
                                    },
                                    "id": 37327,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "2015:9:43",
                                    "memberName": "requestId",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 2041,
                                    "src": "2006:18:43",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1988:37:43",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_storage",
                                    "typeString": "bytes storage ref"
                                  }
                                ],
                                "expression": {
                                  "id": 37323,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -1,
                                  "src": "1977:3:43",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 37324,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "1981:6:43",
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "1977:10:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 37329,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1977:49:43",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "expression": {
                              "id": 37317,
                              "name": "ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "1915:6:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IOracle_$2282",
                                "typeString": "contract IOracle"
                              }
                            },
                            "id": 37318,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1922:15:43",
                            "memberName": "proposeResponse",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2184,
                            "src": "1915:22:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (address,bytes32,bytes memory) external returns (bytes32)"
                            }
                          },
                          "id": 37330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1915:112:43",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1878:149:43"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 37335,
                                "name": "_dispute",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37248,
                                "src": "2051:8:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                  "typeString": "struct IOracle.Dispute memory"
                                }
                              },
                              "id": 37336,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2060:9:43",
                              "memberName": "requestId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2041,
                              "src": "2051:18:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 37337,
                              "name": "_correctResponseId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37316,
                              "src": "2071:18:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "id": 37332,
                              "name": "ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "2035:6:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IOracle_$2282",
                                "typeString": "contract IOracle"
                              }
                            },
                            "id": 37334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2042:8:43",
                            "memberName": "finalize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2275,
                            "src": "2035:15:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32,bytes32) external"
                            }
                          },
                          "id": 37338,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2035:55:43",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 37339,
                        "nodeType": "ExpressionStatement",
                        "src": "2035:55:43"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 37356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "2180:44:43",
                    "subExpression": {
                      "baseExpression": {
                        "id": 37352,
                        "name": "_correctResponses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37203,
                        "src": "2187:17:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 37355,
                      "indexExpression": {
                        "expression": {
                          "id": 37353,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "2205:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37354,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2214:9:43",
                        "memberName": "requestId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2041,
                        "src": "2205:18:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2187:37:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 37357,
                  "nodeType": "ExpressionStatement",
                  "src": "2180:44:43"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 37359,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "2277:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2286:9:43",
                        "memberName": "requestId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2041,
                        "src": "2277:18:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 37361,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "2316:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37362,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2325:10:43",
                        "memberName": "responseId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2039,
                        "src": "2316:19:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 37363,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "2354:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37364,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2363:8:43",
                        "memberName": "disputer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2035,
                        "src": "2354:17:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 37365,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "2390:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37366,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2399:8:43",
                        "memberName": "proposer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2037,
                        "src": "2390:17:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 37367,
                          "name": "_dispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37248,
                          "src": "2424:8:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "id": 37368,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2433:6:43",
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2044,
                        "src": "2424:15:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                          "typeString": "enum IOracle.DisputeStatus"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                          "typeString": "enum IOracle.DisputeStatus"
                        }
                      ],
                      "id": 37358,
                      "name": "DisputeStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2315,
                      "src": "2236:20:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_enum$_DisputeStatus_$2052_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,address,enum IOracle.DisputeStatus)"
                      }
                    },
                    "id": 37369,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "2265:10:43",
                      "2303:11:43",
                      "2343:9:43",
                      "2379:9:43",
                      "2415:7:43"
                    ],
                    "names": [
                      "_requestId",
                      "_responseId",
                      "_disputer",
                      "_proposer",
                      "_status"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "2236:210:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 37370,
                  "nodeType": "EmitStatement",
                  "src": "2231:215:43"
                }
              ]
            },
            "baseFunctions": [
              43124
            ],
            "documentation": {
              "id": 37243,
              "nodeType": "StructuredDocumentation",
              "src": "1094:38:43",
              "text": "@inheritdoc ICircuitResolverModule"
            },
            "functionSelector": "34837c29",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 37251,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 37250,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "1234:10:43"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "1234:10:43"
                },
                "nodeType": "ModifierInvocation",
                "src": "1234:10:43"
              }
            ],
            "name": "onDisputeStatusChange",
            "nameLocation": "1144:21:43",
            "parameters": {
              "id": 37249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37245,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 37372,
                  "src": "1166:7:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 37244,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1166:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37248,
                  "mutability": "mutable",
                  "name": "_dispute",
                  "nameLocation": "1215:8:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37372,
                  "src": "1192:31:43",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                    "typeString": "struct IOracle.Dispute"
                  },
                  "typeName": {
                    "id": 37247,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37246,
                      "name": "IOracle.Dispute",
                      "nameLocations": [
                        "1192:7:43",
                        "1200:7:43"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2045,
                      "src": "1192:15:43"
                    },
                    "referencedDeclaration": 2045,
                    "src": "1192:15:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_storage_ptr",
                      "typeString": "struct IOracle.Dispute"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1165:59:43"
            },
            "returnParameters": {
              "id": 37252,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1245:0:43"
            },
            "scope": 37468,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 37467,
            "nodeType": "FunctionDefinition",
            "src": "2496:952:43",
            "nodes": [],
            "body": {
              "id": 37466,
              "nodeType": "Block",
              "src": "2682:766:43",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    37393
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37393,
                      "mutability": "mutable",
                      "name": "_response",
                      "nameLocation": "2712:9:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37466,
                      "src": "2688:33:43",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response"
                      },
                      "typeName": {
                        "id": 37392,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 37391,
                          "name": "IOracle.Response",
                          "nameLocations": [
                            "2688:7:43",
                            "2696:8:43"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2031,
                          "src": "2688:16:43"
                        },
                        "referencedDeclaration": 2031,
                        "src": "2688:16:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                          "typeString": "struct IOracle.Response"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37398,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 37396,
                        "name": "_responseId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37377,
                        "src": "2743:11:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 37394,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "2724:6:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 37395,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2731:11:43",
                      "memberName": "getResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2118,
                      "src": "2724:18:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                      }
                    },
                    "id": 37397,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2724:31:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2688:67:43"
                },
                {
                  "assignments": [
                    37401
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37401,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "2786:7:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37466,
                      "src": "2761:32:43",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                        "typeString": "struct ICircuitResolverModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 37400,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 37399,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "2761:17:43"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 43091,
                          "src": "2761:17:43"
                        },
                        "referencedDeclaration": 43091,
                        "src": "2761:17:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$43091_storage_ptr",
                          "typeString": "struct ICircuitResolverModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37405,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 37403,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37375,
                        "src": "2814:10:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 37402,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37233,
                      "src": "2796:17:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$43091_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct ICircuitResolverModule.RequestParameters memory)"
                      }
                    },
                    "id": 37404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2796:29:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                      "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2761:64:43"
                },
                {
                  "assignments": [
                    null,
                    37407
                  ],
                  "declarations": [
                    null,
                    {
                      "constant": false,
                      "id": 37407,
                      "mutability": "mutable",
                      "name": "_correctResponse",
                      "nameLocation": "2848:16:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37466,
                      "src": "2835:29:43",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 37406,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "2835:5:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37414,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 37411,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37401,
                          "src": "2890:7:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                            "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                          }
                        },
                        "id": 37412,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2898:8:43",
                        "memberName": "callData",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43080,
                        "src": "2890:16:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 37408,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37401,
                          "src": "2868:7:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43091_memory_ptr",
                            "typeString": "struct ICircuitResolverModule.RequestParameters memory"
                          }
                        },
                        "id": 37409,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2876:8:43",
                        "memberName": "verifier",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43082,
                        "src": "2868:16:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 37410,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2885:4:43",
                      "memberName": "call",
                      "nodeType": "MemberAccess",
                      "src": "2868:21:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
                        "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
                      }
                    },
                    "id": 37413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2868:39:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
                      "typeString": "tuple(bool,bytes memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2832:75:43"
                },
                {
                  "expression": {
                    "id": 37419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 37415,
                        "name": "_correctResponses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37203,
                        "src": "2913:17:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 37417,
                      "indexExpression": {
                        "id": 37416,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37375,
                        "src": "2931:10:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2913:29:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 37418,
                      "name": "_correctResponse",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37407,
                      "src": "2945:16:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "2913:48:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 37420,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:48:43"
                },
                {
                  "assignments": [
                    37422
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 37422,
                      "mutability": "mutable",
                      "name": "_won",
                      "nameLocation": "2973:4:43",
                      "nodeType": "VariableDeclaration",
                      "scope": 37466,
                      "src": "2968:9:43",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 37421,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2968:4:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 37438,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 37437,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 37428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "expression": {
                            "id": 37423,
                            "name": "_response",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37393,
                            "src": "2980:9:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                              "typeString": "struct IOracle.Response memory"
                            }
                          },
                          "id": 37424,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2990:8:43",
                          "memberName": "response",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2030,
                          "src": "2980:18:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 37425,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2999:6:43",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2980:25:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "expression": {
                          "id": 37426,
                          "name": "_correctResponse",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37407,
                          "src": "3009:16:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 37427,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3026:6:43",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "3009:23:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2980:52:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 37436,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "expression": {
                              "id": 37430,
                              "name": "_response",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37393,
                              "src": "3052:9:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                                "typeString": "struct IOracle.Response memory"
                              }
                            },
                            "id": 37431,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3062:8:43",
                            "memberName": "response",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2030,
                            "src": "3052:18:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37429,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -8,
                          "src": "3042:9:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 37432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3042:29:43",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 37434,
                            "name": "_correctResponse",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37407,
                            "src": "3085:16:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 37433,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -8,
                          "src": "3075:9:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 37435,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3075:27:43",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "3042:60:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2980:122:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2968:134:43"
                },
                {
                  "expression": {
                    "id": 37457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 37439,
                      "name": "_dispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37387,
                      "src": "3109:8:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                        "typeString": "struct IOracle.Dispute memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 37442,
                          "name": "_disputer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37379,
                          "src": "3154:9:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 37443,
                          "name": "_responseId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37377,
                          "src": "3183:11:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 37444,
                          "name": "_proposer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37381,
                          "src": "3212:9:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 37445,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37375,
                          "src": "3240:10:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "condition": {
                            "id": 37446,
                            "name": "_won",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37422,
                            "src": "3266:4:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "expression": {
                              "expression": {
                                "id": 37450,
                                "name": "IOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2282,
                                "src": "3301:7:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IOracle_$2282_$",
                                  "typeString": "type(contract IOracle)"
                                }
                              },
                              "id": 37451,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3309:13:43",
                              "memberName": "DisputeStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2052,
                              "src": "3301:21:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$2052_$",
                                "typeString": "type(enum IOracle.DisputeStatus)"
                              }
                            },
                            "id": 37452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "3323:4:43",
                            "memberName": "Lost",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2050,
                            "src": "3301:26:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                              "typeString": "enum IOracle.DisputeStatus"
                            }
                          },
                          "id": 37453,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "3266:61:43",
                          "trueExpression": {
                            "expression": {
                              "expression": {
                                "id": 37447,
                                "name": "IOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2282,
                                "src": "3273:7:43",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IOracle_$2282_$",
                                  "typeString": "type(contract IOracle)"
                                }
                              },
                              "id": 37448,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3281:13:43",
                              "memberName": "DisputeStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2052,
                              "src": "3273:21:43",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$2052_$",
                                "typeString": "type(enum IOracle.DisputeStatus)"
                              }
                            },
                            "id": 37449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "3295:3:43",
                            "memberName": "Won",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2049,
                            "src": "3273:25:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                              "typeString": "enum IOracle.DisputeStatus"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                            "typeString": "enum IOracle.DisputeStatus"
                          }
                        },
                        {
                          "expression": {
                            "id": 37454,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -4,
                            "src": "3346:5:43",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 37455,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3352:9:43",
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "3346:15:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                            "typeString": "enum IOracle.DisputeStatus"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 37440,
                          "name": "IOracle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2282,
                          "src": "3120:7:43",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IOracle_$2282_$",
                            "typeString": "type(contract IOracle)"
                          }
                        },
                        "id": 37441,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3128:7:43",
                        "memberName": "Dispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2045,
                        "src": "3120:15:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Dispute_$2045_storage_ptr_$",
                          "typeString": "type(struct IOracle.Dispute storage pointer)"
                        }
                      },
                      "id": 37456,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "3144:8:43",
                        "3171:10:43",
                        "3202:8:43",
                        "3229:9:43",
                        "3258:6:43",
                        "3335:9:43"
                      ],
                      "names": [
                        "disputer",
                        "responseId",
                        "proposer",
                        "requestId",
                        "status",
                        "createdAt"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "3120:248:43",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                        "typeString": "struct IOracle.Dispute memory"
                      }
                    },
                    "src": "3109:259:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                      "typeString": "struct IOracle.Dispute memory"
                    }
                  },
                  "id": 37458,
                  "nodeType": "ExpressionStatement",
                  "src": "3109:259:43"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 37460,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37375,
                        "src": "3397:10:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 37461,
                        "name": "_responseId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37377,
                        "src": "3409:11:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 37462,
                        "name": "_disputer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37379,
                        "src": "3422:9:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 37463,
                        "name": "_proposer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37381,
                        "src": "3433:9:43",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 37459,
                      "name": "ResponseDisputed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2301,
                      "src": "3380:16:43",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,address)"
                      }
                    },
                    "id": 37464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3380:63:43",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 37465,
                  "nodeType": "EmitStatement",
                  "src": "3375:68:43"
                }
              ]
            },
            "baseFunctions": [
              43115
            ],
            "documentation": {
              "id": 37373,
              "nodeType": "StructuredDocumentation",
              "src": "2455:38:43",
              "text": "@inheritdoc ICircuitResolverModule"
            },
            "functionSelector": "98660c18",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 37384,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 37383,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "2629:10:43"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "2629:10:43"
                },
                "nodeType": "ModifierInvocation",
                "src": "2629:10:43"
              }
            ],
            "name": "disputeResponse",
            "nameLocation": "2505:15:43",
            "parameters": {
              "id": 37382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37375,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "2534:10:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37467,
                  "src": "2526:18:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 37374,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2526:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37377,
                  "mutability": "mutable",
                  "name": "_responseId",
                  "nameLocation": "2558:11:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37467,
                  "src": "2550:19:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 37376,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2550:7:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37379,
                  "mutability": "mutable",
                  "name": "_disputer",
                  "nameLocation": "2583:9:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37467,
                  "src": "2575:17:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 37378,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2575:7:43",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 37381,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nameLocation": "2606:9:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37467,
                  "src": "2598:17:43",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 37380,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2598:7:43",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2520:99:43"
            },
            "returnParameters": {
              "id": 37388,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 37387,
                  "mutability": "mutable",
                  "name": "_dispute",
                  "nameLocation": "2672:8:43",
                  "nodeType": "VariableDeclaration",
                  "scope": 37467,
                  "src": "2649:31:43",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                    "typeString": "struct IOracle.Dispute"
                  },
                  "typeName": {
                    "id": 37386,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 37385,
                      "name": "IOracle.Dispute",
                      "nameLocations": [
                        "2649:7:43",
                        "2657:7:43"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2045,
                      "src": "2649:15:43"
                    },
                    "referencedDeclaration": 2045,
                    "src": "2649:15:43",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_storage_ptr",
                      "typeString": "struct IOracle.Dispute"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2648:33:43"
            },
            "scope": 37468,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 37186,
              "name": "Module",
              "nameLocations": [
                "443:6:43"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 98,
              "src": "443:6:43"
            },
            "id": 37187,
            "nodeType": "InheritanceSpecifier",
            "src": "443:6:43"
          },
          {
            "baseName": {
              "id": 37188,
              "name": "ICircuitResolverModule",
              "nameLocations": [
                "451:22:43"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 43131,
              "src": "451:22:43"
            },
            "id": 37189,
            "nodeType": "InheritanceSpecifier",
            "src": "451:22:43"
          }
        ],
        "canonicalName": "CircuitResolverModule",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          37468,
          43131,
          2346,
          98,
          1782
        ],
        "name": "CircuitResolverModule",
        "nameLocation": "418:21:43",
        "scope": 37469,
        "usedErrors": [
          1745
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 43
}