{
  "contractName": "Realitio",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "template_hashes",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "question_claims",
      "outputs": [
        {
          "name": "payee",
          "type": "address"
        },
        {
          "name": "last_bond",
          "type": "uint256"
        },
        {
          "name": "queued_funds",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "arbitrator_question_fees",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "commitments",
      "outputs": [
        {
          "name": "reveal_ts",
          "type": "uint32"
        },
        {
          "name": "is_revealed",
          "type": "bool"
        },
        {
          "name": "revealed_answer",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "questions",
      "outputs": [
        {
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "finalize_ts",
          "type": "uint32"
        },
        {
          "name": "is_pending_arbitration",
          "type": "bool"
        },
        {
          "name": "bounty",
          "type": "uint256"
        },
        {
          "name": "best_answer",
          "type": "bytes32"
        },
        {
          "name": "history_hash",
          "type": "bytes32"
        },
        {
          "name": "bond",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "templates",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "arbitrator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogSetQuestionFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "template_id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "question_text",
          "type": "string"
        }
      ],
      "name": "LogNewTemplate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "template_id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "question",
          "type": "string"
        },
        {
          "indexed": true,
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "arbitrator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "timeout",
          "type": "uint32"
        },
        {
          "indexed": false,
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "indexed": false,
          "name": "nonce",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "created",
          "type": "uint256"
        }
      ],
      "name": "LogNewQuestion",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "bounty_added",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "bounty",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "LogFundAnswerBounty",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "answer",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "history_hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "bond",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "ts",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "is_commitment",
          "type": "bool"
        }
      ],
      "name": "LogNewAnswer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "answer_hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "answer",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "nonce",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "bond",
          "type": "uint256"
        }
      ],
      "name": "LogAnswerReveal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "LogNotifyOfArbitrationRequest",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "answer",
          "type": "bytes32"
        }
      ],
      "name": "LogFinalize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogClaim",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogWithdraw",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "setQuestionFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "content",
          "type": "string"
        }
      ],
      "name": "createTemplate",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "content",
          "type": "string"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "createTemplateAndAskQuestion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "template_id",
          "type": "uint256"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "askQuestion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "fundAnswerBounty",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        }
      ],
      "name": "submitAnswer",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer_hash",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        },
        {
          "name": "_answerer",
          "type": "address"
        }
      ],
      "name": "submitAnswerCommitment",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        },
        {
          "name": "bond",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerReveal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "requester",
          "type": "address"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        }
      ],
      "name": "notifyOfArbitrationRequest",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "answerer",
          "type": "address"
        }
      ],
      "name": "submitAnswerByArbitrator",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "isFinalized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getFinalAnswer",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "resultFor",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "min_timeout",
          "type": "uint32"
        },
        {
          "name": "min_bond",
          "type": "uint256"
        }
      ],
      "name": "getFinalAnswerIfMatches",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "history_hashes",
          "type": "bytes32[]"
        },
        {
          "name": "addrs",
          "type": "address[]"
        },
        {
          "name": "bonds",
          "type": "uint256[]"
        },
        {
          "name": "answers",
          "type": "bytes32[]"
        }
      ],
      "name": "claimWinnings",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_ids",
          "type": "bytes32[]"
        },
        {
          "name": "lengths",
          "type": "uint256[]"
        },
        {
          "name": "hist_hashes",
          "type": "bytes32[]"
        },
        {
          "name": "addrs",
          "type": "address[]"
        },
        {
          "name": "bonds",
          "type": "uint256[]"
        },
        {
          "name": "answers",
          "type": "bytes32[]"
        }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getContentHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getArbitrator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getOpeningTS",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getTimeout",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getFinalizeTS",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "isPendingArbitration",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBounty",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBestAnswer",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getHistoryHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBond",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001553480156200001657600080fd5b506200008d606060405190810160405280603f81526020017f7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c2081526020017f2263617465676f7279223a20222573222c20226c616e67223a20222573227d0081525062000308640100000000026401000000009004565b506200012a608060405190810160405280604f81526020017f7b227469746c65223a20222573222c202274797065223a202275696e74222c2081526020017f22646563696d616c73223a2031382c202263617465676f7279223a202225732281526020017f2c20226c616e67223a20222573227d000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620001c7608060405190810160405280605a81526020017f7b227469746c65223a20222573222c202274797065223a202273696e676c652d81526020017f73656c656374222c20226f7574636f6d6573223a205b25735d2c20226361746581526020017f676f7279223a20222573222c20226c616e67223a20222573227d00000000000081525062000308640100000000026401000000009004565b5062000264608060405190810160405280605c81526020017f7b227469746c65223a20222573222c202274797065223a20226d756c7469706c81526020017f652d73656c656374222c20226f7574636f6d6573223a205b25735d2c2022636181526020017f7465676f7279223a20222573222c20226c616e67223a20222573227d0000000081525062000308640100000000026401000000009004565b5062000301608060405190810160405280604381526020017f7b227469746c65223a20222573222c202274797065223a20226461746574696d81526020017f65222c202263617465676f7279223a20222573222c20226c616e67223a20222581526020017f73227d000000000000000000000000000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620004ca565b60015460008181526002602090815260408083204390555184519293928592918201918291908401908083835b60208310620003565780518252601f19909201916020918201910162000335565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310620003bb5780518252601f1990920191602091820191016200039a565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600383528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015620004545781810151838201526020016200043a565b50505050905090810190601f168015620004825780820380516001836020036101000a031916815260200191505b509250505060405180910390a3620004aa8160016401000000006200314a620004b382021704565b60015592915050565b600082820183811015620004c357fe5b9392505050565b6139a680620004da6000396000f3006080604052600436106101925763ffffffff60e060020a6000350416631101a0fd811461019757806312a203c31461029e5780632417395c146102e35780632518904c146102fb57806326d6c97b1461032f57806328828b1e146103475780633ccfd60b146104b95780634dc266b4146104ce5780634df6ca2a146104ef5780634e60f8831461050757806351577ea91461051f578063590158a71461053757806359245ff3146105775780636fa427421461058257806370a08231146105a3578063762c38fd146105c457806377f325df1461063a5780637f8d429e1461064b57806382ffa9f714610677578063839df9451461068f57806383bf4609146106cc5780638d552d4614610725578063924532fb1461073d57806395addb90146107555780639e63fa6a146107d15780639f1025c614610802578063a1130d041461081a578063a462fb7b146108c9578063acae8f4e146108e1578063bc525652146108f9578063d09cc57e146108c9578063d7cff98614610911578063f6a94ecb1461092e578063fe92049d14610955575b600080fd5b3480156101a357600080fd5b5060408051602060046024803582810135848102808701860190975280865261029c96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061097c9650505050505050565b005b3480156102aa57600080fd5b506102d1600435602435600160a060020a036044351663ffffffff60643516608435610cac565b60408051918252519081900360200190f35b3480156102ef57600080fd5b506102d1600435610ee9565b34801561030757600080fd5b50610313600435610efe565b60408051600160a060020a039092168252519081900360200190f35b34801561033b57600080fd5b506102d1600435610f1c565b34801561035357600080fd5b506040805160206004803580820135838102808601850190965280855261029c95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f319650505050505050565b3480156104c557600080fd5b5061029c611145565b3480156104da57600080fd5b5061029c6004356024356044356064356111c0565b3480156104fb57600080fd5b5061029c600435611660565b34801561051357600080fd5b506102d16004356116af565b34801561052b57600080fd5b506102d16004356116c1565b34801561054357600080fd5b5061054f6004356116d3565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b61029c6004356116fe565b34801561058e57600080fd5b506102d1600160a060020a036004351661195b565b3480156105af57600080fd5b506102d1600160a060020a036004351661196d565b60408051602060046024803582810135601f81018590048502860185019096528585526102d195833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561197f565b61029c600435602435604435611ca3565b34801561065757600080fd5b50610663600435612037565b604080519115158252519081900360200190f35b34801561068357600080fd5b506102d1600435612094565b34801561069b57600080fd5b506106a76004356120a9565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b3480156106d857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102d19436949293602493928401919081908401838280828437509497506120d69650505050505050565b34801561073157600080fd5b506102d1600435612270565b34801561074957600080fd5b50610663600435612286565b34801561076157600080fd5b5061076d60043561229e565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b3480156107dd57600080fd5b506107e9600435612309565b6040805163ffffffff9092168252519081900360200190f35b34801561080e57600080fd5b506107e960043561232b565b6040805160206004803580820135601f81018490048402850184019095528484526102d194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561234d565b3480156108d557600080fd5b506102d1600435612375565b3480156108ed57600080fd5b506107e96004356123ef565b34801561090557600080fd5b506102d1600435612411565b61029c600435602435604435600160a060020a0360643516612423565b34801561093a57600080fd5b5061029c600435600160a060020a036024351660443561293a565b34801561096157600080fd5b5061029c600435602435600160a060020a0360443516612d10565b60008060008060008060008b61099181612037565b15156109e7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610a66576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d815260056020818152604080842080546001820154600290920154600494859052928620948501549490930154600160a060020a039093169c509a509850909650945092505b8b51831015610bcf57610b21858d85815181101515610aca57fe5b906020019060200201518b86815181101515610ae257fe5b906020019060200201518d87815181101515610afa57fe5b906020019060200201518f88815181101515610b1257fe5b90602001906020020151612f34565b9150610b33868863ffffffff61314a16565b9550610b8a8d85888b8f88815181101515610b4a57fe5b906020019060200201518f89815181101515610b6257fe5b906020019060200201518f8a815181101515610b7a57fe5b9060200190602002015189613164565b8b519099509096508a9084908110610b9e57fe5b9060200190602002015196508b83815181101515610bb857fe5b602090810290910101519450600190920191610aaf565b8415610c3a57600160a060020a03881615610bf457610bef8d8988613294565b600095505b60008d8152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610c89565b610c548d89610c4f898b63ffffffff61314a16565b613294565b60008d8152600560205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a5250600460205260409098206005019790975550505050505050565b600085610cb881612037565b1515610d0e576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600460205260409020548614610d73576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260046020526040902060010154600160a060020a03868116911614610de7576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526004602052604090206001015463ffffffff60c060020a90910481169085161115610e61576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260046020526040902060060154831115610eca576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b6000878152600460208190526040909120015491505095945050505050565b60009081526004602052604090206003015490565b600090815260046020526040902060010154600160a060020a031690565b60009081526004602052604090206006015490565b60008080806060808080845b8e5189101561112c578e89815181101515610f5457fe5b9060200190602002015196508d89815181101515610f6e57fe5b90602001906020020151955085604051908082528060200260200182016040528015610fa4578160200160208202803883390190505b50945085604051908082528060200260200182016040528015610fd1578160200160208202803883390190505b50935085604051908082528060200260200182016040528015610ffe578160200160208202803883390190505b5092508560405190808252806020026020018201604052801561102b578160200160208202803883390190505b509150600090505b85811015611114578c8881518110151561104957fe5b90602001906020020151858281518110151561106157fe5b602090810290910101528b518c908990811061107957fe5b90602001906020020151848281518110151561109157fe5b600160a060020a039092166020928302909101909101528a518b90899081106110b657fe5b9060200190602002015183828151811015156110ce57fe5b6020908102909101015289518a90899081106110e657fe5b9060200190602002015182828151811015156110fe57fe5b6020908102909101015260019788019701611033565b611121878686868661097c565b600190980197610f3d565b611134611145565b505050505050505050505050505050565b33600081815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611186573d6000803e3d6000fd5b5060408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260046020526040812060010154819086908290819060c060020a900463ffffffff16811061122b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061126457504263ffffffff168263ffffffff16115b15156112e0576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061131957504263ffffffff168163ffffffff1611155b151561135d576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b602083106113ae5780518252601f19909201916020918201910161138f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831061144c5780518252601f19909201916020918201910161142d565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260069092529290205491975050640100000000900460ff161591506115109050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526006602052604090205463ffffffff4281169116116115a3576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600660208181526040808420600181018d9055805464ff0000000019166401000000001790558c84526004909152909120015486141561160e5760008981526004602052604090206001015461160e908a908a9060c060020a900463ffffffff16613315565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600760209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60036020526000908152604090205481565b60009081526004602052604090205490565b600560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b600081815260046020526040812060010154829190819060c060020a900463ffffffff168110611766576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156117d2576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061180b57504263ffffffff168263ffffffff16115b1515611863576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061189c57504263ffffffff168163ffffffff1611155b15156118e0576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b600084815260046020526040902060030154611902903463ffffffff61314a16565b6000858152600460209081526040918290206003018390558151348152908101929092528051339287927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a350505050565b60076020526000908152604090205481565b60006020819052908152604090205481565b6000868152600260205260408120548190819081106119e8576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310611a3b5780518252601f199092019160209182019101611a1c565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310611aa05780518252601f199092019160209182019101611a81565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b60208310611b545780518252601f199092019160209182019101611b35565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611b90818389898961338c565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015611c57578181015183820152602001611c3f565b50505050905090810190601f168015611c845780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b600083815260046020526040812060010154849190819060c060020a900463ffffffff168110611d0b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615611d77576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580611db057504263ffffffff168263ffffffff16115b1515611e08576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580611e4157504263ffffffff168163ffffffff1611155b1515611e85576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8560003411611ede576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b600081815260046020526040902060060154611f0190600263ffffffff6136ed16565b341015611f7e576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b86856000811115611ff257600082815260046020526040902060060154811015611ff2576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b612000898933346000613718565b60008981526004602052604090206001015461202c908a908a9060c060020a900463ffffffff16613315565b505050505050505050565b6000818152600460205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156120755750600063ffffffff8216115b801561208d57504263ffffffff168163ffffffff1611155b9392505050565b60009081526004602052604090206005015490565b6006602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60015460008181526002602090815260408083204390555184519293928592918201918291908401908083835b602083106121225780518252601f199092019160209182019101612103565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106121855780518252601f199092019160209182019101612166565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600383528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b8381101561221c578181015183820152602001612204565b50505050905090810190601f1680156122495780820380516001836020036101000a031916815260200191505b509250505060405180910390a361226781600163ffffffff61314a16565b60015592915050565b6000908152600460208190526040909120015490565b60009081526004602052604090206002015460ff1690565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff169391908a565b60009081526004602052604090206001015460a060020a900463ffffffff1690565b60009081526004602052604090206001015460c060020a900463ffffffff1690565b600080612359886120d6565b905061236981888888888861197f565b98975050505050505050565b60008161238181612037565b15156123d7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b50506000908152600460208190526040909120015490565b60009081526004602052604090206001015460e060020a900463ffffffff1690565b60026020526000908152604090205481565b6000848152600460205260408120600101548190819087908290819060c060020a900463ffffffff168110612490576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156124fc576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061253557504263ffffffff168263ffffffff16115b151561258d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff168015806125c657504263ffffffff168163ffffffff1611155b151561260a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8960003411612663576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b60008181526004602052604090206006015461268690600263ffffffff6136ed16565b341015612703576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8a89600081111561277757600082815260046020526040902060060154811015612777576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b8c8c34604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083106127e65780518252601f1990920191602091820191016127c7565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038a1615612829578961282b565b335b60008a81526006602052604090205490985063ffffffff16156128be576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008d81526004602052604090206001015460089060c060020a900463ffffffff160496506128f763ffffffff42811690899061389016565b60008a8152600660205260409020805463ffffffff191663ffffffff9290921691909117905561292b8d8a8a346001613718565b50505050505050505050505050565b6000838152600460205260409020600101548390600160a060020a031633146129ad576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040812060010154859190819060c060020a900463ffffffff168110612a15576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615612a81576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580612aba57504263ffffffff168263ffffffff16115b1515612b12576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580612b4b57504263ffffffff168163ffffffff1611155b1515612b8f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b86856000811115612c0357600082815260046020526040902060060154811015612c03576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b60008981526004602052604081206006015411612cb6576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260046020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b6000838152600460205260409020600101548390600160a060020a03163314612d83576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040902060020154849060ff161515612e15576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b3415612e6b576040805160e560020a62461bcd02815260206004820152601160248201527f626f6e64206d757374206265207a65726f000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612ecb576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600460205260408120600201805460ff19169055612f219086908690869080613718565b612f2d85856000613315565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b60208310612fd35780518252601f199092019160209182019101612fb4565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061301091505057506001613141565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b6020831061308e5780518252601f19909201916020918201910161306f565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506130cb91505057506000613141565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561315957fe5b8091505b5092915050565b60008060008084156131e457600086815260066020526040902054869250640100000000900460ff1615156131bc576000828152600660205260408120805464ffffffffff1916815560010155899350889250613285565b6000828152600660205260408120600181018054825464ffffffffff19169092559190915595505b858b141561327e57600160a060020a038916151561323d5760008c8152600460205260409020600301549798508897613224908b9063ffffffff61314a16565b60008d815260046020526040812060030155995061327e565b600160a060020a03888116908a161461327e57868a101561325e5789613260565b865b90506132778c8a610c4f8d8563ffffffff6138a816565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a0382166000908152602081905260409020546132bd908263ffffffff61314a16565b600160a060020a038316600081815260208181526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008381526004602081905260409091200182905561333e63ffffffff42811690839061389016565b600093845260046020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000858152600460205260408120600101548190879060c060020a900463ffffffff1615613404576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b600063ffffffff861611613462576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff8616106134e9576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0386161515613549576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b34925033600160a060020a0387161461364a57600160a060020a0386166000908152600760205260409020549150818310156135f4576040805160e560020a62461bcd028152602060048201526024808201527f4554482070726f7669646564206d75737420636f766572207175657374696f6e60448201527f2066656500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613604838363ffffffff6138a816565b600160a060020a038716600090815260208190526040902054909350613630908363ffffffff61314a16565b600160a060020a0387166000908152602081905260409020555b505060009586526004602052604090952093845560018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b600080831515613700576000915061315d565b5082820282848281151561371057fe5b041461315957fe5b600085815260046020908152604080832060050154815180840191909152808201889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f010000000000000000000000000000000000000000000000000000000000000085151502609482015281516075818303018152609590910191829052805190928291908401908083835b602083106137cb5780518252601f1990920191602091820191016137ac565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060008311156138185760008681526004602052604090206006018390555b600086815260046020908152604091829020600501839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b600082820163ffffffff808516908216101561315957fe5b6000828211156138b457fe5b5090039056007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a72305820575f9300ba9e0d6859d0bf622bf1e8b1c76e713112718d2db526c13201bb5f9f0029",
  "deployedBytecode": "0x6080604052600436106101925763ffffffff60e060020a6000350416631101a0fd811461019757806312a203c31461029e5780632417395c146102e35780632518904c146102fb57806326d6c97b1461032f57806328828b1e146103475780633ccfd60b146104b95780634dc266b4146104ce5780634df6ca2a146104ef5780634e60f8831461050757806351577ea91461051f578063590158a71461053757806359245ff3146105775780636fa427421461058257806370a08231146105a3578063762c38fd146105c457806377f325df1461063a5780637f8d429e1461064b57806382ffa9f714610677578063839df9451461068f57806383bf4609146106cc5780638d552d4614610725578063924532fb1461073d57806395addb90146107555780639e63fa6a146107d15780639f1025c614610802578063a1130d041461081a578063a462fb7b146108c9578063acae8f4e146108e1578063bc525652146108f9578063d09cc57e146108c9578063d7cff98614610911578063f6a94ecb1461092e578063fe92049d14610955575b600080fd5b3480156101a357600080fd5b5060408051602060046024803582810135848102808701860190975280865261029c96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061097c9650505050505050565b005b3480156102aa57600080fd5b506102d1600435602435600160a060020a036044351663ffffffff60643516608435610cac565b60408051918252519081900360200190f35b3480156102ef57600080fd5b506102d1600435610ee9565b34801561030757600080fd5b50610313600435610efe565b60408051600160a060020a039092168252519081900360200190f35b34801561033b57600080fd5b506102d1600435610f1c565b34801561035357600080fd5b506040805160206004803580820135838102808601850190965280855261029c95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f319650505050505050565b3480156104c557600080fd5b5061029c611145565b3480156104da57600080fd5b5061029c6004356024356044356064356111c0565b3480156104fb57600080fd5b5061029c600435611660565b34801561051357600080fd5b506102d16004356116af565b34801561052b57600080fd5b506102d16004356116c1565b34801561054357600080fd5b5061054f6004356116d3565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b61029c6004356116fe565b34801561058e57600080fd5b506102d1600160a060020a036004351661195b565b3480156105af57600080fd5b506102d1600160a060020a036004351661196d565b60408051602060046024803582810135601f81018590048502860185019096528585526102d195833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561197f565b61029c600435602435604435611ca3565b34801561065757600080fd5b50610663600435612037565b604080519115158252519081900360200190f35b34801561068357600080fd5b506102d1600435612094565b34801561069b57600080fd5b506106a76004356120a9565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b3480156106d857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102d19436949293602493928401919081908401838280828437509497506120d69650505050505050565b34801561073157600080fd5b506102d1600435612270565b34801561074957600080fd5b50610663600435612286565b34801561076157600080fd5b5061076d60043561229e565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b3480156107dd57600080fd5b506107e9600435612309565b6040805163ffffffff9092168252519081900360200190f35b34801561080e57600080fd5b506107e960043561232b565b6040805160206004803580820135601f81018490048402850184019095528484526102d194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561234d565b3480156108d557600080fd5b506102d1600435612375565b3480156108ed57600080fd5b506107e96004356123ef565b34801561090557600080fd5b506102d1600435612411565b61029c600435602435604435600160a060020a0360643516612423565b34801561093a57600080fd5b5061029c600435600160a060020a036024351660443561293a565b34801561096157600080fd5b5061029c600435602435600160a060020a0360443516612d10565b60008060008060008060008b61099181612037565b15156109e7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610a66576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d815260056020818152604080842080546001820154600290920154600494859052928620948501549490930154600160a060020a039093169c509a509850909650945092505b8b51831015610bcf57610b21858d85815181101515610aca57fe5b906020019060200201518b86815181101515610ae257fe5b906020019060200201518d87815181101515610afa57fe5b906020019060200201518f88815181101515610b1257fe5b90602001906020020151612f34565b9150610b33868863ffffffff61314a16565b9550610b8a8d85888b8f88815181101515610b4a57fe5b906020019060200201518f89815181101515610b6257fe5b906020019060200201518f8a815181101515610b7a57fe5b9060200190602002015189613164565b8b519099509096508a9084908110610b9e57fe5b9060200190602002015196508b83815181101515610bb857fe5b602090810290910101519450600190920191610aaf565b8415610c3a57600160a060020a03881615610bf457610bef8d8988613294565b600095505b60008d8152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610c89565b610c548d89610c4f898b63ffffffff61314a16565b613294565b60008d8152600560205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a5250600460205260409098206005019790975550505050505050565b600085610cb881612037565b1515610d0e576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600460205260409020548614610d73576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260046020526040902060010154600160a060020a03868116911614610de7576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526004602052604090206001015463ffffffff60c060020a90910481169085161115610e61576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260046020526040902060060154831115610eca576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b6000878152600460208190526040909120015491505095945050505050565b60009081526004602052604090206003015490565b600090815260046020526040902060010154600160a060020a031690565b60009081526004602052604090206006015490565b60008080806060808080845b8e5189101561112c578e89815181101515610f5457fe5b9060200190602002015196508d89815181101515610f6e57fe5b90602001906020020151955085604051908082528060200260200182016040528015610fa4578160200160208202803883390190505b50945085604051908082528060200260200182016040528015610fd1578160200160208202803883390190505b50935085604051908082528060200260200182016040528015610ffe578160200160208202803883390190505b5092508560405190808252806020026020018201604052801561102b578160200160208202803883390190505b509150600090505b85811015611114578c8881518110151561104957fe5b90602001906020020151858281518110151561106157fe5b602090810290910101528b518c908990811061107957fe5b90602001906020020151848281518110151561109157fe5b600160a060020a039092166020928302909101909101528a518b90899081106110b657fe5b9060200190602002015183828151811015156110ce57fe5b6020908102909101015289518a90899081106110e657fe5b9060200190602002015182828151811015156110fe57fe5b6020908102909101015260019788019701611033565b611121878686868661097c565b600190980197610f3d565b611134611145565b505050505050505050505050505050565b33600081815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611186573d6000803e3d6000fd5b5060408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260046020526040812060010154819086908290819060c060020a900463ffffffff16811061122b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061126457504263ffffffff168263ffffffff16115b15156112e0576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061131957504263ffffffff168163ffffffff1611155b151561135d576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b602083106113ae5780518252601f19909201916020918201910161138f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831061144c5780518252601f19909201916020918201910161142d565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260069092529290205491975050640100000000900460ff161591506115109050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526006602052604090205463ffffffff4281169116116115a3576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600660208181526040808420600181018d9055805464ff0000000019166401000000001790558c84526004909152909120015486141561160e5760008981526004602052604090206001015461160e908a908a9060c060020a900463ffffffff16613315565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600760209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60036020526000908152604090205481565b60009081526004602052604090205490565b600560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b600081815260046020526040812060010154829190819060c060020a900463ffffffff168110611766576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156117d2576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061180b57504263ffffffff168263ffffffff16115b1515611863576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061189c57504263ffffffff168163ffffffff1611155b15156118e0576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b600084815260046020526040902060030154611902903463ffffffff61314a16565b6000858152600460209081526040918290206003018390558151348152908101929092528051339287927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a350505050565b60076020526000908152604090205481565b60006020819052908152604090205481565b6000868152600260205260408120548190819081106119e8576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310611a3b5780518252601f199092019160209182019101611a1c565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310611aa05780518252601f199092019160209182019101611a81565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b60208310611b545780518252601f199092019160209182019101611b35565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611b90818389898961338c565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015611c57578181015183820152602001611c3f565b50505050905090810190601f168015611c845780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b600083815260046020526040812060010154849190819060c060020a900463ffffffff168110611d0b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615611d77576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580611db057504263ffffffff168263ffffffff16115b1515611e08576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580611e4157504263ffffffff168163ffffffff1611155b1515611e85576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8560003411611ede576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b600081815260046020526040902060060154611f0190600263ffffffff6136ed16565b341015611f7e576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b86856000811115611ff257600082815260046020526040902060060154811015611ff2576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b612000898933346000613718565b60008981526004602052604090206001015461202c908a908a9060c060020a900463ffffffff16613315565b505050505050505050565b6000818152600460205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156120755750600063ffffffff8216115b801561208d57504263ffffffff168163ffffffff1611155b9392505050565b60009081526004602052604090206005015490565b6006602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60015460008181526002602090815260408083204390555184519293928592918201918291908401908083835b602083106121225780518252601f199092019160209182019101612103565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106121855780518252601f199092019160209182019101612166565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600383528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b8381101561221c578181015183820152602001612204565b50505050905090810190601f1680156122495780820380516001836020036101000a031916815260200191505b509250505060405180910390a361226781600163ffffffff61314a16565b60015592915050565b6000908152600460208190526040909120015490565b60009081526004602052604090206002015460ff1690565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff169391908a565b60009081526004602052604090206001015460a060020a900463ffffffff1690565b60009081526004602052604090206001015460c060020a900463ffffffff1690565b600080612359886120d6565b905061236981888888888861197f565b98975050505050505050565b60008161238181612037565b15156123d7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b50506000908152600460208190526040909120015490565b60009081526004602052604090206001015460e060020a900463ffffffff1690565b60026020526000908152604090205481565b6000848152600460205260408120600101548190819087908290819060c060020a900463ffffffff168110612490576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156124fc576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061253557504263ffffffff168263ffffffff16115b151561258d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff168015806125c657504263ffffffff168163ffffffff1611155b151561260a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8960003411612663576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b60008181526004602052604090206006015461268690600263ffffffff6136ed16565b341015612703576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8a89600081111561277757600082815260046020526040902060060154811015612777576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b8c8c34604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083106127e65780518252601f1990920191602091820191016127c7565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038a1615612829578961282b565b335b60008a81526006602052604090205490985063ffffffff16156128be576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008d81526004602052604090206001015460089060c060020a900463ffffffff160496506128f763ffffffff42811690899061389016565b60008a8152600660205260409020805463ffffffff191663ffffffff9290921691909117905561292b8d8a8a346001613718565b50505050505050505050505050565b6000838152600460205260409020600101548390600160a060020a031633146129ad576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040812060010154859190819060c060020a900463ffffffff168110612a15576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615612a81576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580612aba57504263ffffffff168263ffffffff16115b1515612b12576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580612b4b57504263ffffffff168163ffffffff1611155b1515612b8f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b86856000811115612c0357600082815260046020526040902060060154811015612c03576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b60008981526004602052604081206006015411612cb6576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260046020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b6000838152600460205260409020600101548390600160a060020a03163314612d83576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040902060020154849060ff161515612e15576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b3415612e6b576040805160e560020a62461bcd02815260206004820152601160248201527f626f6e64206d757374206265207a65726f000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612ecb576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600460205260408120600201805460ff19169055612f219086908690869080613718565b612f2d85856000613315565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b60208310612fd35780518252601f199092019160209182019101612fb4565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061301091505057506001613141565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b6020831061308e5780518252601f19909201916020918201910161306f565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506130cb91505057506000613141565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561315957fe5b8091505b5092915050565b60008060008084156131e457600086815260066020526040902054869250640100000000900460ff1615156131bc576000828152600660205260408120805464ffffffffff1916815560010155899350889250613285565b6000828152600660205260408120600181018054825464ffffffffff19169092559190915595505b858b141561327e57600160a060020a038916151561323d5760008c8152600460205260409020600301549798508897613224908b9063ffffffff61314a16565b60008d815260046020526040812060030155995061327e565b600160a060020a03888116908a161461327e57868a101561325e5789613260565b865b90506132778c8a610c4f8d8563ffffffff6138a816565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a0382166000908152602081905260409020546132bd908263ffffffff61314a16565b600160a060020a038316600081815260208181526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008381526004602081905260409091200182905561333e63ffffffff42811690839061389016565b600093845260046020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000858152600460205260408120600101548190879060c060020a900463ffffffff1615613404576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b600063ffffffff861611613462576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff8616106134e9576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0386161515613549576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b34925033600160a060020a0387161461364a57600160a060020a0386166000908152600760205260409020549150818310156135f4576040805160e560020a62461bcd028152602060048201526024808201527f4554482070726f7669646564206d75737420636f766572207175657374696f6e60448201527f2066656500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613604838363ffffffff6138a816565b600160a060020a038716600090815260208190526040902054909350613630908363ffffffff61314a16565b600160a060020a0387166000908152602081905260409020555b505060009586526004602052604090952093845560018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b600080831515613700576000915061315d565b5082820282848281151561371057fe5b041461315957fe5b600085815260046020908152604080832060050154815180840191909152808201889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f010000000000000000000000000000000000000000000000000000000000000085151502609482015281516075818303018152609590910191829052805190928291908401908083835b602083106137cb5780518252601f1990920191602091820191016137ac565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060008311156138185760008681526004602052604090206006018390555b600086815260046020908152604091829020600501839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b600082820163ffffffff808516908216101561315957fe5b6000828211156138b457fe5b5090039056007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a72305820575f9300ba9e0d6859d0bf622bf1e8b1c76e713112718d2db526c13201bb5f9f0029",
  "sourceMap": "128:34707:7:-;;;3057:1;3032:26;;5932:564;8:9:-1;5:2;;;30:1;27;20:12;5:2;5932:564:7;5968:81;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:81;;;:::i;:::-;;6059:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:97;;;:::i;:::-;;6166:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:108;;;:::i;:::-;;6284:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:110;;;:::i;:::-;;6404:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:85;;;:::i;:::-;;128:34707;;7329:348;7441:14;;7409:7;7465:13;;;:9;:13;;;;;;;;7481:12;7465:28;;7535:25;;;7409:7;;7441:14;7552:7;;7535:25;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7535:25:7;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7535:25:7;;;7525:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7525:36:7;;;;;;;;;;;;-1:-1:-1;7503:19:7;;;:15;:19;;;;;:58;;;;7576:39;;;;;;;;;;;7595:10;;-1:-1:-1;7503:19:7;;-1:-1:-1;7576:39:7;;;;-1:-1:-1;7525:36:7;;7576:39;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7576:39:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:9;:2;7649:1;7642:6;;;;;;:9;:::i;:::-;7625:14;:26;7668:2;7329:348;-1:-1:-1;;7329:348:7:o;718:129:8:-;776:7;803:5;;;821:6;;;;814:14;;;;841:1;718:129;-1:-1:-1;;;718:129:8:o;128:34707:7:-;;;;;;;",
  "deployedSourceMap": "128:34707:7:-;;;;;;;;;-1:-1:-1;;;128:34707:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24199:2779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24199:2779:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24199:2779:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:2779:7;;;;-1:-1:-1;24199:2779:7;-1:-1:-1;24199:2779:7;;-1:-1:-1;24199:2779:7;;;;;;;;;-1:-1:-1;;24199:2779:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:2779:7;;;;-1:-1:-1;24199:2779:7;-1:-1:-1;24199:2779:7;;-1:-1:-1;24199:2779:7;;;;;;;;;-1:-1:-1;;24199:2779:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:2779:7;;;;-1:-1:-1;24199:2779:7;-1:-1:-1;24199:2779:7;;-1:-1:-1;24199:2779:7;;;;;;;;;-1:-1:-1;24199:2779:7;;-1:-1:-1;24199:2779:7;;-1:-1:-1;;;;;;;24199:2779:7;;;22224:657;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22224:657:7;;;;;-1:-1:-1;;;;;22224:657:7;;;;;;;;;;;;;;;;;;;;;;;;;;;33892:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33892:127:7;;;;;32505:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32505:135:7;;;;;;;;;-1:-1:-1;;;;;32505:135:7;;;;;;;;;;;;;;34709:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34709:123:7;;;;;31099:1003;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;31099:1003:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31099:1003:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:7;;;;-1:-1:-1;31099:1003:7;-1:-1:-1;31099:1003:7;;-1:-1:-1;31099:1003:7;;;;;;;;;-1:-1:-1;;31099:1003:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:7;;;;-1:-1:-1;31099:1003:7;-1:-1:-1;31099:1003:7;;-1:-1:-1;31099:1003:7;;;;;;;;;-1:-1:-1;;31099:1003:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:7;;;;-1:-1:-1;31099:1003:7;-1:-1:-1;31099:1003:7;;-1:-1:-1;31099:1003:7;;;;;;;;;-1:-1:-1;;31099:1003:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:7;;;;-1:-1:-1;31099:1003:7;-1:-1:-1;31099:1003:7;;-1:-1:-1;31099:1003:7;;;;;;;;;-1:-1:-1;;31099:1003:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:7;;;;-1:-1:-1;31099:1003:7;-1:-1:-1;31099:1003:7;;-1:-1:-1;31099:1003:7;;;;;;;;;-1:-1:-1;31099:1003:7;;-1:-1:-1;31099:1003:7;;-1:-1:-1;;;;;;;31099:1003:7;191:196:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:196:6;;;;16321:905:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16321:905:7;;;;;;;;;;;6770:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6770:179:7;;;;;3114:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3114:50:7;;;;;32246:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32246:138:7;;;;;3221:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3221:48:7;;;;;;;;;-1:-1:-1;;;;;3221:48:7;;;;;;;;;;;;;;;;;;;;;;;;;12367:294;;;;;;3330:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3330:59:7;-1:-1:-1;;;;;3330:59:7;;;;;56:44:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;56:44:6;-1:-1:-1;;;;;56:44:6;;;;;9857:768:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9857:768:7;;-1:-1:-1;;;9857:768:7;;-1:-1:-1;;;;;9857:768:7;;-1:-1:-1;;;;9857:768:7;;;;;;;;;;;;;;;;;;;;;;13152:410;;;;;;;;;;20437:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20437:275:7;;;;;;;;;;;;;;;;;;;;;;;34444:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34444:138:7;;;;;3275:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3275:49:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7329:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7329:348:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7329:348:7;;-1:-1:-1;7329:348:7;;-1:-1:-1;;;;;;;7329:348:7;34124:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34124:136:7;;;;;33562:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33562:151:7;;;;;3170:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3170:45:7;;;;;;;;;;;;-1:-1:-1;;;;;3170:45:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32775:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32775:133:7;;;;;;;;;;;;;;;;;;;;;;;;33035:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33035:128:7;;;;;8551:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8551:424:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8551:424:7;;;;-1:-1:-1;8551:424:7;-1:-1:-1;8551:424:7;;-1:-1:-1;8551:424:7;;;;;;;;-1:-1:-1;8551:424:7;;-1:-1:-1;;;8551:424:7;;-1:-1:-1;;;;;8551:424:7;;-1:-1:-1;;;;8551:424:7;;;;;;;;;;;;;;;;;;;;;;20927:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20927:176:7;;;;;33302:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33302:135:7;;;;;3064:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3064:44:7;;;;;14499:847;;;;;;;;-1:-1:-1;;;;;14499:847:7;;;;;18634:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18634:506:7;;;-1:-1:-1;;;;;18634:506:7;;;;;;;19736:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19736:523:7;;;;;-1:-1:-1;;;;;19736:523:7;;;;;24199:2779;24581:13;24642:17;24711:20;24996:25;25070:19;25137:9;25334:18;24369:11;5101:24;5113:11;5101;:24::i;:::-;5093:63;;;;;;;-1:-1:-1;;;;;5093:63:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;24412:21;;24436:1;-1:-1:-1;24404:86:7;;;;;-1:-1:-1;;;;;24404:86:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24597:28;;;;:15;:28;;;;;;;;:34;;;24662:38;;;24734:41;;;;;25024:9;:22;;;;;;;:35;;;;25092:34;;;;;-1:-1:-1;;;;;24597:34:7;;;;-1:-1:-1;24662:38:7;-1:-1:-1;24734:41:7;-1:-1:-1;25024:35:7;;-1:-1:-1;25092:34:7;-1:-1:-1;24597:28:7;-1:-1:-1;25156:746:7;25172:14;:21;25168:1;:25;25156:746;;;25355:97;25383:17;25402:14;25417:1;25402:17;;;;;;;;;;;;;;;;;;25421:7;25429:1;25421:10;;;;;;;;;;;;;;;;;;25433:5;25439:1;25433:8;;;;;;;;;;;;;;;;;;25443:5;25449:1;25443:8;;;;;;;;;;;;;;;;;;25355:27;:97::i;:::-;25334:118;-1:-1:-1;25494:27:7;:12;25511:9;25494:27;:16;:27;:::i;:::-;25479:42;;25560:147;25597:11;25610;25623:12;25637:5;25661;25667:1;25661:8;;;;;;;;;;;;;;;;;;25671:5;25677:1;25671:8;;;;;;;;;;;;;;;;;;25681:7;25689:1;25681:10;;;;;;;;;;;;;;;;;;25693:13;25560:19;:147::i;:::-;25831:8;;25536:171;;-1:-1:-1;25536:171:7;;-1:-1:-1;25831:5:7;;25837:1;;25831:8;;;;;;;;;;;;;;25819:20;;25873:14;25888:1;25873:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25195:3:7;;;;;25156:746;;;25917:30;;25913:992;;-1:-1:-1;;;;;26352:21:7;;;26348:137;;26393:43;26403:11;26416:5;26423:12;26393:9;:43::i;:::-;26469:1;26454:16;;26348:137;26499:28;;;;:15;:28;;;;;:42;;-1:-1:-1;;26499:42:7;-1:-1:-1;;;;;26499:42:7;;;;;-1:-1:-1;26555:38:7;;:50;;;26619:41;;:56;;;25913:992;;;26787:58;26797:11;26810:5;26817:27;:12;26834:9;26817:27;:16;:27;:::i;:::-;26787:9;:58::i;:::-;26866:28;;;;:15;:28;;;;;26859:35;;-1:-1:-1;;26859:35:7;;;;;;;;;;;;25913:992;-1:-1:-1;;;26915:22:7;;;;-1:-1:-1;26915:9:7;:22;;;;;;:35;;:55;;;;-1:-1:-1;;;;;;;24199:2779:7:o;22224:657::-;22445:7;22405:11;5101:24;5113:11;5101;:24::i;:::-;5093:63;;;;;;;-1:-1:-1;;;;;5093:63:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;22488:22;;;;:9;:22;;;;;:35;22472:51;;22464:87;;;;;-1:-1:-1;;;;;22464:87:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;22583:22;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;22569:47:7;;;22583:33;;22569:47;22561:81;;;;;-1:-1:-1;;;;;22561:81:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;22675:22;;;;:9;:22;;;;;:30;;;;-1:-1:-1;;;22675:30:7;;;;;22660:45;;;;;22652:85;;;;;-1:-1:-1;;;;;22652:85:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;22767:22;;;;:9;:22;;;;;:27;;;22755:39;;;22747:76;;;;;-1:-1:-1;;;;;22747:76:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;22840:22;;;;:9;:22;;;;;;;;:34;;;-1:-1:-1;22224:657:7;;;;;;;;:::o;33892:127::-;33957:7;33983:22;;;:9;:22;;;;;:29;;;;33892:127::o;32505:135::-;32574:7;32600:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;32600:33:7;;32505:135::o;34709:123::-;34772:7;34798:22;;;:9;:22;;;;;:27;;;;34709:123::o;31099:1003::-;31398:10;;;;31578:19;;;;31398:10;31437:639;31455:12;:19;31450:2;:24;31437:639;;;31510:12;31523:2;31510:16;;;;;;;;;;;;;;;;;;31496:30;;31553:7;31561:2;31553:11;;;;;;;;;;;;;;;;;;31540:24;;31614:2;31600:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31600:17:7;;31578:39;;31667:2;31653:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31653:17:7;;31631:39;;31720:2;31706:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31706:17:7;;31684:39;;31773:2;31759:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31759:17:7;;31737:39;;31822:1;31818:5;;31813:205;31829:2;31825:1;:6;31813:205;;;31864:11;31876:1;31864:14;;;;;;;;;;;;;;;;;;31856:2;31859:1;31856:5;;;;;;;;;;;;;;;;;;:22;31904:8;;:5;;31910:1;;31904:8;;;;;;;;;;;;;;31896:2;31899:1;31896:5;;;;;;;;;;-1:-1:-1;;;;;31896:16:7;;;:5;;;;;;;;;;:16;31938:8;;:5;;31944:1;;31938:8;;;;;;;;;;;;;;31930:2;31933:1;31930:5;;;;;;;;;;;;;;;;;;:16;31972:10;;:7;;31980:1;;31972:10;;;;;;;;;;;;;;31964:2;31967:1;31964:5;;;;;;;;;;;;;;;;;;:18;32000:3;;;;;31833;31813:205;;;32031:34;32045:3;32050:2;32054;32058;32062;32031:13;:34::i;:::-;31476:4;;;;;31437:639;;;32085:10;:8;:10::i;:::-;31099:1003;;;;;;;;;;;;;;;:::o;191:196:6:-;257:10;233:11;247:21;;;;;;;;;;;;;278:25;;;;313:24;;247:21;;257:10;313:24;;;;;247:21;;313:24;233:11;313:24;247:21;257:10;313:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;352:28:6;;;;;;;;364:10;;352:28;;;;;;;;;;191:196;:::o;16321:905:7:-;16491:19;4613:22;;;:9;:22;;;;;:30;;;16491:19;;4613:22;;16491:19;;;;-1:-1:-1;;;4613:30:7;;;;-1:-1:-1;;4605:66:7;;;;;-1:-1:-1;;;;;4605:66:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4605:66:7;;;;;;;;;;;;;;;4702:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4702:34:7;;;;;-1:-1:-1;4754:25:7;;;:54;;;4804:3;4783:25;;:11;:25;;;4754:54;4746:108;;;;;;;-1:-1:-1;;;;;4746:108:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4884:22:7;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4884:33:7;;;;4935:15;;;:44;;;4975:3;4954:25;;:10;:25;;;;4935:44;4927:86;;;;;;;-1:-1:-1;;;;;4927:86:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4927:86:7;;;;;;;;;;;;;;;16523:31;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;16523:31:7;;;;;;;;16513:42;;16523:31;;;;;16513:42;;;;16523:31;16513:42;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16513:42:7;;;;;;;;;;;;;;;;16491:64;;16616:11;16629;16642:4;16599:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16599:48:7;;;16589:59;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;16589:59:7;;;;;;;;;;;;;-1:-1:-1;16668:26:7;;;:11;:26;;;;;;:38;16589:59;;-1:-1:-1;;16668:38:7;;;;;16667:39;;-1:-1:-1;16659:94:7;;-1:-1:-1;16659:94:7;;;;-1:-1:-1;;;;;16659:94:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16771:26;;;;:11;:26;;;;;:36;:50;16817:3;16771:50;;:36;;:50;16763:99;;;;;-1:-1:-1;;;;;16763:99:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16873:26;;;;:11;:26;;;;;;;;:42;;;:51;;;16934:45;;-1:-1:-1;;16934:45:7;;;;;17002:22;;;16934:38;17002:22;;;;;;:27;;16994:35;;16990:139;;;17087:22;;;;:9;:22;;;;;:30;;;17045:73;;17087:22;;17079:6;;-1:-1:-1;;;17087:30:7;;;;17045:20;:73::i;:::-;17144:74;;;;;;;;;;;;;;;;;;;;17185:11;;17173:10;;17160:11;;17144:74;;;;;;;;;;16321:905;;;;;;;;;:::o;6770:179::-;6876:10;6851:36;;;;:24;:36;;;;;;;;;:42;;;6908:34;;;;;;;;;;;;;;;;;;;;;;6770:179;:::o;3114:50::-;;;;;;;;;;;;;:::o;32246:138::-;32316:7;32342:22;;;:9;:22;;;;;:35;;32246:138::o;3221:48::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3221:48:7;;;;;;:::o;12367:294::-;3995:18;3818:22;;;:9;:22;;;;;:30;;;:22;;3995:18;;;-1:-1:-1;;;3818:30:7;;;;-1:-1:-1;;3810:66:7;;;;;-1:-1:-1;;;;;3810:66:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:7;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:7;;;;;-1:-1:-1;4068:25:7;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;;;;;;;;;;;;-1:-1:-1;4199:22:7;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:7;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:7;;;;;;;;;;;;;;;12509:22;;;;:9;:22;;;;;:29;;;:44;;12543:9;12509:44;:33;:44;:::i;:::-;12477:22;;;;:9;:22;;;;;;;;;:29;;:76;;;12568:86;;12601:9;12568:86;;;;;;;;;;;12643:10;;12487:11;;12568:86;;;;;;;;;12367:294;;;;:::o;3330:59::-;;;;;;;;;;;;;:::o;56:44:6:-;;;;;;;;;;;;;;:::o;9857:768:7:-;10083:7;10111:22;;;:9;:22;;;;;;10083:7;;;;10111:26;-1:-1:-1;10103:58:7;;;;;-1:-1:-1;;;;;10103:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;10222:11;10235:10;10247:8;10205:51;;;;;;;;;;;;;;;-1:-1:-1;;;10205:51:7;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10205:51:7;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10205:51:7;;;10195:62;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;10195:62:7;;;;;;;;;;;;10299:70;;;;;;-1:-1:-1;;;;;10299:70:7;;;;;;;;;;;;;-1:-1:-1;;;10299:70:7;;;;;10351:10;10299:70;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10299:70:7;;;;;;;;10289:81;;10195:62;;-1:-1:-1;10299:70:7;;-1:-1:-1;10299:70:7;;-1:-1:-1;10299:70:7;;10289:81;;;-1:-1:-1;10289:81:7;10299:70;10289:81;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10289:81:7;;;;;;;;;;;;;;;;10267:103;;10381:72;10394:11;10407:12;10421:10;10433:7;10442:10;10381:12;:72::i;:::-;10531:12;10468:121;;;10496:10;-1:-1:-1;;;;;10468:121:7;10483:11;10468:121;;;;10508:11;10521:8;10545:10;10557:7;10566:10;10578:5;10585:3;10468:121;;;;;;;;;;;;-1:-1:-1;;;;;10468:121:7;-1:-1:-1;;;;;10468:121:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10468:121:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10607:11;9857:768;-1:-1:-1;;;;;;;;9857:768:7:o;13152:410::-;3995:18;3818:22;;;:9;:22;;;;;:30;;;:22;;3995:18;;;-1:-1:-1;;;3818:30:7;;;;-1:-1:-1;;3810:66:7;;;;;-1:-1:-1;;;;;3810:66:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:7;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:7;;;;;-1:-1:-1;4068:25:7;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;;;;;;;;;;;;-1:-1:-1;4199:22:7;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:7;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:7;;;;;;;;;;;;;;;13288:11;5359:1;5347:9;:13;5339:47;;;;;-1:-1:-1;;;;;5339:47:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;5419:22;;;;:9;:22;;;;;:27;;;:34;;5451:1;5419:34;:31;:34;:::i;:::-;5405:9;:49;;5397:104;;;;;-1:-1:-1;;;;;5397:104:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13344:11;13357:12;5641:1;5626:12;:16;5622:132;;;5666:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5666:43:7;5658:85;;;;;-1:-1:-1;;;;;5658:85:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;13402:70;13422:11;13435:6;13443:10;13455:9;13466:5;13402:19;:70::i;:::-;13524:22;;;;:9;:22;;;;;:30;;;13482:73;;13524:22;;13516:6;;-1:-1:-1;;;13524:30:7;;;;13482:20;:73::i;:::-;5511:1;;4339;13152:410;;;;;;:::o;20437:275::-;20505:4;20542:22;;;:9;:22;;;;;:34;;;;20596:45;;;;;-1:-1:-1;;;20542:34:7;;;;;;20596:45;;20595:46;:76;;;;-1:-1:-1;543:1:7;20646:24;;;;20595:76;:108;;;;;20698:3;20676:26;;:11;:26;;;;20595:108;20586:119;20437:275;-1:-1:-1;;;20437:275:7:o;34444:138::-;34514:7;34540:22;;;:9;:22;;;;;:35;;;;34444:138::o;3275:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7329:348::-;7441:14;;7409:7;7465:13;;;:9;:13;;;;;;;;7481:12;7465:28;;7535:25;;;7409:7;;7441:14;7552:7;;7535:25;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7535:25:7;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7535:25:7;;;7525:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7525:36:7;;;;;;;;;;;;-1:-1:-1;7503:19:7;;;:15;:19;;;;;:58;;;;7576:39;;;;;;;;;;;7595:10;;-1:-1:-1;7503:19:7;;-1:-1:-1;7576:39:7;;;;-1:-1:-1;7525:36:7;;7576:39;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7576:39:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:9;:2;7649:1;7642:9;:6;:9;:::i;:::-;7625:14;:26;7668:2;7329:348;-1:-1:-1;;7329:348:7:o;34124:136::-;34193:7;34219:22;;;:9;:22;;;;;;;;:34;;;34124:136::o;33562:151::-;33638:4;33661:22;;;:9;:22;;;;;:45;;;;;;33562:151::o;3170:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:45:7;;;;-1:-1:-1;;;3170:45:7;;;;;-1:-1:-1;;;3170:45:7;;;;;-1:-1:-1;;;3170:45:7;;;;;;;;;;;;:::o;32775:133::-;32843:6;32868:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;32868:33:7;;;;;32775:133::o;33035:128::-;33101:6;33126:22;;;:9;:22;;;;;:30;;;-1:-1:-1;;;33126:30:7;;;;;33035:128::o;8551:424::-;8813:7;8832:19;8854:23;8869:7;8854:14;:23::i;:::-;8832:45;;8894:74;8906:11;8919:8;8929:10;8941:7;8950:10;8962:5;8894:11;:74::i;:::-;8887:81;8551:424;-1:-1:-1;;;;;;;;8551:424:7:o;20927:176::-;21036:7;20996:11;5101:24;5113:11;5101;:24::i;:::-;5093:63;;;;;;;-1:-1:-1;;;;;5093:63:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21062:22:7;;;;:9;:22;;;;;;;;:34;;;20927:176::o;33302:135::-;33371:6;33396:22;;;:9;:22;;;;;:34;;;-1:-1:-1;;;33396:34:7;;;;;33302:135::o;3064:44::-;;;;;;;;;;;;;:::o;14499:847::-;14784:21;3818:22;;;:9;:22;;;;;:30;;;14784:21;;;;3818:22;;14784:21;;;;-1:-1:-1;;;3818:30:7;;;;-1:-1:-1;;3810:66:7;;;;;-1:-1:-1;;;;;3810:66:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:7;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:7;;;;;-1:-1:-1;4068:25:7;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;;;;;;;;;;;;-1:-1:-1;4199:22:7;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:7;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:7;;;;;;;;;;;;;;;14669:11;5359:1;5347:9;:13;5339:47;;;;;-1:-1:-1;;;;;5339:47:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;5419:22;;;;:9;:22;;;;;:27;;;:34;;5451:1;5419:34;:31;:34;:::i;:::-;5405:9;:49;;5397:104;;;;;-1:-1:-1;;;;;5397:104:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14725:11;14738:12;5641:1;5626:12;:16;5622:132;;;5666:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5666:43:7;5658:85;;;;;-1:-1:-1;;;;;5658:85:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;14835:11;14848;14861:9;14818:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14818:53:7;;;14808:64;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;14808:64:7;;;;;;;;;;;-1:-1:-1;;;;;;;;;14902:25:7;;;14901:52;;14944:9;14901:52;;;14931:10;14901:52;680:1;14972:26;;;:11;:26;;;;;:36;14882:71;;-1:-1:-1;14972:36:7;;:63;14964:109;;;;;-1:-1:-1;;;;;14964:109:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15112:22;;;;:9;:22;;;;;:30;;;808:1;;-1:-1:-1;;;15112:30:7;;:57;:30;:57;;-1:-1:-1;15218:35:7;:15;15225:3;15218:15;;;15112:57;;15218:15;:35;:::i;:::-;15179:26;;;;:11;:26;;;;;:74;;-1:-1:-1;;15179:74:7;;;;;;;;;;;;15264;15284:11;15179:26;15312:8;15322:9;-1:-1:-1;15264:19:7;:74::i;:::-;5511:1;;4339;14499:847;;;;;;;;;;:::o;18634:506::-;3474:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3474:33:7;3460:10;:47;3452:89;;;;;-1:-1:-1;;;;;3452:89:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3995:18;3818:22;;;:9;:22;;;;;:30;;;:22;;3995:18;;;-1:-1:-1;;;3818:30:7;;;;-1:-1:-1;;3810:66:7;;;;;-1:-1:-1;;;;;3810:66:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:7;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;-1:-1:-1;;;;;;;;;;;3886:99:7;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:7;;;;;-1:-1:-1;4068:25:7;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;-1:-1:-1;;;;;;;;;;;4060:109:7;;;;;;;;;;;;;;;-1:-1:-1;4199:22:7;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:7;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:7;;;;;;;;;;;;;;;18843:11;18856:12;5641:1;5626:12;:16;5622:132;;;5666:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5666:43:7;5658:85;;;;;-1:-1:-1;;;;;5658:85:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;18931:1;18901:22;;;:9;:22;;;;;:27;;;:31;18893:110;;;;;-1:-1:-1;;;;;18893:110:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19013:22;;;;:9;:22;;;;;;:45;;:52;;-1:-1:-1;;19013:52:7;19061:4;19013:52;;;19080:53;-1:-1:-1;;;;;19080:53:7;;;19023:11;;19080:53;;19013:22;19080:53;4339:1;;3551;;;18634:506;;;;:::o;19736:523::-;3474:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3474:33:7;3460:10;:47;3452:89;;;;;-1:-1:-1;;;;;3452:89:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;4425:22;;;;:9;:22;;;;;:45;;;19894:11;;4425:45;;4417:94;;;;;;;-1:-1:-1;;;;;4417:94:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5224:9;:14;5216:44;;;;;-1:-1:-1;;;;;5216:44:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19962:24:7;;;;19954:62;;;;;-1:-1:-1;;;;;19954:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;20031:32;;20056:6;;20043:11;;20031:32;;;;;20122:5;20074:22;;;:9;:22;;;;;:45;;:53;;-1:-1:-1;;20074:53:7;;;20137:60;;20084:11;;20170:6;;20178:8;;20122:5;20137:19;:60::i;:::-;20207:44;20228:11;20241:6;20249:1;20207:20;:44::i;:::-;3551:1;19736:523;;;;:::o;27187:549::-;27417:56;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27417:56:7;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;27417:56:7;;;;;;;;27407:67;;27366:4;;27417:56;;;27407:67;;;;;27417:56;27407:67;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;27407:67:7;;;;;;;;;;27386:88;;27382:131;;-1:-1:-1;27382:131:7;;-1:-1:-1;;27382:131:7;-1:-1:-1;27498:4:7;27491:11;;27382:131;27557:57;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27557:57:7;;;;;;;27608:5;27557:57;;;;;;22:32:-1;26:21;;;22:32;6:49;;27557:57:7;;;;;;;;27547:68;;27557:57;;;;;27547:68;;;;27557:57;27547:68;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;27547:68:7;;;;;;;;;;27526:89;;27522:133;;-1:-1:-1;27522:133:7;;-1:-1:-1;;27522:133:7;-1:-1:-1;27639:5:7;27632:12;;27522:133;27665:64;;;-1:-1:-1;;;;;27665:64:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27187:549;;;;;;;;:::o;718:129:8:-;776:7;803:5;;;821:6;;;;814:14;;;;841:1;834:8;;718:129;;;;;;:::o;27742:2412:7:-;27968:7;27977;28214:21;29692:27;28185:13;28181:482;;;28360:26;;;;:11;:26;;;;;:38;:26;;-1:-1:-1;28360:38:7;;;;;28359:39;28355:298;;;28425:26;;;;:11;:26;;;;;28418:33;;-1:-1:-1;;28418:33:7;;;;;;28477:12;;-1:-1:-1;28491:5:7;;-1:-1:-1;28469:28:7;;28355:298;28545:26;;;;:11;:26;;;;;:42;;;;;28605:33;;-1:-1:-1;;28605:33:7;;;;;;;;28545:42;-1:-1:-1;28355:298:7;28677:21;;;28673:1435;;;-1:-1:-1;;;;;28719:21:7;;;28715:1382;;;28951:22;;;;:9;:22;;;;;:29;;;28897:4;;-1:-1:-1;28897:4:7;;28934:47;;:12;;:47;:16;:47;:::i;:::-;29031:1;28999:22;;;:9;:22;;;;;:29;;:33;28919:62;-1:-1:-1;28715:1382:7;;;-1:-1:-1;;;;;29058:13:7;;;;;;;29054:1043;;29739:4;29723:12;:20;;29722:44;;29754:12;29722:44;;;29747:4;29722:44;29692:74;-1:-1:-1;29849:68:7;29859:11;29872:5;29879:37;:12;29692:74;29879:37;:16;:37;:::i;29849:68::-;30025:4;30017:12;;30062:19;30047:34;;29054:1043;30126:12;30140:5;30118:28;;;;27742:2412;;;;;;;;;;;;;;:::o;26984:197::-;-1:-1:-1;;;;;27097:16:7;;:9;:16;;;;;;;;;;;:27;;27118:5;27097:27;:20;:27;:::i;:::-;-1:-1:-1;;;;;27078:16:7;;:9;:16;;;;;;;;;;;;:46;;;;27139:35;;;;;;;27078:16;;27148:11;;27139:35;;;;;;;;;;26984:197;;;:::o;17916:237::-;18027:22;;;;:9;:22;;;;;;;;:34;:43;;;18117:29;:15;18124:3;18117:15;;;18133:12;;18117:15;:29;:::i;:::-;18080:22;;;;:9;:22;;;;;;:34;;:66;;;;;;;-1:-1:-1;;;18080:66:7;;;;;;;;;;;;-1:-1:-1;;17916:237:7:o;10631:1487::-;11102:14;3673:22;;;:9;:22;;;;;:30;;;11102:14;;3673:22;;-1:-1:-1;;;3673:30:7;;;;:35;3665:71;;;;;-1:-1:-1;;;;;3665:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;10913:1;10903:11;;;;10895:48;;;;;-1:-1:-1;;;;;10895:48:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;10972:8;10962:18;;;;10954:65;;;;;-1:-1:-1;;;;;10954:65:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11038:26:7;;;;11030:61;;;;;-1:-1:-1;;;;;11030:61:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;11119:9;;-1:-1:-1;11520:10:7;-1:-1:-1;;;;;11520:24:7;;;11516:324;;-1:-1:-1;;;;;11583:36:7;;;;;;:24;:36;;;;;;;-1:-1:-1;11641:22:7;;;;11633:71;;;;;-1:-1:-1;;;;;11633:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11728:24;:6;11739:12;11728:24;:10;:24;:::i;:::-;-1:-1:-1;;;;;11790:21:7;;:9;:21;;;;;;;;;;;11719:33;;-1:-1:-1;11790:39:7;;11816:12;11790:39;:25;:39;:::i;:::-;-1:-1:-1;;;;;11766:21:7;;:9;:21;;;;;;;;;;:63;11516:324;-1:-1:-1;;11850:22:7;;;;:9;:22;;;;;;:50;;;11910:33;;;:46;;-1:-1:-1;;11910:46:7;-1:-1:-1;;;;;11910:46:7;;;;;;;;-1:-1:-1;;11966:46:7;-1:-1:-1;;;11966:46:7;;;;;;12022:40;;-1:-1:-1;;;12022:40:7;;;;;;;;;;;12072:29;;:38;10631:1487::o;158:173:8:-;216:7;;235:6;;231:35;;;258:1;251:8;;;;231:35;-1:-1:-1;283:5:8;;;287:1;283;:5;301;;;;;;;;:10;294:18;;;17232:678:7;17396:24;17450:22;;;:9;:22;;;;;;;;:35;;;17433:109;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17433:109:7;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;17433:109:7;;;;;;;;17423:120;;17433:109;;;;17423:120;;;;;17433:109;17423:120;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;17423:120:7;;;;;;;;;;;;;;;;17396:147;;17658:1;17651:4;:8;17647:73;;;17675:22;;;;:9;:22;;;;;:27;;:34;;;17647:73;17729:22;;;;:9;:22;;;;;;;;;:35;;:54;;;17799:104;;;;;;;;;;;;;;;;;17884:3;17799:104;;;;;;;;;;;;;-1:-1:-1;;;;;17799:104:7;;;17739:11;;17799:104;;;;;;;;;17232:678;;;;;;:::o;254:125:9:-;310:6;335:5;;;353:6;;;;;;;;;346:14;;;604:110:8;662:7;684:6;;;;677:14;;;;-1:-1:-1;704:5:8;;;604:110::o",
  "source": "pragma solidity 0.4.25;\n\nimport './RealitioSafeMath256.sol';\nimport './RealitioSafeMath32.sol';\nimport './BalanceHolder.sol';\n\n\ncontract Realitio is BalanceHolder {\n\n    using RealitioSafeMath256 for uint256;\n    using RealitioSafeMath32 for uint32;\n\n    address constant NULL_ADDRESS = address(0);\n\n    // History hash when no history is created, or history has been cleared\n    bytes32 constant NULL_HASH = bytes32(0);\n\n    // An unitinalized finalize_ts for a question will indicate an unanswered question.\n    uint32 constant UNANSWERED = 0;\n\n    // An unanswered reveal_ts for a commitment will indicate that it does not exist.\n    uint256 constant COMMITMENT_NON_EXISTENT = 0;\n\n    // Commit->reveal timeout is 1/8 of the question timeout (rounded down).\n    uint32 constant COMMITMENT_TIMEOUT_RATIO = 8;\n\n    event LogSetQuestionFee(\n        address arbitrator,\n        uint256 amount\n    );\n\n    event LogNewTemplate(\n        uint256 indexed template_id,\n        address indexed user, \n        string question_text\n    );\n\n    event LogNewQuestion(\n        bytes32 indexed question_id,\n        address indexed user, \n        uint256 template_id,\n        string question,\n        bytes32 indexed content_hash,\n        address arbitrator, \n        uint32 timeout,\n        uint32 opening_ts,\n        uint256 nonce,\n        uint256 created\n    );\n\n    event LogFundAnswerBounty(\n        bytes32 indexed question_id,\n        uint256 bounty_added,\n        uint256 bounty,\n        address indexed user \n    );\n\n    event LogNewAnswer(\n        bytes32 answer,\n        bytes32 indexed question_id,\n        bytes32 history_hash,\n        address indexed user,\n        uint256 bond,\n        uint256 ts,\n        bool is_commitment\n    );\n\n    event LogAnswerReveal(\n        bytes32 indexed question_id, \n        address indexed user, \n        bytes32 indexed answer_hash, \n        bytes32 answer, \n        uint256 nonce, \n        uint256 bond\n    );\n\n    event LogNotifyOfArbitrationRequest(\n        bytes32 indexed question_id,\n        address indexed user \n    );\n\n    event LogFinalize(\n        bytes32 indexed question_id,\n        bytes32 indexed answer\n    );\n\n    event LogClaim(\n        bytes32 indexed question_id,\n        address indexed user,\n        uint256 amount\n    );\n\n    struct Question {\n        bytes32 content_hash;\n        address arbitrator;\n        uint32 opening_ts;\n        uint32 timeout;\n        uint32 finalize_ts;\n        bool is_pending_arbitration;\n        uint256 bounty;\n        bytes32 best_answer;\n        bytes32 history_hash;\n        uint256 bond;\n    }\n\n    // Stored in a mapping indexed by commitment_id, a hash of commitment hash, question, bond. \n    struct Commitment {\n        uint32 reveal_ts;\n        bool is_revealed;\n        bytes32 revealed_answer;\n    }\n\n    // Only used when claiming more bonds than fits into a transaction\n    // Stored in a mapping indexed by question_id.\n    struct Claim {\n        address payee;\n        uint256 last_bond;\n        uint256 queued_funds;\n    }\n\n    uint256 nextTemplateID = 0;\n    mapping(uint256 => uint256) public templates;\n    mapping(uint256 => bytes32) public template_hashes;\n    mapping(bytes32 => Question) public questions;\n    mapping(bytes32 => Claim) public question_claims;\n    mapping(bytes32 => Commitment) public commitments;\n    mapping(address => uint256) public arbitrator_question_fees; \n\n    modifier onlyArbitrator(bytes32 question_id) {\n        require(msg.sender == questions[question_id].arbitrator, \"msg.sender must be arbitrator\");\n        _;\n    }\n\n    modifier stateAny() {\n        _;\n    }\n\n    modifier stateNotCreated(bytes32 question_id) {\n        require(questions[question_id].timeout == 0, \"question must not exist\");\n        _;\n    }\n\n    modifier stateOpen(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        require(!questions[question_id].is_pending_arbitration, \"question must not be pending arbitration\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization deadline must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier statePendingArbitration(bytes32 question_id) {\n        require(questions[question_id].is_pending_arbitration, \"question must be pending arbitration\");\n        _;\n    }\n\n    modifier stateOpenOrPendingArbitration(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization dealine must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier stateFinalized(bytes32 question_id) {\n        require(isFinalized(question_id), \"question must be finalized\");\n        _;\n    }\n\n    modifier bondMustBeZero() {\n        require(msg.value == 0, \"bond must be zero\");\n        _;\n    }\n\n    modifier bondMustDouble(bytes32 question_id) {\n        require(msg.value > 0, \"bond must be positive\"); \n        require(msg.value >= (questions[question_id].bond.mul(2)), \"bond must be double at least previous bond\");\n        _;\n    }\n\n    modifier previousBondMustNotBeatMaxPrevious(bytes32 question_id, uint256 max_previous) {\n        if (max_previous > 0) {\n            require(questions[question_id].bond <= max_previous, \"bond must exceed max_previous\");\n        }\n        _;\n    }\n\n    /// @notice Constructor, sets up some initial templates\n    /// @dev Creates some generalized templates for different question types used in the DApp.\n    constructor() \n    public {\n        createTemplate('{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}');\n    }\n\n    /// @notice Function for arbitrator to set an optional per-question fee. \n    /// @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n    /// @param fee The fee to be charged by the arbitrator when a question is asked\n    function setQuestionFee(uint256 fee) \n        stateAny() \n    external {\n        arbitrator_question_fees[msg.sender] = fee;\n        emit LogSetQuestionFee(msg.sender, fee);\n    }\n\n    /// @notice Create a reusable template, which should be a JSON document.\n    /// Placeholders should use gettext() syntax, eg %s.\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplate(string content) \n        stateAny()\n    public returns (uint256) {\n        uint256 id = nextTemplateID;\n        templates[id] = block.number;\n        template_hashes[id] = keccak256(abi.encodePacked(content));\n        emit LogNewTemplate(id, msg.sender, content);\n        nextTemplateID = id.add(1);\n        return id;\n    }\n\n    /// @notice Create a new reusable template and use it to ask a question\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplateAndAskQuestion(\n        string content, \n        string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce \n    ) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public payable returns (bytes32) {\n        uint256 template_id = createTemplate(content);\n        return askQuestion(template_id, question, arbitrator, timeout, opening_ts, nonce);\n    }\n\n    /// @notice Ask a new question and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestion(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public payable returns (bytes32) {\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    function _askQuestion(bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 timeout, uint32 opening_ts) \n        stateNotCreated(question_id)\n    internal {\n\n        // A timeout of 0 makes no sense, and we will use this to check existence\n        require(timeout > 0, \"timeout must be positive\"); \n        require(timeout < 365 days, \"timeout must be less than 365 days\"); \n        require(arbitrator != NULL_ADDRESS, \"arbitrator must be set\");\n\n        uint256 bounty = msg.value;\n\n        // The arbitrator can set a fee for asking a question. \n        // This is intended as an anti-spam defence.\n        // The fee is waived if the arbitrator is asking the question.\n        // This allows them to set an impossibly high fee and make users proxy the question through them.\n        // This would allow more sophisticated pricing, question whitelisting etc.\n        if (msg.sender != arbitrator) {\n            uint256 question_fee = arbitrator_question_fees[arbitrator];\n            require(bounty >= question_fee, \"ETH provided must cover question fee\"); \n            bounty = bounty.sub(question_fee);\n            balanceOf[arbitrator] = balanceOf[arbitrator].add(question_fee);\n        }\n\n        questions[question_id].content_hash = content_hash;\n        questions[question_id].arbitrator = arbitrator;\n        questions[question_id].opening_ts = opening_ts;\n        questions[question_id].timeout = timeout;\n        questions[question_id].bounty = bounty;\n\n    }\n\n    /// @notice Add funds to the bounty for a question\n    /// @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n    /// @param question_id The ID of the question you wish to fund\n    function fundAnswerBounty(bytes32 question_id) \n        stateOpen(question_id)\n    external payable {\n        questions[question_id].bounty = questions[question_id].bounty.add(msg.value);\n        emit LogFundAnswerBounty(question_id, msg.value, questions[question_id].bounty, msg.sender);\n    }\n\n    /// @notice Submit an answer for a question.\n    /// @dev Adds the answer to the history and updates the current \"best\" answer.\n    /// May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    function submitAnswer(bytes32 question_id, bytes32 answer, uint256 max_previous) \n        stateOpen(question_id)\n        bondMustDouble(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external payable {\n        _addAnswerToHistory(question_id, answer, msg.sender, msg.value, false);\n        _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n    }\n\n    /// @notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n    /// @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n    /// The commitment_id is stored in the answer history where the answer would normally go.\n    /// Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n    /// @param question_id The ID of the question\n    /// @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n    /// @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.\n    function submitAnswerCommitment(bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer) \n        stateOpen(question_id)\n        bondMustDouble(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external payable {\n\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, msg.value));\n        address answerer = (_answerer == NULL_ADDRESS) ? msg.sender : _answerer;\n\n        require(commitments[commitment_id].reveal_ts == COMMITMENT_NON_EXISTENT, \"commitment must not already exist\");\n\n        uint32 commitment_timeout = questions[question_id].timeout / COMMITMENT_TIMEOUT_RATIO;\n        commitments[commitment_id].reveal_ts = uint32(now).add(commitment_timeout);\n\n        _addAnswerToHistory(question_id, commitment_id, answerer, msg.value, true);\n\n    }\n\n    /// @notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n    /// @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n    /// Updates the current answer unless someone has since supplied a new answer with a higher bond\n    /// msg.sender is intentionally not restricted to the user who originally sent the commitment; \n    /// For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n    /// NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded as bytes32\n    /// @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n    /// @param bond The bond that you paid in your submitAnswerCommitment() transaction\n    function submitAnswerReveal(bytes32 question_id, bytes32 answer, uint256 nonce, uint256 bond) \n        stateOpenOrPendingArbitration(question_id)\n    external {\n\n        bytes32 answer_hash = keccak256(abi.encodePacked(answer, nonce));\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, bond));\n\n        require(!commitments[commitment_id].is_revealed, \"commitment must not have been revealed yet\");\n        require(commitments[commitment_id].reveal_ts > uint32(now), \"reveal deadline must not have passed\");\n\n        commitments[commitment_id].revealed_answer = answer;\n        commitments[commitment_id].is_revealed = true;\n\n        if (bond == questions[question_id].bond) {\n            _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n        }\n\n        emit LogAnswerReveal(question_id, msg.sender, answer_hash, answer, nonce, bond);\n\n    }\n\n    function _addAnswerToHistory(bytes32 question_id, bytes32 answer_or_commitment_id, address answerer, uint256 bond, bool is_commitment) \n    internal \n    {\n        bytes32 new_history_hash = keccak256(abi.encodePacked(questions[question_id].history_hash, answer_or_commitment_id, bond, answerer, is_commitment));\n\n        // Update the current bond level, if there's a bond (ie anything except arbitration)\n        if (bond > 0) {\n            questions[question_id].bond = bond;\n        }\n        questions[question_id].history_hash = new_history_hash;\n\n        emit LogNewAnswer(answer_or_commitment_id, question_id, new_history_hash, answerer, bond, now, is_commitment);\n    }\n\n    function _updateCurrentAnswer(bytes32 question_id, bytes32 answer, uint32 timeout_secs)\n    internal {\n        questions[question_id].best_answer = answer;\n        questions[question_id].finalize_ts = uint32(now).add(timeout_secs);\n    }\n\n    /// @notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n    /// @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n    /// @param question_id The ID of the question\n    /// @param requester The account that requested arbitration\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    function notifyOfArbitrationRequest(bytes32 question_id, address requester, uint256 max_previous) \n        onlyArbitrator(question_id)\n        stateOpen(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        require(questions[question_id].bond > 0, \"Question must already have an answer when arbitration is requested\");\n        questions[question_id].is_pending_arbitration = true;\n        emit LogNotifyOfArbitrationRequest(question_id, requester);\n    }\n\n    /// @notice Submit the answer for a question, for use by the arbitrator.\n    /// @dev Doesn't require (or allow) a bond.\n    /// If the current final answer is correct, the account should be whoever submitted it.\n    /// If the current final answer is wrong, the account should be whoever paid for arbitration.\n    /// However, the answerer stipulations are not enforced by the contract.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param answerer The account credited with this answer for the purpose of bond claims\n    function submitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address answerer) \n        onlyArbitrator(question_id)\n        statePendingArbitration(question_id)\n        bondMustBeZero\n    external {\n\n        require(answerer != NULL_ADDRESS, \"answerer must be provided\");\n        emit LogFinalize(question_id, answer);\n\n        questions[question_id].is_pending_arbitration = false;\n        _addAnswerToHistory(question_id, answer, answerer, 0, false);\n        _updateCurrentAnswer(question_id, answer, 0);\n\n    }\n\n    /// @notice Report whether the answer to the specified question is finalized\n    /// @param question_id The ID of the question\n    /// @return Return true if finalized\n    function isFinalized(bytes32 question_id) \n    view public returns (bool) {\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        return ( !questions[question_id].is_pending_arbitration && (finalize_ts > UNANSWERED) && (finalize_ts <= uint32(now)) );\n    }\n\n    /// @notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswer(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function resultFor(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n\n    /// @notice Return the final answer to the specified question, provided it matches the specified criteria.\n    /// @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n    /// @param question_id The ID of the question\n    /// @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n    /// @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n    /// @param min_timeout The timeout set in the initial question settings must be this high or higher\n    /// @param min_bond The bond sent with the final answer must be this high or higher\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswerIfMatches(\n        bytes32 question_id, \n        bytes32 content_hash, address arbitrator, uint32 min_timeout, uint256 min_bond\n    ) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        require(content_hash == questions[question_id].content_hash, \"content hash must match\");\n        require(arbitrator == questions[question_id].arbitrator, \"arbitrator must match\");\n        require(min_timeout <= questions[question_id].timeout, \"timeout must be long enough\");\n        require(min_bond <= questions[question_id].bond, \"bond must be high enough\");\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n    /// Caller must provide the answer history, in reverse order\n    /// @dev Works up the chain and assign bonds to the person who gave the right answer\n    /// If someone gave the winning answer earlier, they must get paid from the higher bond\n    /// That means we can't pay out the bond added at n until we have looked at n-1\n    /// The first answer is authenticated by checking against the stored history_hash.\n    /// One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n    /// Once we get to a null hash we'll know we're done and there are no more answers.\n    /// Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n    /// @param question_id The ID of the question\n    /// @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n    /// @param addrs Last-to-first, the address of each answerer or commitment sender\n    /// @param bonds Last-to-first, the bond supplied with each answer or commitment\n    /// @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal\n    function claimWinnings(\n        bytes32 question_id, \n        bytes32[] history_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateFinalized(question_id)\n    public {\n\n        require(history_hashes.length > 0, \"at least one history hash entry must be provided\");\n\n        // These are only set if we split our claim over multiple transactions.\n        address payee = question_claims[question_id].payee; \n        uint256 last_bond = question_claims[question_id].last_bond; \n        uint256 queued_funds = question_claims[question_id].queued_funds; \n\n        // Starts as the hash of the final answer submitted. It'll be cleared when we're done.\n        // If we're splitting the claim over multiple transactions, it'll be the hash where we left off last time\n        bytes32 last_history_hash = questions[question_id].history_hash;\n\n        bytes32 best_answer = questions[question_id].best_answer;\n\n        uint256 i;\n        for (i = 0; i < history_hashes.length; i++) {\n        \n            // Check input against the history hash, and see which of 2 possible values of is_commitment fits.\n            bool is_commitment = _verifyHistoryInputOrRevert(last_history_hash, history_hashes[i], answers[i], bonds[i], addrs[i]);\n            \n            queued_funds = queued_funds.add(last_bond); \n            (queued_funds, payee) = _processHistoryItem(\n                question_id, best_answer, queued_funds, payee, \n                addrs[i], bonds[i], answers[i], is_commitment);\n \n            // Line the bond up for next time, when it will be added to somebody's queued_funds\n            last_bond = bonds[i];\n            last_history_hash = history_hashes[i];\n\n        }\n \n        if (last_history_hash != NULL_HASH) {\n            // We haven't yet got to the null hash (1st answer), ie the caller didn't supply the full answer chain.\n            // Persist the details so we can pick up later where we left off later.\n\n            // If we know who to pay we can go ahead and pay them out, only keeping back last_bond\n            // (We always know who to pay unless all we saw were unrevealed commits)\n            if (payee != NULL_ADDRESS) {\n                _payPayee(question_id, payee, queued_funds);\n                queued_funds = 0;\n            }\n\n            question_claims[question_id].payee = payee;\n            question_claims[question_id].last_bond = last_bond;\n            question_claims[question_id].queued_funds = queued_funds;\n        } else {\n            // There is nothing left below us so the payee can keep what remains\n            _payPayee(question_id, payee, queued_funds.add(last_bond));\n            delete question_claims[question_id];\n        }\n\n        questions[question_id].history_hash = last_history_hash;\n\n    }\n\n    function _payPayee(bytes32 question_id, address payee, uint256 value) \n    internal {\n        balanceOf[payee] = balanceOf[payee].add(value);\n        emit LogClaim(question_id, payee, value);\n    }\n\n    function _verifyHistoryInputOrRevert(\n        bytes32 last_history_hash,\n        bytes32 history_hash, bytes32 answer, uint256 bond, address addr\n    )\n    internal pure returns (bool) {\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, true)) ) {\n            return true;\n        }\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, false)) ) {\n            return false;\n        } \n        revert(\"History input provided did not match the expected hash\");\n    }\n\n    function _processHistoryItem(\n        bytes32 question_id, bytes32 best_answer, \n        uint256 queued_funds, address payee, \n        address addr, uint256 bond, bytes32 answer, bool is_commitment\n    )\n    internal returns (uint256, address) {\n\n        // For commit-and-reveal, the answer history holds the commitment ID instead of the answer.\n        // We look at the referenced commitment ID and switch in the actual answer.\n        if (is_commitment) {\n            bytes32 commitment_id = answer;\n            // If it's a commit but it hasn't been revealed, it will always be considered wrong.\n            if (!commitments[commitment_id].is_revealed) {\n                delete commitments[commitment_id];\n                return (queued_funds, payee);\n            } else {\n                answer = commitments[commitment_id].revealed_answer;\n                delete commitments[commitment_id];\n            }\n        }\n\n        if (answer == best_answer) {\n\n            if (payee == NULL_ADDRESS) {\n\n                // The entry is for the first payee we come to, ie the winner.\n                // They get the question bounty.\n                payee = addr;\n                queued_funds = queued_funds.add(questions[question_id].bounty);\n                questions[question_id].bounty = 0;\n\n            } else if (addr != payee) {\n\n                // Answerer has changed, ie we found someone lower down who needs to be paid\n\n                // The lower answerer will take over receiving bonds from higher answerer.\n                // They should also be paid the takeover fee, which is set at a rate equivalent to their bond. \n                // (This is our arbitrary rule, to give consistent right-answerers a defence against high-rollers.)\n\n                // There should be enough for the fee, but if not, take what we have.\n                // There's an edge case involving weird arbitrator behaviour where we may be short.\n                uint256 answer_takeover_fee = (queued_funds >= bond) ? bond : queued_funds;\n\n                // Settle up with the old (higher-bonded) payee\n                _payPayee(question_id, payee, queued_funds.sub(answer_takeover_fee));\n\n                // Now start queued_funds again for the new (lower-bonded) payee\n                payee = addr;\n                queued_funds = answer_takeover_fee;\n\n            }\n\n        }\n\n        return (queued_funds, payee);\n\n    }\n\n    /// @notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n    /// Caller must provide the answer history for each question, in reverse order\n    /// @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n    /// @param question_ids The IDs of the questions you want to claim for\n    /// @param lengths The number of history entries you will supply for each question ID\n    /// @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n    /// @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n    /// @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n    /// @param answers In a single list for all supplied questions, each answer supplied, or commitment ID \n    function claimMultipleAndWithdrawBalance(\n        bytes32[] question_ids, uint256[] lengths, \n        bytes32[] hist_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateAny() // The finalization checks are done in the claimWinnings function\n    public {\n        \n        uint256 qi;\n        uint256 i;\n        for (qi = 0; qi < question_ids.length; qi++) {\n            bytes32 qid = question_ids[qi];\n            uint256 ln = lengths[qi];\n            bytes32[] memory hh = new bytes32[](ln);\n            address[] memory ad = new address[](ln);\n            uint256[] memory bo = new uint256[](ln);\n            bytes32[] memory an = new bytes32[](ln);\n            uint256 j;\n            for (j = 0; j < ln; j++) {\n                hh[j] = hist_hashes[i];\n                ad[j] = addrs[i];\n                bo[j] = bonds[i];\n                an[j] = answers[i];\n                i++;\n            }\n            claimWinnings(qid, hh, ad, bo, an);\n        }\n        withdraw();\n    }\n\n    /// @notice Returns the questions's content hash, identifying the question content\n    /// @param question_id The ID of the question \n    function getContentHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].content_hash;\n    }\n\n    /// @notice Returns the arbitrator address for the question\n    /// @param question_id The ID of the question \n    function getArbitrator(bytes32 question_id) \n    public view returns(address) {\n        return questions[question_id].arbitrator;\n    }\n\n    /// @notice Returns the timestamp when the question can first be answered\n    /// @param question_id The ID of the question \n    function getOpeningTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].opening_ts;\n    }\n\n    /// @notice Returns the timeout in seconds used after each answer\n    /// @param question_id The ID of the question \n    function getTimeout(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].timeout;\n    }\n\n    /// @notice Returns the timestamp at which the question will be/was finalized\n    /// @param question_id The ID of the question \n    function getFinalizeTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].finalize_ts;\n    }\n\n    /// @notice Returns whether the question is pending arbitration\n    /// @param question_id The ID of the question \n    function isPendingArbitration(bytes32 question_id) \n    public view returns(bool) {\n        return questions[question_id].is_pending_arbitration;\n    }\n\n    /// @notice Returns the current total unclaimed bounty\n    /// @dev Set back to zero once the bounty has been claimed\n    /// @param question_id The ID of the question \n    function getBounty(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bounty;\n    }\n\n    /// @notice Returns the current best answer\n    /// @param question_id The ID of the question \n    function getBestAnswer(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Returns the history hash of the question \n    /// @param question_id The ID of the question \n    /// @dev Updated on each answer, then rewound as each is claimed\n    function getHistoryHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].history_hash;\n    }\n\n    /// @notice Returns the highest bond posted so far for a question\n    /// @param question_id The ID of the question \n    function getBond(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bond;\n    }\n\n}\n",
  "sourcePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
  "ast": {
    "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
    "exportedSymbols": {
      "Realitio": [
        4741
      ]
    },
    "id": 4742,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2725,
        "literals": [
          "solidity",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:7"
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 2726,
        "nodeType": "ImportDirective",
        "scope": 4742,
        "sourceUnit": 4840,
        "src": "25:35:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
        "file": "./RealitioSafeMath32.sol",
        "id": 2727,
        "nodeType": "ImportDirective",
        "scope": 4742,
        "sourceUnit": 4867,
        "src": "61:34:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/BalanceHolder.sol",
        "file": "./BalanceHolder.sol",
        "id": 2728,
        "nodeType": "ImportDirective",
        "scope": 4742,
        "sourceUnit": 2724,
        "src": "96:29:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2729,
              "name": "BalanceHolder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2723,
              "src": "149:13:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BalanceHolder_$2723",
                "typeString": "contract BalanceHolder"
              }
            },
            "id": 2730,
            "nodeType": "InheritanceSpecifier",
            "src": "149:13:7"
          }
        ],
        "contractDependencies": [
          2723
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4741,
        "linearizedBaseContracts": [
          4741,
          2723
        ],
        "name": "Realitio",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 2733,
            "libraryName": {
              "contractScope": null,
              "id": 2731,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4839,
              "src": "176:19:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$4839",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "170:38:7",
            "typeName": {
              "id": 2732,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "200:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 2736,
            "libraryName": {
              "contractScope": null,
              "id": 2734,
              "name": "RealitioSafeMath32",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4866,
              "src": "219:18:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath32_$4866",
                "typeString": "library RealitioSafeMath32"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "213:36:7",
            "typeName": {
              "id": 2735,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "242:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            }
          },
          {
            "constant": true,
            "id": 2741,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "255:42:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2737,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "255:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 2739,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "295:1:7",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 2738,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "287:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 2740,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "287:10:7",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2746,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "380:39:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 2742,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "380:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 2744,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "417:1:7",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 2743,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "409:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 2745,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "409:10:7",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2749,
            "name": "UNANSWERED",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "514:30:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 2747,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "514:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 2748,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "543:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2752,
            "name": "COMMITMENT_NON_EXISTENT",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "637:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2750,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "637:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 2751,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "680:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2755,
            "name": "COMMITMENT_TIMEOUT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "765:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 2753,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "765:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 2754,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "808:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2761,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2757,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2761,
                  "src": "849:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2756,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "849:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2759,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2761,
                  "src": "877:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2758,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "877:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "839:58:7"
            },
            "src": "816:82:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2769,
            "name": "LogNewTemplate",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2768,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2763,
                  "indexed": true,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2769,
                  "src": "934:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2762,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "934:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2765,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2769,
                  "src": "971:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2764,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "971:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2767,
                  "indexed": false,
                  "name": "question_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 2769,
                  "src": "1002:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2766,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1002:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "924:104:7"
            },
            "src": "904:125:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2791,
            "name": "LogNewQuestion",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2771,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1065:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2770,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1065:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2773,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1102:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2772,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1102:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2775,
                  "indexed": false,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1133:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2774,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1133:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2777,
                  "indexed": false,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1162:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2776,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1162:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2779,
                  "indexed": true,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1187:28:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2778,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1187:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2781,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1225:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2780,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1225:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2783,
                  "indexed": false,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1254:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2782,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1254:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2785,
                  "indexed": false,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1278:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2784,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1278:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2787,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1305:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2786,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1305:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2789,
                  "indexed": false,
                  "name": "created",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1328:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2788,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1328:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1055:294:7"
            },
            "src": "1035:315:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2801,
            "name": "LogFundAnswerBounty",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2793,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1391:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2792,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2795,
                  "indexed": false,
                  "name": "bounty_added",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1428:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2794,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1428:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2797,
                  "indexed": false,
                  "name": "bounty",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1458:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2796,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1458:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2799,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1482:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2798,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1482:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1381:128:7"
            },
            "src": "1356:154:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2817,
            "name": "LogNewAnswer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2803,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1544:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2802,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1544:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2805,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1568:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2804,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1568:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2807,
                  "indexed": false,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1605:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2806,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1605:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2809,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1635:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2808,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1635:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2811,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1665:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2810,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1665:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2813,
                  "indexed": false,
                  "name": "ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1687:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2812,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1687:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2815,
                  "indexed": false,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1707:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2814,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1707:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1534:197:7"
            },
            "src": "1516:216:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2831,
            "name": "LogAnswerReveal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2819,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1769:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2818,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1769:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2821,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1807:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2820,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1807:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2823,
                  "indexed": true,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1838:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2822,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1838:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2825,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1876:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1876:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2827,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1901:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2826,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1901:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2829,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1925:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1925:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1759:184:7"
            },
            "src": "1738:206:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2837,
            "name": "LogNotifyOfArbitrationRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2836,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2833,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2837,
                  "src": "1995:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2832,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1995:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2835,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2837,
                  "src": "2032:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2834,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2032:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1985:74:7"
            },
            "src": "1950:110:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2843,
            "name": "LogFinalize",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2839,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "2093:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2838,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2093:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2841,
                  "indexed": true,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "2130:22:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2840,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2130:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2083:75:7"
            },
            "src": "2066:93:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2851,
            "name": "LogClaim",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2845,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2851,
                  "src": "2189:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2844,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2189:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2847,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2851,
                  "src": "2226:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2846,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2226:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2849,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2851,
                  "src": "2256:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2848,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2256:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2179:97:7"
            },
            "src": "2165:112:7"
          },
          {
            "canonicalName": "Realitio.Question",
            "id": 2872,
            "members": [
              {
                "constant": false,
                "id": 2853,
                "name": "content_hash",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2309:20:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2852,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2309:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2855,
                "name": "arbitrator",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2339:18:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2854,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2339:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2857,
                "name": "opening_ts",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2367:17:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2856,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2367:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2859,
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2394:14:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2858,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2394:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2861,
                "name": "finalize_ts",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2418:18:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2860,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2418:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2863,
                "name": "is_pending_arbitration",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2446:27:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2862,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2446:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2865,
                "name": "bounty",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2483:14:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2864,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2483:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2867,
                "name": "best_answer",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2507:19:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2866,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2507:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2869,
                "name": "history_hash",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2536:20:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2868,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2536:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2871,
                "name": "bond",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2566:12:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2870,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2566:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Question",
            "nodeType": "StructDefinition",
            "scope": 4741,
            "src": "2283:302:7",
            "visibility": "public"
          },
          {
            "canonicalName": "Realitio.Commitment",
            "id": 2879,
            "members": [
              {
                "constant": false,
                "id": 2874,
                "name": "reveal_ts",
                "nodeType": "VariableDeclaration",
                "scope": 2879,
                "src": "2716:16:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2873,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2716:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2876,
                "name": "is_revealed",
                "nodeType": "VariableDeclaration",
                "scope": 2879,
                "src": "2742:16:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2875,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2742:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2878,
                "name": "revealed_answer",
                "nodeType": "VariableDeclaration",
                "scope": 2879,
                "src": "2768:23:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2877,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2768:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Commitment",
            "nodeType": "StructDefinition",
            "scope": 4741,
            "src": "2688:110:7",
            "visibility": "public"
          },
          {
            "canonicalName": "Realitio.Claim",
            "id": 2886,
            "members": [
              {
                "constant": false,
                "id": 2881,
                "name": "payee",
                "nodeType": "VariableDeclaration",
                "scope": 2886,
                "src": "2949:13:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2880,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2949:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2883,
                "name": "last_bond",
                "nodeType": "VariableDeclaration",
                "scope": 2886,
                "src": "2972:17:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2882,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2972:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2885,
                "name": "queued_funds",
                "nodeType": "VariableDeclaration",
                "scope": 2886,
                "src": "2999:20:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2884,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2999:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 4741,
            "src": "2926:100:7",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2889,
            "name": "nextTemplateID",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3032:26:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2887,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "3032:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 2888,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3057:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2893,
            "name": "templates",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3064:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 2892,
              "keyType": {
                "id": 2890,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3072:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3064:27:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 2891,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3083:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2897,
            "name": "template_hashes",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3114:50:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
              "typeString": "mapping(uint256 => bytes32)"
            },
            "typeName": {
              "id": 2896,
              "keyType": {
                "id": 2894,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3122:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3114:27:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                "typeString": "mapping(uint256 => bytes32)"
              },
              "valueType": {
                "id": 2895,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3133:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2901,
            "name": "questions",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3170:45:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question)"
            },
            "typeName": {
              "id": 2900,
              "keyType": {
                "id": 2898,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3178:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3170:28:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2899,
                "name": "Question",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2872,
                "src": "3189:8:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$2872_storage_ptr",
                  "typeString": "struct Realitio.Question"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2905,
            "name": "question_claims",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3221:48:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Claim)"
            },
            "typeName": {
              "id": 2904,
              "keyType": {
                "id": 2902,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3229:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3221:25:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2903,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2886,
                "src": "3240:5:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$2886_storage_ptr",
                  "typeString": "struct Realitio.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2909,
            "name": "commitments",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3275:49:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
            },
            "typeName": {
              "id": 2908,
              "keyType": {
                "id": 2906,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3283:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3275:30:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2907,
                "name": "Commitment",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2879,
                "src": "3294:10:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$2879_storage_ptr",
                  "typeString": "struct Realitio.Commitment"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2913,
            "name": "arbitrator_question_fees",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3330:59:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 2912,
              "keyType": {
                "id": 2910,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3338:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3330:27:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 2911,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3349:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2929,
              "nodeType": "Block",
              "src": "3442:117:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2918,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "3460:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3460:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2920,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3474:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2922,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2921,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2915,
                              "src": "3484:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3474:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2923,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2855,
                          "src": "3474:33:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3460:47:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
                        "id": 2925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3509:31:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        },
                        "value": "msg.sender must be arbitrator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        }
                      ],
                      "id": 2917,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3452:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3452:89:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2927,
                  "nodeType": "ExpressionStatement",
                  "src": "3452:89:7"
                },
                {
                  "id": 2928,
                  "nodeType": "PlaceholderStatement",
                  "src": "3551:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 2930,
            "name": "onlyArbitrator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2915,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2930,
                  "src": "3421:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2914,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3421:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3420:21:7"
            },
            "src": "3397:162:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2933,
              "nodeType": "Block",
              "src": "3585:18:7",
              "statements": [
                {
                  "id": 2932,
                  "nodeType": "PlaceholderStatement",
                  "src": "3595:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 2934,
            "name": "stateAny",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2931,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3582:2:7"
            },
            "src": "3565:38:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2949,
              "nodeType": "Block",
              "src": "3655:99:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 2944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2939,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3673:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2941,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2940,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2936,
                              "src": "3683:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3673:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2942,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "3673:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2943,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3707:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3673:35:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
                        "id": 2945,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3710:25:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        },
                        "value": "question must not exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        }
                      ],
                      "id": 2938,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3665:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3665:71:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2947,
                  "nodeType": "ExpressionStatement",
                  "src": "3665:71:7"
                },
                {
                  "id": 2948,
                  "nodeType": "PlaceholderStatement",
                  "src": "3746:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 2950,
            "name": "stateNotCreated",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2936,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2950,
                  "src": "3634:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2935,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3634:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3633:21:7"
            },
            "src": "3609:145:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3014,
              "nodeType": "Block",
              "src": "3800:547:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 2960,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2955,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3818:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2957,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2956,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2952,
                              "src": "3828:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3818:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2958,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "3818:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3851:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3818:34:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 2961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3854:21:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 2954,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3810:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3810:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2963,
                  "nodeType": "ExpressionStatement",
                  "src": "3810:66:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2969,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3894:46:7",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2965,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3895:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2967,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2966,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2952,
                              "src": "3905:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3895:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2968,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_pending_arbitration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2863,
                          "src": "3895:45:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
                        "id": 2970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3942:42:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        },
                        "value": "question must not be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        }
                      ],
                      "id": 2964,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3886:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3886:99:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2972,
                  "nodeType": "ExpressionStatement",
                  "src": "3886:99:7"
                },
                {
                  "assignments": [
                    2974
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2974,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3015,
                      "src": "3995:18:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 2973,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3995:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2979,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2975,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4016:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 2977,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2976,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2952,
                        "src": "4026:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4016:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 2978,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "4016:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3995:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2981,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2974,
                            "src": "4068:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2982,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2749,
                            "src": "4083:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4068:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 2988,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2984,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2974,
                            "src": "4097:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2986,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4118:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2985,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4111:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 2987,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4111:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4097:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4068:54:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 2990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4124:44:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        },
                        "value": "finalization deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        }
                      ],
                      "id": 2980,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4060:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4060:109:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2992,
                  "nodeType": "ExpressionStatement",
                  "src": "4060:109:7"
                },
                {
                  "assignments": [
                    2994
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2994,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3015,
                      "src": "4179:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 2993,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4179:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2999,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2995,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4199:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 2997,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2996,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2952,
                        "src": "4209:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4199:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 2998,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2857,
                    "src": "4199:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4179:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3001,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2994,
                            "src": "4250:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3002,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4264:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4250:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3004,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2994,
                            "src": "4269:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3006,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4290:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 3005,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4283:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 3007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4283:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4269:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4250:44:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 3010,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4296:31:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 3000,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4242:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3011,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4242:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3012,
                  "nodeType": "ExpressionStatement",
                  "src": "4242:86:7"
                },
                {
                  "id": 3013,
                  "nodeType": "PlaceholderStatement",
                  "src": "4339:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3015,
            "name": "stateOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2953,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2952,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3015,
                  "src": "3779:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2951,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3779:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3778:21:7"
            },
            "src": "3760:587:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3028,
              "nodeType": "Block",
              "src": "4407:122:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3020,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2901,
                            "src": "4425:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                            }
                          },
                          "id": 3022,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3021,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3017,
                            "src": "4435:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4425:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$2872_storage",
                            "typeString": "struct Realitio.Question storage ref"
                          }
                        },
                        "id": 3023,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "is_pending_arbitration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2863,
                        "src": "4425:45:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
                        "id": 3024,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4472:38:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        },
                        "value": "question must be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        }
                      ],
                      "id": 3019,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4417:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4417:94:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3026,
                  "nodeType": "ExpressionStatement",
                  "src": "4417:94:7"
                },
                {
                  "id": 3027,
                  "nodeType": "PlaceholderStatement",
                  "src": "4521:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3029,
            "name": "statePendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3017,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3029,
                  "src": "4386:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3016,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4386:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4385:21:7"
            },
            "src": "4353:176:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3084,
              "nodeType": "Block",
              "src": "4595:437:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3034,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "4613:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 3036,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3035,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3031,
                              "src": "4623:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4613:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 3037,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "4613:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4646:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4613:34:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 3040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4649:21:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 3033,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4605:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4605:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3042,
                  "nodeType": "ExpressionStatement",
                  "src": "4605:66:7"
                },
                {
                  "assignments": [
                    3044
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3044,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3085,
                      "src": "4681:18:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3043,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4681:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3049,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3045,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4702:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3047,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3046,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3031,
                        "src": "4712:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4702:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3048,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "4702:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4681:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3059,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3051,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3044,
                            "src": "4754:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3052,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2749,
                            "src": "4769:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4754:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3054,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3044,
                            "src": "4783:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3056,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4804:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 3055,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4797:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 3057,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4797:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4783:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4754:54:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
                        "id": 3060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4810:43:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        },
                        "value": "finalization dealine must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        }
                      ],
                      "id": 3050,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4746:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4746:108:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "4746:108:7"
                },
                {
                  "assignments": [
                    3064
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3064,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3085,
                      "src": "4864:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3063,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4864:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3069,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3065,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4884:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3067,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3066,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3031,
                        "src": "4894:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4884:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3068,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2857,
                    "src": "4884:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4864:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3073,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3071,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3064,
                            "src": "4935:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3072,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4949:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4935:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3078,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3074,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3064,
                            "src": "4954:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3076,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4975:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 3075,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4968:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 3077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4968:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4954:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4935:44:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 3080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4981:31:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 3070,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4927:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4927:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3082,
                  "nodeType": "ExpressionStatement",
                  "src": "4927:86:7"
                },
                {
                  "id": 3083,
                  "nodeType": "PlaceholderStatement",
                  "src": "5024:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3085,
            "name": "stateOpenOrPendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3031,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3085,
                  "src": "4574:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3030,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4574:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4573:21:7"
            },
            "src": "4535:497:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3097,
              "nodeType": "Block",
              "src": "5083:91:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3091,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3087,
                            "src": "5113:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 3090,
                          "name": "isFinalized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3951,
                          "src": "5101:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 3092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5101:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
                        "id": 3093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5127:28:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        },
                        "value": "question must be finalized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        }
                      ],
                      "id": 3089,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5093:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5093:63:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3095,
                  "nodeType": "ExpressionStatement",
                  "src": "5093:63:7"
                },
                {
                  "id": 3096,
                  "nodeType": "PlaceholderStatement",
                  "src": "5166:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3098,
            "name": "stateFinalized",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3087,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3098,
                  "src": "5062:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3086,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5062:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5061:21:7"
            },
            "src": "5038:136:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3109,
              "nodeType": "Block",
              "src": "5206:72:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3101,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "5224:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5224:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5237:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5224:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265207a65726f",
                        "id": 3105,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5240:19:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
                          "typeString": "literal_string \"bond must be zero\""
                        },
                        "value": "bond must be zero"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
                          "typeString": "literal_string \"bond must be zero\""
                        }
                      ],
                      "id": 3100,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5216:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5216:44:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3107,
                  "nodeType": "ExpressionStatement",
                  "src": "5216:44:7"
                },
                {
                  "id": 3108,
                  "nodeType": "PlaceholderStatement",
                  "src": "5270:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3110,
            "name": "bondMustBeZero",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3099,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5203:2:7"
            },
            "src": "5180:98:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3138,
              "nodeType": "Block",
              "src": "5329:190:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3118,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3115,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "5347:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5347:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5359:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5347:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520706f736974697665",
                        "id": 3119,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5362:23:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        },
                        "value": "bond must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        }
                      ],
                      "id": 3114,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5339:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5339:47:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3121,
                  "nodeType": "ExpressionStatement",
                  "src": "5339:47:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3133,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3123,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "5405:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5405:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 3130,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5451:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 3125,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2901,
                                      "src": "5419:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                        "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                      }
                                    },
                                    "id": 3127,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 3126,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3112,
                                      "src": "5429:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5419:22:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$2872_storage",
                                      "typeString": "struct Realitio.Question storage ref"
                                    }
                                  },
                                  "id": 3128,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "bond",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2871,
                                  "src": "5419:27:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 3129,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mul",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4776,
                                "src": "5419:31:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 3131,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5419:34:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 3132,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5418:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5405:49:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
                        "id": 3134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5456:44:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        },
                        "value": "bond must be double at least previous bond"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        }
                      ],
                      "id": 3122,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5397:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5397:104:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3136,
                  "nodeType": "ExpressionStatement",
                  "src": "5397:104:7"
                },
                {
                  "id": 3137,
                  "nodeType": "PlaceholderStatement",
                  "src": "5511:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3139,
            "name": "bondMustDouble",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3112,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3139,
                  "src": "5308:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3111,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5308:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5307:21:7"
            },
            "src": "5284:235:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3161,
              "nodeType": "Block",
              "src": "5612:159:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3145,
                      "name": "max_previous",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3143,
                      "src": "5626:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5641:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5626:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3159,
                  "nodeType": "IfStatement",
                  "src": "5622:132:7",
                  "trueBody": {
                    "id": 3158,
                    "nodeType": "Block",
                    "src": "5644:110:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3154,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 3149,
                                    "name": "questions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2901,
                                    "src": "5666:9:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                      "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                    }
                                  },
                                  "id": 3151,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 3150,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3141,
                                    "src": "5676:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5666:22:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Question_$2872_storage",
                                    "typeString": "struct Realitio.Question storage ref"
                                  }
                                },
                                "id": 3152,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "bond",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2871,
                                "src": "5666:27:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3153,
                                "name": "max_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3143,
                                "src": "5697:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5666:43:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
                              "id": 3155,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5711:31:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              },
                              "value": "bond must exceed max_previous"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              }
                            ],
                            "id": 3148,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5396,
                              5397
                            ],
                            "referencedDeclaration": 5397,
                            "src": "5658:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 3156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5658:85:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3157,
                        "nodeType": "ExpressionStatement",
                        "src": "5658:85:7"
                      }
                    ]
                  }
                },
                {
                  "id": 3160,
                  "nodeType": "PlaceholderStatement",
                  "src": "5763:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3162,
            "name": "previousBondMustNotBeatMaxPrevious",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3144,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3141,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3162,
                  "src": "5569:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3140,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5569:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3143,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3162,
                  "src": "5590:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3142,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5590:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5568:43:7"
            },
            "src": "5525:246:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3185,
              "nodeType": "Block",
              "src": "5958:538:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5983:65:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3165,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "5968:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5968:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3168,
                  "nodeType": "ExpressionStatement",
                  "src": "5968:81:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6074:81:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3169,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6059:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6059:97:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3172,
                  "nodeType": "ExpressionStatement",
                  "src": "6059:97:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6181:92:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3173,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6166:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6166:108:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3176,
                  "nodeType": "ExpressionStatement",
                  "src": "6166:108:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6299:94:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3177,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6284:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6284:110:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3180,
                  "nodeType": "ExpressionStatement",
                  "src": "6284:110:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6419:69:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3181,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6404:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6404:85:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3184,
                  "nodeType": "ExpressionStatement",
                  "src": "6404:85:7"
                }
              ]
            },
            "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
            "id": 3186,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3163,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5943:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3164,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5958:0:7"
            },
            "scope": 4741,
            "src": "5932:564:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3206,
              "nodeType": "Block",
              "src": "6841:108:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3198,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3193,
                        "name": "arbitrator_question_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2913,
                        "src": "6851:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3196,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3194,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "6876:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6876:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6851:36:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3197,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3188,
                      "src": "6890:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6851:42:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3199,
                  "nodeType": "ExpressionStatement",
                  "src": "6851:42:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3201,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "6926:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6926:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3203,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3188,
                        "src": "6938:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3200,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2761,
                      "src": "6908:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6908:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3205,
                  "nodeType": "EmitStatement",
                  "src": "6903:39:7"
                }
              ]
            },
            "documentation": "@notice Function for arbitrator to set an optional per-question fee. \n @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n @param fee The fee to be charged by the arbitrator when a question is asked",
            "id": 3207,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 3191,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3190,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2934,
                  "src": "6816:8:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6816:10:7"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3188,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 3207,
                  "src": "6794:11:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3187,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6794:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6793:13:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3192,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6841:0:7"
            },
            "scope": 4741,
            "src": "6770:179:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3254,
              "nodeType": "Block",
              "src": "7418:259:7",
              "statements": [
                {
                  "assignments": [
                    3217
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3217,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3255,
                      "src": "7428:10:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3216,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7428:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3219,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 3218,
                    "name": "nextTemplateID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2889,
                    "src": "7441:14:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7428:27:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3220,
                        "name": "templates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2893,
                        "src": "7465:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 3222,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3221,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3217,
                        "src": "7475:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7465:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3223,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5383,
                        "src": "7481:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 3224,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7481:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7465:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3226,
                  "nodeType": "ExpressionStatement",
                  "src": "7465:28:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3236,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3227,
                        "name": "template_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2897,
                        "src": "7503:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                          "typeString": "mapping(uint256 => bytes32)"
                        }
                      },
                      "id": 3229,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3228,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3217,
                        "src": "7519:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7503:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3233,
                              "name": "content",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3209,
                              "src": "7552:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3231,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5380,
                              "src": "7535:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 3232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7535:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 3234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7535:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 3230,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5387,
                        "src": "7525:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 3235,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7525:36:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7503:58:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3237,
                  "nodeType": "ExpressionStatement",
                  "src": "7503:58:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3239,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3217,
                        "src": "7591:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3240,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "7595:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3241,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7595:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3242,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3209,
                        "src": "7607:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3238,
                      "name": "LogNewTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2769,
                      "src": "7576:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory)"
                      }
                    },
                    "id": 3243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7576:39:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3244,
                  "nodeType": "EmitStatement",
                  "src": "7571:44:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3245,
                      "name": "nextTemplateID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2889,
                      "src": "7625:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7649:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 3246,
                          "name": "id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3217,
                          "src": "7642:2:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4838,
                        "src": "7642:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7642:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7625:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3251,
                  "nodeType": "ExpressionStatement",
                  "src": "7625:26:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3252,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3217,
                    "src": "7668:2:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3215,
                  "id": 3253,
                  "nodeType": "Return",
                  "src": "7661:9:7"
                }
              ]
            },
            "documentation": "@notice Create a reusable template, which should be a JSON document.\n Placeholders should use gettext() syntax, eg %s.\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 3255,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 3212,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3211,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2934,
                  "src": "7378:8:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7378:10:7"
              }
            ],
            "name": "createTemplate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3209,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 3255,
                  "src": "7353:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3208,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7353:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7352:16:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3214,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3255,
                  "src": "7409:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7409:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7408:9:7"
            },
            "scope": 4741,
            "src": "7329:348:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3287,
              "nodeType": "Block",
              "src": "8822:153:7",
              "statements": [
                {
                  "assignments": [
                    3273
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3273,
                      "name": "template_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3288,
                      "src": "8832:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3272,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8832:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3277,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3275,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3257,
                        "src": "8869:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3274,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "8854:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3276,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8854:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8832:45:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3279,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3273,
                        "src": "8906:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3280,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3259,
                        "src": "8919:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3281,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "8929:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3282,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3263,
                        "src": "8941:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3283,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3265,
                        "src": "8950:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3284,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3267,
                        "src": "8962:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3278,
                      "name": "askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3364,
                      "src": "8894:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) returns (bytes32)"
                      }
                    },
                    "id": 3285,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8894:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3271,
                  "id": 3286,
                  "nodeType": "Return",
                  "src": "8887:81:7"
                }
              ]
            },
            "documentation": "@notice Create a new reusable template and use it to ask a question\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 3288,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createTemplateAndAskQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3257,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8598:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3256,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8598:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3259,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8623:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3258,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8623:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3261,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8640:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8640:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3263,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8660:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3262,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8660:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3265,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8676:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3264,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8676:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3267,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8695:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3266,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8695:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8588:127:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3270,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8813:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3269,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8813:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8812:9:7"
            },
            "scope": 4741,
            "src": "8551:424:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3363,
              "nodeType": "Block",
              "src": "10092:533:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3310,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3306,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2893,
                            "src": "10111:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 3308,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3307,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3290,
                            "src": "10121:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10111:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3309,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10136:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10111:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 3311,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10139:21:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 3305,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "10103:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10103:58:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3313,
                  "nodeType": "ExpressionStatement",
                  "src": "10103:58:7"
                },
                {
                  "assignments": [
                    3315
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3315,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3364,
                      "src": "10172:20:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3314,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10172:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3324,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3319,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3290,
                            "src": "10222:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3320,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3298,
                            "src": "10235:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3321,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3292,
                            "src": "10247:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3317,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "10205:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10205:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3322,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10205:51:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3316,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "10195:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10195:62:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10172:85:7"
                },
                {
                  "assignments": [
                    3326
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3326,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3364,
                      "src": "10267:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3325,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10267:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3338,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3330,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3315,
                            "src": "10316:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3331,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3294,
                            "src": "10330:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3332,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3296,
                            "src": "10342:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3333,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "10351:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10351:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3335,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3300,
                            "src": "10363:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3328,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "10299:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3329,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10299:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10299:70:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3327,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "10289:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10289:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10267:103:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3340,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3326,
                        "src": "10394:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3341,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3315,
                        "src": "10407:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3342,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "10421:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3343,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "10433:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3344,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3298,
                        "src": "10442:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 3339,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3479,
                      "src": "10381:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32)"
                      }
                    },
                    "id": 3345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10381:72:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3346,
                  "nodeType": "ExpressionStatement",
                  "src": "10381:72:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3348,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3326,
                        "src": "10483:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3349,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "10496:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3350,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10496:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3351,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3290,
                        "src": "10508:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3352,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3292,
                        "src": "10521:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3353,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3315,
                        "src": "10531:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3354,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "10545:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3355,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "10557:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3356,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3298,
                        "src": "10566:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3357,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3300,
                        "src": "10578:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3358,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5395,
                        "src": "10585:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3347,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2791,
                      "src": "10468:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 3359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10468:121:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3360,
                  "nodeType": "EmitStatement",
                  "src": "10463:126:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3361,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3326,
                    "src": "10607:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3304,
                  "id": 3362,
                  "nodeType": "Return",
                  "src": "10600:18:7"
                }
              ]
            },
            "documentation": "@notice Ask a new question and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
            "id": 3364,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3290,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9878:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3289,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9878:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3292,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9899:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3291,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9899:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3294,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9916:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3293,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9916:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3296,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9936:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3295,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9936:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3298,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9952:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3297,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9952:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3300,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9971:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3299,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9971:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9877:108:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3303,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "10083:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3302,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10083:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10082:9:7"
            },
            "scope": 4741,
            "src": "9857:768:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3478,
              "nodeType": "Block",
              "src": "10802:1316:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3381,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3372,
                          "src": "10903:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3382,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10913:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10903:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d75737420626520706f736974697665",
                        "id": 3384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10916:26:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        },
                        "value": "timeout must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        }
                      ],
                      "id": 3380,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "10895:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10895:48:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3386,
                  "nodeType": "ExpressionStatement",
                  "src": "10895:48:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3388,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3372,
                          "src": "10962:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333635",
                          "id": 3389,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10972:8:7",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "365"
                        },
                        "src": "10962:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
                        "id": 3391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10982:36:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        },
                        "value": "timeout must be less than 365 days"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        }
                      ],
                      "id": 3387,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "10954:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10954:65:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3393,
                  "nodeType": "ExpressionStatement",
                  "src": "10954:65:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3397,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3395,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3370,
                          "src": "11038:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3396,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2741,
                          "src": "11052:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11038:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d75737420626520736574",
                        "id": 3398,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11066:24:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        },
                        "value": "arbitrator must be set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        }
                      ],
                      "id": 3394,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "11030:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3399,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11030:61:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3400,
                  "nodeType": "ExpressionStatement",
                  "src": "11030:61:7"
                },
                {
                  "assignments": [
                    3402
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3402,
                      "name": "bounty",
                      "nodeType": "VariableDeclaration",
                      "scope": 3479,
                      "src": "11102:14:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3401,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11102:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3405,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3403,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5393,
                      "src": "11119:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 3404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "11119:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11102:26:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 3409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3406,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5393,
                        "src": "11520:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3407,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11520:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3408,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3370,
                      "src": "11534:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "11520:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3442,
                  "nodeType": "IfStatement",
                  "src": "11516:324:7",
                  "trueBody": {
                    "id": 3441,
                    "nodeType": "Block",
                    "src": "11546:294:7",
                    "statements": [
                      {
                        "assignments": [
                          3411
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 3411,
                            "name": "question_fee",
                            "nodeType": "VariableDeclaration",
                            "scope": 3479,
                            "src": "11560:20:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 3410,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "11560:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 3415,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3412,
                            "name": "arbitrator_question_fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2913,
                            "src": "11583:24:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3414,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3413,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3370,
                            "src": "11608:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11583:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "11560:59:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3419,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 3417,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3402,
                                "src": "11641:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3418,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3411,
                                "src": "11651:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11641:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4554482070726f7669646564206d75737420636f766572207175657374696f6e20666565",
                              "id": 3420,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11665:38:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                                "typeString": "literal_string \"ETH provided must cover question fee\""
                              },
                              "value": "ETH provided must cover question fee"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                                "typeString": "literal_string \"ETH provided must cover question fee\""
                              }
                            ],
                            "id": 3416,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5396,
                              5397
                            ],
                            "referencedDeclaration": 5397,
                            "src": "11633:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 3421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11633:71:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3422,
                        "nodeType": "ExpressionStatement",
                        "src": "11633:71:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3428,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3423,
                            "name": "bounty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3402,
                            "src": "11719:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3426,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3411,
                                "src": "11739:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3424,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3402,
                                "src": "11728:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3425,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4814,
                              "src": "11728:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3427,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11728:24:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11719:33:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3429,
                        "nodeType": "ExpressionStatement",
                        "src": "11719:33:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3439,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3430,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2684,
                              "src": "11766:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 3432,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3431,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3370,
                              "src": "11776:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "11766:21:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3437,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3411,
                                "src": "11816:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3433,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2684,
                                  "src": "11790:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 3435,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3434,
                                  "name": "arbitrator",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3370,
                                  "src": "11800:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "11790:21:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3436,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4838,
                              "src": "11790:25:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11790:39:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11766:63:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3440,
                        "nodeType": "ExpressionStatement",
                        "src": "11766:63:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3443,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "11850:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3445,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3444,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "11860:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11850:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3446,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "content_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2853,
                      "src": "11850:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3447,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3368,
                      "src": "11888:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11850:50:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3449,
                  "nodeType": "ExpressionStatement",
                  "src": "11850:50:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3450,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "11910:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3452,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3451,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "11920:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11910:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3453,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "arbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2855,
                      "src": "11910:33:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3454,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3370,
                      "src": "11946:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "11910:46:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3456,
                  "nodeType": "ExpressionStatement",
                  "src": "11910:46:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3457,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "11966:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3459,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3458,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "11976:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11966:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3460,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "opening_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2857,
                      "src": "11966:33:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3461,
                      "name": "opening_ts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3374,
                      "src": "12002:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "11966:46:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3463,
                  "nodeType": "ExpressionStatement",
                  "src": "11966:46:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3464,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "12022:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3466,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3465,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "12032:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12022:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3467,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2859,
                      "src": "12022:30:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3468,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "12055:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "12022:40:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3470,
                  "nodeType": "ExpressionStatement",
                  "src": "12022:40:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3471,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "12072:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3473,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3472,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "12082:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12072:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3474,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2865,
                      "src": "12072:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3475,
                      "name": "bounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3402,
                      "src": "12104:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12072:38:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3477,
                  "nodeType": "ExpressionStatement",
                  "src": "12072:38:7"
                }
              ]
            },
            "documentation": null,
            "id": 3479,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3377,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3366,
                    "src": "10776:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3378,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3376,
                  "name": "stateNotCreated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2950,
                  "src": "10760:15:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10760:28:7"
              }
            ],
            "name": "_askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3366,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10653:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3365,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10653:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3368,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10674:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3367,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10674:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3370,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10696:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3369,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10696:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3372,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10716:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3371,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10716:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3374,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10732:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3373,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10732:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10652:98:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3379,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10802:0:7"
            },
            "scope": 4741,
            "src": "10631:1487:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3513,
              "nodeType": "Block",
              "src": "12467:194:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3499,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3487,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "12477:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3489,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3488,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3481,
                          "src": "12487:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12477:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3490,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2865,
                      "src": "12477:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3496,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "12543:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12543:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3491,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "12509:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 3493,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3492,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3481,
                              "src": "12519:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12509:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 3494,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bounty",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2865,
                          "src": "12509:29:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3495,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4838,
                        "src": "12509:33:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3498,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12509:44:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12477:76:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3500,
                  "nodeType": "ExpressionStatement",
                  "src": "12477:76:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3502,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3481,
                        "src": "12588:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3503,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "12601:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12601:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3505,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2901,
                            "src": "12612:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                            }
                          },
                          "id": 3507,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3506,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3481,
                            "src": "12622:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12612:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$2872_storage",
                            "typeString": "struct Realitio.Question storage ref"
                          }
                        },
                        "id": 3508,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "bounty",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2865,
                        "src": "12612:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3509,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "12643:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3510,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12643:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3501,
                      "name": "LogFundAnswerBounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2801,
                      "src": "12568:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256,address)"
                      }
                    },
                    "id": 3511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12568:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3512,
                  "nodeType": "EmitStatement",
                  "src": "12563:91:7"
                }
              ]
            },
            "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund",
            "id": 3514,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3484,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3481,
                    "src": "12433:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3485,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3483,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "12423:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "12423:22:7"
              }
            ],
            "name": "fundAnswerBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3482,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3481,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "12393:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3480,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12393:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12392:21:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12467:0:7"
            },
            "scope": 4741,
            "src": "12367:294:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3552,
              "nodeType": "Block",
              "src": "13392:170:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3534,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3516,
                        "src": "13422:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3535,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3518,
                        "src": "13435:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3536,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "13443:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13443:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3538,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "13455:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13455:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 3540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13466:5:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3533,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3795,
                      "src": "13402:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 3541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13402:70:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3542,
                  "nodeType": "ExpressionStatement",
                  "src": "13402:70:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3544,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3516,
                        "src": "13503:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3545,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3518,
                        "src": "13516:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3546,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2901,
                            "src": "13524:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                            }
                          },
                          "id": 3548,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3547,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3516,
                            "src": "13534:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13524:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$2872_storage",
                            "typeString": "struct Realitio.Question storage ref"
                          }
                        },
                        "id": 3549,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timeout",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2859,
                        "src": "13524:30:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 3543,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3824,
                      "src": "13482:20:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 3550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13482:73:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3551,
                  "nodeType": "ExpressionStatement",
                  "src": "13482:73:7"
                }
              ]
            },
            "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 3553,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3523,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3516,
                    "src": "13252:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3522,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "13242:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13242:22:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3526,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3516,
                    "src": "13288:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3527,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3525,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3139,
                  "src": "13273:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13273:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3529,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3516,
                    "src": "13344:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3530,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3520,
                    "src": "13357:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 3531,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3528,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3162,
                  "src": "13309:34:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13309:61:7"
              }
            ],
            "name": "submitAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3516,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "13174:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3515,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13174:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3518,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "13195:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3517,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13195:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3520,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "13211:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3519,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13211:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13173:59:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3532,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13392:0:7"
            },
            "scope": 4741,
            "src": "13152:410:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3637,
              "nodeType": "Block",
              "src": "14773:573:7",
              "statements": [
                {
                  "assignments": [
                    3575
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3575,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3638,
                      "src": "14784:21:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3574,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "14784:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3585,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3579,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3555,
                            "src": "14835:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3580,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3557,
                            "src": "14848:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3581,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "14861:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3582,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "14861:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3577,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "14818:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14818:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14818:53:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3576,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "14808:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14808:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14784:88:7"
                },
                {
                  "assignments": [
                    3587
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3587,
                      "name": "answerer",
                      "nodeType": "VariableDeclaration",
                      "scope": 3638,
                      "src": "14882:16:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3586,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "14882:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3596,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3588,
                            "name": "_answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3561,
                            "src": "14902:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3589,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2741,
                            "src": "14915:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "14902:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 3591,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14901:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 3594,
                      "name": "_answerer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3561,
                      "src": "14944:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 3595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "14901:52:7",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3592,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5393,
                        "src": "14931:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3593,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "14931:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14882:71:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3603,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3598,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2909,
                              "src": "14972:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                              }
                            },
                            "id": 3600,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3599,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3575,
                              "src": "14984:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14972:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                              "typeString": "struct Realitio.Commitment storage ref"
                            }
                          },
                          "id": 3601,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2874,
                          "src": "14972:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3602,
                          "name": "COMMITMENT_NON_EXISTENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2752,
                          "src": "15012:23:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "14972:63:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
                        "id": 3604,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15037:35:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        },
                        "value": "commitment must not already exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        }
                      ],
                      "id": 3597,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "14964:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14964:109:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3606,
                  "nodeType": "ExpressionStatement",
                  "src": "14964:109:7"
                },
                {
                  "assignments": [
                    3608
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3608,
                      "name": "commitment_timeout",
                      "nodeType": "VariableDeclaration",
                      "scope": 3638,
                      "src": "15084:25:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3607,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15084:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3615,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 3614,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3609,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "15112:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3611,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3610,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3555,
                          "src": "15122:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15112:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3612,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2859,
                      "src": "15112:30:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3613,
                      "name": "COMMITMENT_TIMEOUT_RATIO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2755,
                      "src": "15145:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "15112:57:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15084:85:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3616,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2909,
                          "src": "15179:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                          }
                        },
                        "id": 3618,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3617,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3575,
                          "src": "15191:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15179:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                          "typeString": "struct Realitio.Commitment storage ref"
                        }
                      },
                      "id": 3619,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "reveal_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2874,
                      "src": "15179:36:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3624,
                          "name": "commitment_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3608,
                          "src": "15234:18:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3621,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5395,
                              "src": "15225:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3620,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "15218:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 3622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15218:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 3623,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4865,
                        "src": "15218:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 3625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15218:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "15179:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3627,
                  "nodeType": "ExpressionStatement",
                  "src": "15179:74:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3629,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3555,
                        "src": "15284:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3630,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3575,
                        "src": "15297:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3631,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3587,
                        "src": "15312:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3632,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "15322:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15322:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 3634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15333:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3628,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3795,
                      "src": "15264:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 3635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15264:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3636,
                  "nodeType": "ExpressionStatement",
                  "src": "15264:74:7"
                }
              ]
            },
            "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
            "id": 3638,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3564,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3555,
                    "src": "14633:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3565,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3563,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "14623:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14623:22:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3567,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3555,
                    "src": "14669:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3568,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3566,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3139,
                  "src": "14654:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14654:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3570,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3555,
                    "src": "14725:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3571,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3559,
                    "src": "14738:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 3572,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3569,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3162,
                  "src": "14690:34:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14690:61:7"
              }
            ],
            "name": "submitAnswerCommitment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3555,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14531:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3554,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14531:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3557,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14552:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3556,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14552:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3559,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14573:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3558,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14573:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3561,
                  "name": "_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14595:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3560,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14595:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14530:83:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3573,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14773:0:7"
            },
            "scope": 4741,
            "src": "14499:847:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3735,
              "nodeType": "Block",
              "src": "16480:746:7",
              "statements": [
                {
                  "assignments": [
                    3653
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3653,
                      "name": "answer_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3736,
                      "src": "16491:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3652,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "16491:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3661,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3657,
                            "name": "answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3642,
                            "src": "16540:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3658,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3644,
                            "src": "16548:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3655,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "16523:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3656,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16523:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16523:31:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3654,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "16513:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16513:42:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16491:64:7"
                },
                {
                  "assignments": [
                    3663
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3663,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3736,
                      "src": "16565:21:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3662,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "16565:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3672,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3667,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3640,
                            "src": "16616:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3668,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3653,
                            "src": "16629:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3669,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3646,
                            "src": "16642:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3665,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "16599:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3666,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16599:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3670,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16599:48:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3664,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "16589:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3671,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16589:59:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16565:83:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3678,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "16667:39:7",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3674,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2909,
                              "src": "16668:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                              }
                            },
                            "id": 3676,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3675,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3663,
                              "src": "16680:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16668:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                              "typeString": "struct Realitio.Commitment storage ref"
                            }
                          },
                          "id": 3677,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_revealed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2876,
                          "src": "16668:38:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
                        "id": 3679,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16708:44:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        },
                        "value": "commitment must not have been revealed yet"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        }
                      ],
                      "id": 3673,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "16659:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16659:94:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3681,
                  "nodeType": "ExpressionStatement",
                  "src": "16659:94:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3683,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2909,
                              "src": "16771:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                              }
                            },
                            "id": 3685,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3684,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3663,
                              "src": "16783:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16771:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                              "typeString": "struct Realitio.Commitment storage ref"
                            }
                          },
                          "id": 3686,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2874,
                          "src": "16771:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3688,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5395,
                              "src": "16817:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16810:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 3689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16810:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "16771:50:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 3691,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16823:38:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        },
                        "value": "reveal deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        }
                      ],
                      "id": 3682,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "16763:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3692,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16763:99:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3693,
                  "nodeType": "ExpressionStatement",
                  "src": "16763:99:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3699,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3694,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2909,
                          "src": "16873:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                          }
                        },
                        "id": 3696,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3695,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3663,
                          "src": "16885:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16873:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                          "typeString": "struct Realitio.Commitment storage ref"
                        }
                      },
                      "id": 3697,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealed_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2878,
                      "src": "16873:42:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3698,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3642,
                      "src": "16918:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16873:51:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3700,
                  "nodeType": "ExpressionStatement",
                  "src": "16873:51:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3701,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2909,
                          "src": "16934:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                          }
                        },
                        "id": 3703,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3702,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3663,
                          "src": "16946:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16934:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                          "typeString": "struct Realitio.Commitment storage ref"
                        }
                      },
                      "id": 3704,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_revealed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2876,
                      "src": "16934:38:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16975:4:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "16934:45:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3707,
                  "nodeType": "ExpressionStatement",
                  "src": "16934:45:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3708,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3646,
                      "src": "16994:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3709,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "17002:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3711,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3710,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3640,
                          "src": "17012:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17002:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3712,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2871,
                      "src": "17002:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16994:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3724,
                  "nodeType": "IfStatement",
                  "src": "16990:139:7",
                  "trueBody": {
                    "id": 3723,
                    "nodeType": "Block",
                    "src": "17031:98:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3715,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3640,
                              "src": "17066:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3716,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3642,
                              "src": "17079:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3717,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2901,
                                  "src": "17087:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                  }
                                },
                                "id": 3719,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3718,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3640,
                                  "src": "17097:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "17087:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$2872_storage",
                                  "typeString": "struct Realitio.Question storage ref"
                                }
                              },
                              "id": 3720,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeout",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2859,
                              "src": "17087:30:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 3714,
                            "name": "_updateCurrentAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3824,
                            "src": "17045:20:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                              "typeString": "function (bytes32,bytes32,uint32)"
                            }
                          },
                          "id": 3721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17045:73:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3722,
                        "nodeType": "ExpressionStatement",
                        "src": "17045:73:7"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3726,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3640,
                        "src": "17160:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3727,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "17173:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "17173:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3729,
                        "name": "answer_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3653,
                        "src": "17185:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3730,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3642,
                        "src": "17198:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3731,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3644,
                        "src": "17206:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3732,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3646,
                        "src": "17213:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3725,
                      "name": "LogAnswerReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2831,
                      "src": "17144:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32,bytes32,uint256,uint256)"
                      }
                    },
                    "id": 3733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17144:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3734,
                  "nodeType": "EmitStatement",
                  "src": "17139:79:7"
                }
              ]
            },
            "documentation": "@notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n Updates the current answer unless someone has since supplied a new answer with a higher bond\n msg.sender is intentionally not restricted to the user who originally sent the commitment; \n For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n @param question_id The ID of the question\n @param answer The answer, encoded as bytes32\n @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n @param bond The bond that you paid in your submitAnswerCommitment() transaction",
            "id": 3736,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3649,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3640,
                    "src": "16454:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3650,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3648,
                  "name": "stateOpenOrPendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3085,
                  "src": "16424:29:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16424:42:7"
              }
            ],
            "name": "submitAnswerReveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3640,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16349:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3639,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16349:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3642,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16370:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3641,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16370:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3644,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16386:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3643,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16386:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3646,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16401:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3645,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16401:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16348:66:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3651,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16480:0:7"
            },
            "scope": 4741,
            "src": "16321:905:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3794,
              "nodeType": "Block",
              "src": "17386:524:7",
              "statements": [
                {
                  "assignments": [
                    3750
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3750,
                      "name": "new_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3795,
                      "src": "17396:24:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3749,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17396:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3764,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3754,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2901,
                                "src": "17450:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                }
                              },
                              "id": 3756,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3755,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3738,
                                "src": "17460:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17450:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$2872_storage",
                                "typeString": "struct Realitio.Question storage ref"
                              }
                            },
                            "id": 3757,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "history_hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2869,
                            "src": "17450:35:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3758,
                            "name": "answer_or_commitment_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3740,
                            "src": "17487:23:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3759,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3744,
                            "src": "17512:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3760,
                            "name": "answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3742,
                            "src": "17518:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3761,
                            "name": "is_commitment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3746,
                            "src": "17528:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3752,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "17433:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3753,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "17433:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17433:109:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3751,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "17423:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17423:120:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17396:147:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3765,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3744,
                      "src": "17651:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3766,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17658:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17651:8:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3776,
                  "nodeType": "IfStatement",
                  "src": "17647:73:7",
                  "trueBody": {
                    "id": 3775,
                    "nodeType": "Block",
                    "src": "17661:59:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3768,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2901,
                                "src": "17675:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                }
                              },
                              "id": 3770,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3769,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3738,
                                "src": "17685:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17675:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$2872_storage",
                                "typeString": "struct Realitio.Question storage ref"
                              }
                            },
                            "id": 3771,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2871,
                            "src": "17675:27:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 3772,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3744,
                            "src": "17705:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17675:34:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3774,
                        "nodeType": "ExpressionStatement",
                        "src": "17675:34:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3777,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "17729:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3779,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3778,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3738,
                          "src": "17739:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17729:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3780,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2869,
                      "src": "17729:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3781,
                      "name": "new_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3750,
                      "src": "17767:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "17729:54:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3783,
                  "nodeType": "ExpressionStatement",
                  "src": "17729:54:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3785,
                        "name": "answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3740,
                        "src": "17812:23:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3786,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3738,
                        "src": "17837:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3787,
                        "name": "new_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3750,
                        "src": "17850:16:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3788,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3742,
                        "src": "17868:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3789,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3744,
                        "src": "17878:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3790,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5395,
                        "src": "17884:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3791,
                        "name": "is_commitment",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3746,
                        "src": "17889:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3784,
                      "name": "LogNewAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2817,
                      "src": "17799:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,address,uint256,uint256,bool)"
                      }
                    },
                    "id": 3792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17799:104:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3793,
                  "nodeType": "EmitStatement",
                  "src": "17794:109:7"
                }
              ]
            },
            "documentation": null,
            "id": 3795,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAnswerToHistory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3738,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17261:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17261:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3740,
                  "name": "answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17282:31:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3739,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17282:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3742,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17315:16:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3741,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17315:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3744,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17333:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3743,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17333:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3746,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17347:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3745,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "17347:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17260:106:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3748,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17386:0:7"
            },
            "scope": 4741,
            "src": "17232:678:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3823,
              "nodeType": "Block",
              "src": "18017:136:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3809,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3804,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "18027:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3806,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3805,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3797,
                          "src": "18037:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18027:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3807,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "best_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2867,
                      "src": "18027:34:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3808,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3799,
                      "src": "18064:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "18027:43:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3810,
                  "nodeType": "ExpressionStatement",
                  "src": "18027:43:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3821,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3811,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "18080:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3813,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3812,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3797,
                          "src": "18090:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18080:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3814,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalize_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2861,
                      "src": "18080:34:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3819,
                          "name": "timeout_secs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3801,
                          "src": "18133:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3816,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5395,
                              "src": "18124:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "18117:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 3817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18117:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 3818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4865,
                        "src": "18117:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 3820,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18117:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "18080:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3822,
                  "nodeType": "ExpressionStatement",
                  "src": "18080:66:7"
                }
              ]
            },
            "documentation": null,
            "id": 3824,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateCurrentAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3802,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3797,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3824,
                  "src": "17946:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3796,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17946:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3799,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3824,
                  "src": "17967:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3798,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17967:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3801,
                  "name": "timeout_secs",
                  "nodeType": "VariableDeclaration",
                  "scope": 3824,
                  "src": "17983:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3800,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17983:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17945:58:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3803,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18017:0:7"
            },
            "scope": 4741,
            "src": "17916:237:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3865,
              "nodeType": "Block",
              "src": "18883:257:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3849,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3844,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "18901:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 3846,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3845,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3826,
                              "src": "18911:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "18901:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 3847,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2871,
                          "src": "18901:27:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18931:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "18901:31:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
                        "id": 3850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18934:68:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        },
                        "value": "Question must already have an answer when arbitration is requested"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        }
                      ],
                      "id": 3843,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "18893:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18893:110:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3852,
                  "nodeType": "ExpressionStatement",
                  "src": "18893:110:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3853,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "19013:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3855,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3854,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3826,
                          "src": "19023:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19013:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3856,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2863,
                      "src": "19013:45:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3857,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19061:4:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "19013:52:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3859,
                  "nodeType": "ExpressionStatement",
                  "src": "19013:52:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3861,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3826,
                        "src": "19110:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3862,
                        "name": "requester",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3828,
                        "src": "19123:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3860,
                      "name": "LogNotifyOfArbitrationRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2837,
                      "src": "19080:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 3863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19080:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3864,
                  "nodeType": "EmitStatement",
                  "src": "19075:58:7"
                }
              ]
            },
            "documentation": "@notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n @param question_id The ID of the question\n @param requester The account that requested arbitration\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 3866,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3833,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3826,
                    "src": "18756:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3834,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3832,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2930,
                  "src": "18741:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18741:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3836,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3826,
                    "src": "18787:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3837,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3835,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "18777:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18777:22:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3839,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3826,
                    "src": "18843:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3840,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3830,
                    "src": "18856:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 3841,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3838,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3162,
                  "src": "18808:34:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18808:61:7"
              }
            ],
            "name": "notifyOfArbitrationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3826,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "18670:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3825,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18670:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3828,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "18691:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3827,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18691:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3830,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "18710:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18710:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18669:62:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3842,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18883:0:7"
            },
            "scope": 4741,
            "src": "18634:506:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3916,
              "nodeType": "Block",
              "src": "19943:316:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3884,
                          "name": "answerer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3872,
                          "src": "19962:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3885,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2741,
                          "src": "19974:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "19962:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616e737765726572206d7573742062652070726f7669646564",
                        "id": 3887,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19988:27:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        },
                        "value": "answerer must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        }
                      ],
                      "id": 3883,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "19954:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19954:62:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3889,
                  "nodeType": "ExpressionStatement",
                  "src": "19954:62:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3891,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3868,
                        "src": "20043:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3892,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "20056:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3890,
                      "name": "LogFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2843,
                      "src": "20031:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 3893,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20031:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3894,
                  "nodeType": "EmitStatement",
                  "src": "20026:37:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3895,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "20074:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3897,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3896,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3868,
                          "src": "20084:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20074:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3898,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2863,
                      "src": "20074:45:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3899,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20122:5:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "20074:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3901,
                  "nodeType": "ExpressionStatement",
                  "src": "20074:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3903,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3868,
                        "src": "20157:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3904,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "20170:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3905,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3872,
                        "src": "20178:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3906,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20188:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 3907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20191:5:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3902,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3795,
                      "src": "20137:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 3908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20137:60:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3909,
                  "nodeType": "ExpressionStatement",
                  "src": "20137:60:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3911,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3868,
                        "src": "20228:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3912,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "20241:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20249:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 3910,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3824,
                      "src": "20207:20:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 3914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20207:44:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3915,
                  "nodeType": "ExpressionStatement",
                  "src": "20207:44:7"
                }
              ]
            },
            "documentation": "@notice Submit the answer for a question, for use by the arbitrator.\n @dev Doesn't require (or allow) a bond.\n If the current final answer is correct, the account should be whoever submitted it.\n If the current final answer is wrong, the account should be whoever paid for arbitration.\n However, the answerer stipulations are not enforced by the contract.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param answerer The account credited with this answer for the purpose of bond claims",
            "id": 3917,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3875,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3868,
                    "src": "19849:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3876,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3874,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2930,
                  "src": "19834:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19834:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3878,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3868,
                    "src": "19894:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3879,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3877,
                  "name": "statePendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3029,
                  "src": "19870:23:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19870:36:7"
              },
              {
                "arguments": null,
                "id": 3881,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3880,
                  "name": "bondMustBeZero",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3110,
                  "src": "19915:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19915:14:7"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3868,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3917,
                  "src": "19770:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3867,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19770:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3870,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3917,
                  "src": "19791:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3869,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19791:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3872,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3917,
                  "src": "19807:16:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3871,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19807:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19769:55:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3882,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19943:0:7"
            },
            "scope": 4741,
            "src": "19736:523:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3950,
              "nodeType": "Block",
              "src": "20511:201:7",
              "statements": [
                {
                  "assignments": [
                    3925
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3925,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3951,
                      "src": "20521:18:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3924,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20521:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3930,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3926,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "20542:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3928,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3927,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3919,
                        "src": "20552:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "20542:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3929,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "20542:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20521:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3947,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 3940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3935,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "20595:46:7",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3931,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2901,
                                  "src": "20596:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                  }
                                },
                                "id": 3933,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3932,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3919,
                                  "src": "20606:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20596:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$2872_storage",
                                  "typeString": "struct Realitio.Question storage ref"
                                }
                              },
                              "id": 3934,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "is_pending_arbitration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2863,
                              "src": "20596:45:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 3938,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 3936,
                                  "name": "finalize_ts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3925,
                                  "src": "20646:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 3937,
                                  "name": "UNANSWERED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2749,
                                  "src": "20660:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "20646:24:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 3939,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "20645:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "20595:76:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 3945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 3941,
                                "name": "finalize_ts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3925,
                                "src": "20676:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3943,
                                    "name": "now",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5395,
                                    "src": "20698:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 3942,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "20691:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint32_$",
                                    "typeString": "type(uint32)"
                                  },
                                  "typeName": "uint32"
                                },
                                "id": 3944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20691:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "20676:26:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3946,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "20675:28:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "20595:108:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 3948,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "20593:112:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3923,
                  "id": 3949,
                  "nodeType": "Return",
                  "src": "20586:119:7"
                }
              ]
            },
            "documentation": "@notice Report whether the answer to the specified question is finalized\n @param question_id The ID of the question\n @return Return true if finalized",
            "id": 3951,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3919,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3951,
                  "src": "20458:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3918,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20458:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20457:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3923,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3922,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3951,
                  "src": "20505:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3921,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20505:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20504:6:7"
            },
            "scope": 4741,
            "src": "20437:275:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3966,
              "nodeType": "Block",
              "src": "21045:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3961,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "21062:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3963,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3962,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3953,
                        "src": "21072:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "21062:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3964,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "21062:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3960,
                  "id": 3965,
                  "nodeType": "Return",
                  "src": "21055:41:7"
                }
              ]
            },
            "documentation": "@notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 3967,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3956,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3953,
                    "src": "20996:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3957,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3955,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "20981:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20981:27:7"
              }
            ],
            "name": "getFinalAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3953,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3967,
                  "src": "20951:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3952,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20951:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20950:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3959,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3967,
                  "src": "21036:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3958,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21036:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21035:9:7"
            },
            "scope": 4741,
            "src": "20927:176:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3982,
              "nodeType": "Block",
              "src": "21418:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3977,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "21435:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3979,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3978,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3969,
                        "src": "21445:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "21435:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3980,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "21435:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3976,
                  "id": 3981,
                  "nodeType": "Return",
                  "src": "21428:41:7"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 3983,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3972,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3969,
                    "src": "21369:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3973,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3971,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "21354:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "21354:27:7"
              }
            ],
            "name": "resultFor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3970,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3969,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3983,
                  "src": "21324:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3968,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21324:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21323:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3975,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3983,
                  "src": "21409:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3974,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21409:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21408:9:7"
            },
            "scope": 4741,
            "src": "21305:171:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 4046,
              "nodeType": "Block",
              "src": "22454:427:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 4007,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4002,
                          "name": "content_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3987,
                          "src": "22472:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4003,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22488:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4005,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4004,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22498:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22488:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4006,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "content_hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2853,
                          "src": "22488:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "22472:51:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74656e742068617368206d757374206d61746368",
                        "id": 4008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22525:25:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        },
                        "value": "content hash must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        }
                      ],
                      "id": 4001,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22464:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22464:87:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4010,
                  "nodeType": "ExpressionStatement",
                  "src": "22464:87:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4017,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4012,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3989,
                          "src": "22569:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4013,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22583:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4015,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4014,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22593:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22583:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4016,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2855,
                          "src": "22583:33:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "22569:47:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d757374206d61746368",
                        "id": 4018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22618:23:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        },
                        "value": "arbitrator must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        }
                      ],
                      "id": 4011,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22561:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4019,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22561:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4020,
                  "nodeType": "ExpressionStatement",
                  "src": "22561:81:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4027,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4022,
                          "name": "min_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3991,
                          "src": "22660:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4023,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22675:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4025,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4024,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22685:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22675:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4026,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "22675:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "22660:45:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
                        "id": 4028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22707:29:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        },
                        "value": "timeout must be long enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        }
                      ],
                      "id": 4021,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22652:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22652:85:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4030,
                  "nodeType": "ExpressionStatement",
                  "src": "22652:85:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4037,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4032,
                          "name": "min_bond",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3993,
                          "src": "22755:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4033,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22767:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4035,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4034,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22777:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22767:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4036,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2871,
                          "src": "22767:27:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "22755:39:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
                        "id": 4038,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22796:26:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        },
                        "value": "bond must be high enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        }
                      ],
                      "id": 4031,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22747:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4039,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22747:76:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4040,
                  "nodeType": "ExpressionStatement",
                  "src": "22747:76:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4041,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "22840:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4043,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4042,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "22850:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "22840:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4044,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "22840:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4000,
                  "id": 4045,
                  "nodeType": "Return",
                  "src": "22833:41:7"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, provided it matches the specified criteria.\n @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n @param question_id The ID of the question\n @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n @param min_timeout The timeout set in the initial question settings must be this high or higher\n @param min_bond The bond sent with the final answer must be this high or higher\n @return The answer formatted as a bytes32",
            "id": 4047,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3996,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3985,
                    "src": "22405:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3997,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3995,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "22390:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22390:27:7"
              }
            ],
            "name": "getFinalAnswerIfMatches",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3985,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22266:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3984,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22266:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3987,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22296:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3986,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22296:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3989,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22318:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3988,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22318:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3991,
                  "name": "min_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22338:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3990,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22338:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3993,
                  "name": "min_bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22358:16:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3992,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22358:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22256:124:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3999,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22445:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22445:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22444:9:7"
            },
            "scope": 4741,
            "src": "22224:657:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 4247,
              "nodeType": "Block",
              "src": "24393:2585:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4068,
                            "name": "history_hashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4052,
                            "src": "24412:14:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 4069,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "24412:21:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4070,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "24436:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "24412:25:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
                        "id": 4072,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "24439:50:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        },
                        "value": "at least one history hash entry must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        }
                      ],
                      "id": 4067,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "24404:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24404:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4074,
                  "nodeType": "ExpressionStatement",
                  "src": "24404:86:7"
                },
                {
                  "assignments": [
                    4076
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4076,
                      "name": "payee",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24581:13:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 4075,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "24581:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4081,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4077,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2905,
                        "src": "24597:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                        }
                      },
                      "id": 4079,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4078,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "24613:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24597:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$2886_storage",
                        "typeString": "struct Realitio.Claim storage ref"
                      }
                    },
                    "id": 4080,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "payee",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2881,
                    "src": "24597:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24581:50:7"
                },
                {
                  "assignments": [
                    4083
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4083,
                      "name": "last_bond",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24642:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4082,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "24642:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4088,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4084,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2905,
                        "src": "24662:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                        }
                      },
                      "id": 4086,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4085,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "24678:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24662:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$2886_storage",
                        "typeString": "struct Realitio.Claim storage ref"
                      }
                    },
                    "id": 4087,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "last_bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2883,
                    "src": "24662:38:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24642:58:7"
                },
                {
                  "assignments": [
                    4090
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4090,
                      "name": "queued_funds",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24711:20:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4089,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "24711:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4095,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4091,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2905,
                        "src": "24734:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                        }
                      },
                      "id": 4093,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4092,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "24750:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24734:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$2886_storage",
                        "typeString": "struct Realitio.Claim storage ref"
                      }
                    },
                    "id": 4094,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "queued_funds",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2885,
                    "src": "24734:41:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24711:64:7"
                },
                {
                  "assignments": [
                    4097
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4097,
                      "name": "last_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24996:25:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4096,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "24996:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4102,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4098,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "25024:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4100,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4099,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "25034:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "25024:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4101,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2869,
                    "src": "25024:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24996:63:7"
                },
                {
                  "assignments": [
                    4104
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4104,
                      "name": "best_answer",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "25070:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4103,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "25070:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4109,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4105,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "25092:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4107,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4106,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "25102:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "25092:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4108,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "25092:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25070:56:7"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4111,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "25137:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4110,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25137:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4112,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25137:9:7"
                },
                {
                  "body": {
                    "id": 4182,
                    "nodeType": "Block",
                    "src": "25200:702:7",
                    "statements": [
                      {
                        "assignments": [
                          4125
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4125,
                            "name": "is_commitment",
                            "nodeType": "VariableDeclaration",
                            "scope": 4248,
                            "src": "25334:18:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 4124,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "25334:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4141,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4127,
                              "name": "last_history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4097,
                              "src": "25383:17:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4128,
                                "name": "history_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4052,
                                "src": "25402:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 4130,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4129,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25417:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25402:17:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4131,
                                "name": "answers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4061,
                                "src": "25421:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 4133,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4132,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25429:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25421:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4134,
                                "name": "bonds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4058,
                                "src": "25433:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 4136,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4135,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25439:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25433:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4137,
                                "name": "addrs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4055,
                                "src": "25443:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 4139,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4138,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25449:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25443:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4126,
                            "name": "_verifyHistoryInputOrRevert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4327,
                            "src": "25355:27:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (bytes32,bytes32,bytes32,uint256,address) pure returns (bool)"
                            }
                          },
                          "id": 4140,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25355:97:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "25334:118:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4147,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4142,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4090,
                            "src": "25479:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4145,
                                "name": "last_bond",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4083,
                                "src": "25511:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4143,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4090,
                                "src": "25494:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4144,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4838,
                              "src": "25494:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4146,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25494:27:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "25479:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4148,
                        "nodeType": "ExpressionStatement",
                        "src": "25479:42:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4168,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 4149,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4090,
                                "src": "25537:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4150,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4076,
                                "src": "25551:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 4151,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "25536:21:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4153,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "25597:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4154,
                                "name": "best_answer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4104,
                                "src": "25610:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4155,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4090,
                                "src": "25623:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4156,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4076,
                                "src": "25637:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4157,
                                  "name": "addrs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4055,
                                  "src": "25661:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 4159,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4158,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4111,
                                  "src": "25667:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "25661:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4160,
                                  "name": "bonds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4058,
                                  "src": "25671:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 4162,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4161,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4111,
                                  "src": "25677:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "25671:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4163,
                                  "name": "answers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4061,
                                  "src": "25681:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 4165,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4164,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4111,
                                  "src": "25689:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "25681:10:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4166,
                                "name": "is_commitment",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4125,
                                "src": "25693:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 4152,
                              "name": "_processHistoryItem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4454,
                              "src": "25560:19:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$_t_address_$",
                                "typeString": "function (bytes32,bytes32,uint256,address,address,uint256,bytes32,bool) returns (uint256,address)"
                              }
                            },
                            "id": 4167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25560:147:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "src": "25536:171:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4169,
                        "nodeType": "ExpressionStatement",
                        "src": "25536:171:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4170,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4083,
                            "src": "25819:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4171,
                              "name": "bonds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4058,
                              "src": "25831:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 4173,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4172,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4111,
                              "src": "25837:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25831:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "25819:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4175,
                        "nodeType": "ExpressionStatement",
                        "src": "25819:20:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4176,
                            "name": "last_history_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4097,
                            "src": "25853:17:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4177,
                              "name": "history_hashes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4052,
                              "src": "25873:14:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 4179,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4178,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4111,
                              "src": "25888:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25873:17:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "25853:37:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 4181,
                        "nodeType": "ExpressionStatement",
                        "src": "25853:37:7"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4117,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4111,
                      "src": "25168:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4118,
                        "name": "history_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4052,
                        "src": "25172:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 4119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "25172:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "25168:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4183,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4115,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4113,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4111,
                        "src": "25161:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25165:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "25161:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4116,
                    "nodeType": "ExpressionStatement",
                    "src": "25161:5:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "25195:3:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4121,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4111,
                        "src": "25195:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4123,
                    "nodeType": "ExpressionStatement",
                    "src": "25195:3:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "25156:746:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4184,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4097,
                      "src": "25917:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4185,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2746,
                      "src": "25938:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "25917:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 4238,
                    "nodeType": "Block",
                    "src": "26692:213:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4225,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4049,
                              "src": "26797:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4226,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4076,
                              "src": "26810:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 4229,
                                  "name": "last_bond",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4083,
                                  "src": "26834:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4227,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4090,
                                  "src": "26817:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 4228,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4838,
                                "src": "26817:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 4230,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26817:27:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4224,
                            "name": "_payPayee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4275,
                            "src": "26787:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256)"
                            }
                          },
                          "id": 4231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26787:58:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4232,
                        "nodeType": "ExpressionStatement",
                        "src": "26787:58:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4236,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "26859:35:7",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4233,
                              "name": "question_claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2905,
                              "src": "26866:15:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                              }
                            },
                            "id": 4235,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4234,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4049,
                              "src": "26882:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "26866:28:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$2886_storage",
                              "typeString": "struct Realitio.Claim storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4237,
                        "nodeType": "ExpressionStatement",
                        "src": "26859:35:7"
                      }
                    ]
                  },
                  "id": 4239,
                  "nodeType": "IfStatement",
                  "src": "25913:992:7",
                  "trueBody": {
                    "id": 4223,
                    "nodeType": "Block",
                    "src": "25949:737:7",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4187,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4076,
                            "src": "26352:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4188,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2741,
                            "src": "26361:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "26352:21:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4201,
                        "nodeType": "IfStatement",
                        "src": "26348:137:7",
                        "trueBody": {
                          "id": 4200,
                          "nodeType": "Block",
                          "src": "26375:110:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 4191,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4049,
                                    "src": "26403:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4192,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4076,
                                    "src": "26416:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4193,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4090,
                                    "src": "26423:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 4190,
                                  "name": "_payPayee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4275,
                                  "src": "26393:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256)"
                                  }
                                },
                                "id": 4194,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "26393:43:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 4195,
                              "nodeType": "ExpressionStatement",
                              "src": "26393:43:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4198,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4196,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4090,
                                  "src": "26454:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 4197,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "26469:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "26454:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4199,
                              "nodeType": "ExpressionStatement",
                              "src": "26454:16:7"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4202,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2905,
                                "src": "26499:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                                }
                              },
                              "id": 4204,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4203,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "26515:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26499:28:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$2886_storage",
                                "typeString": "struct Realitio.Claim storage ref"
                              }
                            },
                            "id": 4205,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2881,
                            "src": "26499:34:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 4206,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4076,
                            "src": "26536:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "26499:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 4208,
                        "nodeType": "ExpressionStatement",
                        "src": "26499:42:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4209,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2905,
                                "src": "26555:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                                }
                              },
                              "id": 4211,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4210,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "26571:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26555:28:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$2886_storage",
                                "typeString": "struct Realitio.Claim storage ref"
                              }
                            },
                            "id": 4212,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "last_bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2883,
                            "src": "26555:38:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 4213,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4083,
                            "src": "26596:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26555:50:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4215,
                        "nodeType": "ExpressionStatement",
                        "src": "26555:50:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4216,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2905,
                                "src": "26619:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                                }
                              },
                              "id": 4218,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4217,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "26635:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26619:28:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$2886_storage",
                                "typeString": "struct Realitio.Claim storage ref"
                              }
                            },
                            "id": 4219,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "queued_funds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2885,
                            "src": "26619:41:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 4220,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4090,
                            "src": "26663:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26619:56:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4222,
                        "nodeType": "ExpressionStatement",
                        "src": "26619:56:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4240,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "26915:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 4242,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4241,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4049,
                          "src": "26925:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "26915:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 4243,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2869,
                      "src": "26915:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4244,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4097,
                      "src": "26953:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "26915:55:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4246,
                  "nodeType": "ExpressionStatement",
                  "src": "26915:55:7"
                }
              ]
            },
            "documentation": "@notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n Caller must provide the answer history, in reverse order\n @dev Works up the chain and assign bonds to the person who gave the right answer\n If someone gave the winning answer earlier, they must get paid from the higher bond\n That means we can't pay out the bond added at n until we have looked at n-1\n The first answer is authenticated by checking against the stored history_hash.\n One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n Once we get to a null hash we'll know we're done and there are no more answers.\n Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n @param question_id The ID of the question\n @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n @param addrs Last-to-first, the address of each answerer or commitment sender\n @param bonds Last-to-first, the bond supplied with each answer or commitment\n @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal",
            "id": 4248,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 4064,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4049,
                    "src": "24369:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 4065,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4063,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "24354:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24354:27:7"
              }
            ],
            "name": "claimWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4049,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24231:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4048,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24231:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4052,
                  "name": "history_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24261:24:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4050,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "24261:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4051,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24261:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4055,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24287:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4053,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "24287:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4054,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24287:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4058,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24304:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4056,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "24304:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4057,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24304:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4061,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24321:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4059,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "24321:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4060,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24321:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24221:123:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4066,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24393:0:7"
            },
            "scope": 4741,
            "src": "24199:2779:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4274,
              "nodeType": "Block",
              "src": "27068:113:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4257,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2684,
                        "src": "27078:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 4259,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4258,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4252,
                        "src": "27088:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "27078:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4264,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4254,
                          "src": "27118:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4260,
                            "name": "balanceOf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2684,
                            "src": "27097:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 4262,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4261,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4252,
                            "src": "27107:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "27097:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4263,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4838,
                        "src": "27097:20:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4265,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "27097:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "27078:46:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4267,
                  "nodeType": "ExpressionStatement",
                  "src": "27078:46:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4269,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4250,
                        "src": "27148:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4270,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4252,
                        "src": "27161:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4271,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4254,
                        "src": "27168:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4268,
                      "name": "LogClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2851,
                      "src": "27139:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 4272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27139:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4273,
                  "nodeType": "EmitStatement",
                  "src": "27134:40:7"
                }
              ]
            },
            "documentation": null,
            "id": 4275,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_payPayee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4250,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4275,
                  "src": "27003:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4249,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27003:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4252,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 4275,
                  "src": "27024:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4251,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27024:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4254,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 4275,
                  "src": "27039:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4253,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27039:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27002:51:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4256,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27068:0:7"
            },
            "scope": 4741,
            "src": "26984:197:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4326,
              "nodeType": "Block",
              "src": "27372:364:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4290,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4277,
                      "src": "27386:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4294,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4279,
                              "src": "27434:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4295,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4281,
                              "src": "27448:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4296,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4283,
                              "src": "27456:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4297,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4285,
                              "src": "27462:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 4298,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "27468:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4292,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5380,
                              "src": "27417:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 4293,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "27417:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 4299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27417:56:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4291,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5387,
                        "src": "27407:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 4300,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "27407:67:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "27386:88:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4305,
                  "nodeType": "IfStatement",
                  "src": "27382:131:7",
                  "trueBody": {
                    "id": 4304,
                    "nodeType": "Block",
                    "src": "27477:36:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 4302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27498:4:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 4289,
                        "id": 4303,
                        "nodeType": "Return",
                        "src": "27491:11:7"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4306,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4277,
                      "src": "27526:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4310,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4279,
                              "src": "27574:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4311,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4281,
                              "src": "27588:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4312,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4283,
                              "src": "27596:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4313,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4285,
                              "src": "27602:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 4314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "27608:5:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4308,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5380,
                              "src": "27557:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 4309,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "27557:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 4315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27557:57:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4307,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5387,
                        "src": "27547:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 4316,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "27547:68:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "27526:89:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4321,
                  "nodeType": "IfStatement",
                  "src": "27522:133:7",
                  "trueBody": {
                    "id": 4320,
                    "nodeType": "Block",
                    "src": "27618:37:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27639:5:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4289,
                        "id": 4319,
                        "nodeType": "Return",
                        "src": "27632:12:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
                        "id": 4323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "27672:56:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        },
                        "value": "History input provided did not match the expected hash"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        }
                      ],
                      "id": 4322,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5398,
                        5399
                      ],
                      "referencedDeclaration": 5399,
                      "src": "27665:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 4324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27665:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4325,
                  "nodeType": "ExpressionStatement",
                  "src": "27665:64:7"
                }
              ]
            },
            "documentation": null,
            "id": 4327,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_verifyHistoryInputOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4277,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27233:25:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4276,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27233:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4279,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27268:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4278,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27268:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4281,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27290:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4280,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27290:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4283,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27306:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4282,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27306:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4285,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27320:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4284,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27320:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27223:115:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4289,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4288,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27366:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4287,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27366:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27365:6:7"
            },
            "scope": 4741,
            "src": "27187:549:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4453,
              "nodeType": "Block",
              "src": "27986:2168:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4350,
                    "name": "is_commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4343,
                    "src": "28185:13:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4385,
                  "nodeType": "IfStatement",
                  "src": "28181:482:7",
                  "trueBody": {
                    "id": 4384,
                    "nodeType": "Block",
                    "src": "28200:463:7",
                    "statements": [
                      {
                        "assignments": [
                          4352
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4352,
                            "name": "commitment_id",
                            "nodeType": "VariableDeclaration",
                            "scope": 4454,
                            "src": "28214:21:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 4351,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "28214:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4354,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 4353,
                          "name": "answer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4341,
                          "src": "28238:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28214:30:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 4359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "28359:39:7",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4355,
                                "name": "commitments",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2909,
                                "src": "28360:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                }
                              },
                              "id": 4357,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4356,
                                "name": "commitment_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4352,
                                "src": "28372:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28360:26:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                "typeString": "struct Realitio.Commitment storage ref"
                              }
                            },
                            "id": 4358,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "is_revealed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2876,
                            "src": "28360:38:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 4382,
                          "nodeType": "Block",
                          "src": "28518:135:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4375,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4370,
                                  "name": "answer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4341,
                                  "src": "28536:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 4371,
                                      "name": "commitments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2909,
                                      "src": "28545:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                        "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                      }
                                    },
                                    "id": 4373,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 4372,
                                      "name": "commitment_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4352,
                                      "src": "28557:13:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "28545:26:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                      "typeString": "struct Realitio.Commitment storage ref"
                                    }
                                  },
                                  "id": 4374,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealed_answer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2878,
                                  "src": "28545:42:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "28536:51:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4376,
                              "nodeType": "ExpressionStatement",
                              "src": "28536:51:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4380,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "28605:33:7",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4377,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2909,
                                    "src": "28612:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                      "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                    }
                                  },
                                  "id": 4379,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4378,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4352,
                                    "src": "28624:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "28612:26:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                    "typeString": "struct Realitio.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 4381,
                              "nodeType": "ExpressionStatement",
                              "src": "28605:33:7"
                            }
                          ]
                        },
                        "id": 4383,
                        "nodeType": "IfStatement",
                        "src": "28355:298:7",
                        "trueBody": {
                          "id": 4369,
                          "nodeType": "Block",
                          "src": "28400:112:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4363,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "28418:33:7",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4360,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2909,
                                    "src": "28425:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                      "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                    }
                                  },
                                  "id": 4362,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4361,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4352,
                                    "src": "28437:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "28425:26:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                    "typeString": "struct Realitio.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 4364,
                              "nodeType": "ExpressionStatement",
                              "src": "28418:33:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "id": 4365,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4333,
                                    "src": "28477:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4366,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4335,
                                    "src": "28491:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "id": 4367,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "28476:21:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                                  "typeString": "tuple(uint256,address)"
                                }
                              },
                              "functionReturnParameters": 4349,
                              "id": 4368,
                              "nodeType": "Return",
                              "src": "28469:28:7"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4386,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4341,
                      "src": "28677:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4387,
                      "name": "best_answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4331,
                      "src": "28687:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "28677:21:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4448,
                  "nodeType": "IfStatement",
                  "src": "28673:1435:7",
                  "trueBody": {
                    "id": 4447,
                    "nodeType": "Block",
                    "src": "28700:1408:7",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4389,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4335,
                            "src": "28719:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4390,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2741,
                            "src": "28728:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "28719:21:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 4416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4414,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4337,
                              "src": "29058:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 4415,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4335,
                              "src": "29066:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "29058:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 4445,
                          "nodeType": "IfStatement",
                          "src": "29054:1043:7",
                          "trueBody": {
                            "id": 4444,
                            "nodeType": "Block",
                            "src": "29073:1024:7",
                            "statements": [
                              {
                                "assignments": [
                                  4418
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 4418,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4454,
                                    "src": "29692:27:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 4417,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "29692:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 4426,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 4421,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 4419,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4333,
                                          "src": "29723:12:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 4420,
                                          "name": "bond",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4339,
                                          "src": "29739:4:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "29723:20:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 4422,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "29722:22:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "id": 4424,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4333,
                                    "src": "29754:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 4425,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "29722:44:7",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "id": 4423,
                                    "name": "bond",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4339,
                                    "src": "29747:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "29692:74:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 4428,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4329,
                                      "src": "29859:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4429,
                                      "name": "payee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4335,
                                      "src": "29872:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 4432,
                                          "name": "answer_takeover_fee",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4418,
                                          "src": "29896:19:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 4430,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4333,
                                          "src": "29879:12:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 4431,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sub",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4814,
                                        "src": "29879:16:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 4433,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "29879:37:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 4427,
                                    "name": "_payPayee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4275,
                                    "src": "29849:9:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256)"
                                    }
                                  },
                                  "id": 4434,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "29849:68:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 4435,
                                "nodeType": "ExpressionStatement",
                                "src": "29849:68:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4438,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 4436,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4335,
                                    "src": "30017:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 4437,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4337,
                                    "src": "30025:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "src": "30017:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 4439,
                                "nodeType": "ExpressionStatement",
                                "src": "30017:12:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4442,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 4440,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4333,
                                    "src": "30047:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 4441,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4418,
                                    "src": "30062:19:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "30047:34:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 4443,
                                "nodeType": "ExpressionStatement",
                                "src": "30047:34:7"
                              }
                            ]
                          }
                        },
                        "id": 4446,
                        "nodeType": "IfStatement",
                        "src": "28715:1382:7",
                        "trueBody": {
                          "id": 4413,
                          "nodeType": "Block",
                          "src": "28742:306:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4394,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4392,
                                  "name": "payee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4335,
                                  "src": "28889:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 4393,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4337,
                                  "src": "28897:4:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "28889:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4395,
                              "nodeType": "ExpressionStatement",
                              "src": "28889:12:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4404,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4396,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4333,
                                  "src": "28919:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 4399,
                                          "name": "questions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2901,
                                          "src": "28951:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                          }
                                        },
                                        "id": 4401,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 4400,
                                          "name": "question_id",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4329,
                                          "src": "28961:11:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "28951:22:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                                          "typeString": "struct Realitio.Question storage ref"
                                        }
                                      },
                                      "id": 4402,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "bounty",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2865,
                                      "src": "28951:29:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4397,
                                      "name": "queued_funds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4333,
                                      "src": "28934:12:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 4398,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4838,
                                    "src": "28934:16:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 4403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28934:47:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "28919:62:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4405,
                              "nodeType": "ExpressionStatement",
                              "src": "28919:62:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4411,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 4406,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2901,
                                      "src": "28999:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                        "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                      }
                                    },
                                    "id": 4408,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 4407,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4329,
                                      "src": "29009:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "28999:22:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$2872_storage",
                                      "typeString": "struct Realitio.Question storage ref"
                                    }
                                  },
                                  "id": 4409,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "bounty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2865,
                                  "src": "28999:29:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 4410,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29031:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "28999:33:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4412,
                              "nodeType": "ExpressionStatement",
                              "src": "28999:33:7"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 4449,
                        "name": "queued_funds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4333,
                        "src": "30126:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4450,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4335,
                        "src": "30140:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "id": 4451,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "30125:21:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                      "typeString": "tuple(uint256,address)"
                    }
                  },
                  "functionReturnParameters": 4349,
                  "id": 4452,
                  "nodeType": "Return",
                  "src": "30118:28:7"
                }
              ]
            },
            "documentation": null,
            "id": 4454,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_processHistoryItem",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4344,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4329,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27780:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4328,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27780:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4331,
                  "name": "best_answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27801:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4330,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27801:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4333,
                  "name": "queued_funds",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27831:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4332,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27831:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4335,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27853:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4334,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27853:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4337,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27877:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4336,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27877:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4339,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27891:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4338,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27891:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4341,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27905:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4340,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27905:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4343,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27921:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4342,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27921:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27770:175:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4349,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4346,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27968:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4345,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27968:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4348,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27977:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4347,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27977:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27967:18:7"
            },
            "scope": 4741,
            "src": "27742:2412:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4609,
              "nodeType": "Block",
              "src": "31379:723:7",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4478,
                      "name": "qi",
                      "nodeType": "VariableDeclaration",
                      "scope": 4610,
                      "src": "31398:10:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4477,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "31398:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4479,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31398:10:7"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4481,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 4610,
                      "src": "31418:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4480,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "31418:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4482,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31418:9:7"
                },
                {
                  "body": {
                    "id": 4604,
                    "nodeType": "Block",
                    "src": "31482:594:7",
                    "statements": [
                      {
                        "assignments": [
                          4495
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4495,
                            "name": "qid",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31496:11:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 4494,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "31496:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4499,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4496,
                            "name": "question_ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4457,
                            "src": "31510:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 4498,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4497,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4478,
                            "src": "31523:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "31510:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31496:30:7"
                      },
                      {
                        "assignments": [
                          4501
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4501,
                            "name": "ln",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31540:10:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4500,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "31540:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4505,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4502,
                            "name": "lengths",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4460,
                            "src": "31553:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 4504,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4503,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4478,
                            "src": "31561:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "31553:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31540:24:7"
                      },
                      {
                        "assignments": [
                          4509
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4509,
                            "name": "hh",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31578:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4507,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31578:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4508,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31578:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4515,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4513,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31614:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4512,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31600:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4510,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31604:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4511,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31604:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 4514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31600:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31578:39:7"
                      },
                      {
                        "assignments": [
                          4519
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4519,
                            "name": "ad",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31631:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4517,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "31631:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4518,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31631:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4525,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4523,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31667:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4522,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31653:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4520,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "31657:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4521,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31657:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 4524,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31653:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31631:39:7"
                      },
                      {
                        "assignments": [
                          4529
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4529,
                            "name": "bo",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31684:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4527,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "31684:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4528,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31684:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4535,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4533,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31720:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4532,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31706:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (uint256[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4530,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "31710:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4531,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31710:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            }
                          },
                          "id": 4534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31706:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31684:39:7"
                      },
                      {
                        "assignments": [
                          4539
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4539,
                            "name": "an",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31737:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4537,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31737:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4538,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31737:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4545,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4543,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31773:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31759:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4540,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31763:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4541,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31763:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 4544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31759:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31737:39:7"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4547,
                            "name": "j",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31790:9:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4546,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "31790:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4548,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31790:9:7"
                      },
                      {
                        "body": {
                          "id": 4594,
                          "nodeType": "Block",
                          "src": "31838:180:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4565,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4559,
                                    "name": "hh",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4509,
                                    "src": "31856:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4561,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4560,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31859:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31856:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4562,
                                    "name": "hist_hashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4463,
                                    "src": "31864:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4564,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4563,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31876:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31864:14:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31856:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4566,
                              "nodeType": "ExpressionStatement",
                              "src": "31856:22:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4573,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4567,
                                    "name": "ad",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4519,
                                    "src": "31896:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 4569,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4568,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31899:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31896:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4570,
                                    "name": "addrs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4466,
                                    "src": "31904:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 4572,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4571,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31910:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31904:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "31896:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4574,
                              "nodeType": "ExpressionStatement",
                              "src": "31896:16:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4581,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4575,
                                    "name": "bo",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4529,
                                    "src": "31930:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 4577,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4576,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31933:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31930:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4578,
                                    "name": "bonds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4469,
                                    "src": "31938:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 4580,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4579,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31944:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31938:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "31930:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4582,
                              "nodeType": "ExpressionStatement",
                              "src": "31930:16:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4589,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4583,
                                    "name": "an",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4539,
                                    "src": "31964:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4585,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4584,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31967:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31964:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4586,
                                    "name": "answers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4472,
                                    "src": "31972:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4588,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4587,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31980:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31972:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31964:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4590,
                              "nodeType": "ExpressionStatement",
                              "src": "31964:18:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "32000:3:7",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 4591,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4481,
                                  "src": "32000:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4593,
                              "nodeType": "ExpressionStatement",
                              "src": "32000:3:7"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4553,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4547,
                            "src": "31825:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4554,
                            "name": "ln",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4501,
                            "src": "31829:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "31825:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4595,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4551,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 4549,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4547,
                              "src": "31818:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 4550,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31822:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "31818:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4552,
                          "nodeType": "ExpressionStatement",
                          "src": "31818:5:7"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "31833:3:7",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 4556,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4547,
                              "src": "31833:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4558,
                          "nodeType": "ExpressionStatement",
                          "src": "31833:3:7"
                        },
                        "nodeType": "ForStatement",
                        "src": "31813:205:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4597,
                              "name": "qid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4495,
                              "src": "32045:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4598,
                              "name": "hh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4509,
                              "src": "32050:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4599,
                              "name": "ad",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4519,
                              "src": "32054:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4600,
                              "name": "bo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4529,
                              "src": "32058:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4601,
                              "name": "an",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4539,
                              "src": "32062:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            ],
                            "id": 4596,
                            "name": "claimWinnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4248,
                            "src": "32031:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes32[] memory,address[] memory,uint256[] memory,bytes32[] memory)"
                            }
                          },
                          "id": 4602,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "32031:34:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4603,
                        "nodeType": "ExpressionStatement",
                        "src": "32031:34:7"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4487,
                      "name": "qi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4478,
                      "src": "31450:2:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4488,
                        "name": "question_ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4457,
                        "src": "31455:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 4489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "31455:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31450:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4605,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4485,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4483,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4478,
                        "src": "31442:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31447:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "31442:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4486,
                    "nodeType": "ExpressionStatement",
                    "src": "31442:6:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4492,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "31476:4:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4491,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4478,
                        "src": "31476:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4493,
                    "nodeType": "ExpressionStatement",
                    "src": "31476:4:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "31437:639:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4606,
                      "name": "withdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2722,
                      "src": "32085:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 4607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32085:10:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4608,
                  "nodeType": "ExpressionStatement",
                  "src": "32085:10:7"
                }
              ]
            },
            "documentation": "@notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n Caller must provide the answer history for each question, in reverse order\n @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n @param question_ids The IDs of the questions you want to claim for\n @param lengths The number of history entries you will supply for each question ID\n @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n @param answers In a single list for all supplied questions, each answer supplied, or commitment ID ",
            "id": 4610,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 4475,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4474,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2934,
                  "src": "31291:8:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "31291:10:7"
              }
            ],
            "name": "claimMultipleAndWithdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4473,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4457,
                  "name": "question_ids",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31149:22:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4455,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31149:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4456,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31149:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4460,
                  "name": "lengths",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31173:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4458,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "31173:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4459,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31173:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4463,
                  "name": "hist_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31201:21:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4461,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31201:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4462,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31201:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4466,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31224:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4464,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "31224:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4465,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31224:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4469,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31241:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4467,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "31241:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4468,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31241:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4472,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31258:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4470,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31258:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4471,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31258:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31139:142:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "31379:0:7"
            },
            "scope": 4741,
            "src": "31099:1003:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4622,
              "nodeType": "Block",
              "src": "32325:59:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4617,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "32342:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4619,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4618,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4612,
                        "src": "32352:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "32342:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4620,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "content_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2853,
                    "src": "32342:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4616,
                  "id": 4621,
                  "nodeType": "Return",
                  "src": "32335:42:7"
                }
              ]
            },
            "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
            "id": 4623,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getContentHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4612,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4623,
                  "src": "32270:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4611,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32270:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32269:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4615,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4623,
                  "src": "32316:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4614,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32316:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32315:9:7"
            },
            "scope": 4741,
            "src": "32246:138:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4635,
              "nodeType": "Block",
              "src": "32583:57:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4630,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "32600:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4632,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4631,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4625,
                        "src": "32610:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "32600:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4633,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "arbitrator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2855,
                    "src": "32600:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 4629,
                  "id": 4634,
                  "nodeType": "Return",
                  "src": "32593:40:7"
                }
              ]
            },
            "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
            "id": 4636,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4625,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4636,
                  "src": "32528:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4624,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32528:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32527:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4629,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4628,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4636,
                  "src": "32574:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4627,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "32574:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32573:9:7"
            },
            "scope": 4741,
            "src": "32505:135:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4648,
              "nodeType": "Block",
              "src": "32851:57:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4643,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "32868:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4645,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4644,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4638,
                        "src": "32878:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "32868:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4646,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2857,
                    "src": "32868:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4642,
                  "id": 4647,
                  "nodeType": "Return",
                  "src": "32861:40:7"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
            "id": 4649,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOpeningTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4638,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4649,
                  "src": "32797:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4637,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32797:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32796:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4641,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4649,
                  "src": "32843:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4640,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32843:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32842:8:7"
            },
            "scope": 4741,
            "src": "32775:133:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4661,
              "nodeType": "Block",
              "src": "33109:54:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4656,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33126:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4658,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4657,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4651,
                        "src": "33136:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33126:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4659,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "timeout",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2859,
                    "src": "33126:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4655,
                  "id": 4660,
                  "nodeType": "Return",
                  "src": "33119:37:7"
                }
              ]
            },
            "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
            "id": 4662,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4651,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4662,
                  "src": "33055:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4650,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33055:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33054:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4654,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4662,
                  "src": "33101:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4653,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33101:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33100:8:7"
            },
            "scope": 4741,
            "src": "33035:128:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4674,
              "nodeType": "Block",
              "src": "33379:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4669,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33396:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4671,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4670,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4664,
                        "src": "33406:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33396:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4672,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "33396:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4668,
                  "id": 4673,
                  "nodeType": "Return",
                  "src": "33389:41:7"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
            "id": 4675,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFinalizeTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4664,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4675,
                  "src": "33325:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4663,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33325:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33324:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4667,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4675,
                  "src": "33371:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4666,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33371:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33370:8:7"
            },
            "scope": 4741,
            "src": "33302:135:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4687,
              "nodeType": "Block",
              "src": "33644:69:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4682,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33661:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4684,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4683,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4677,
                        "src": "33671:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33661:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4685,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "is_pending_arbitration",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2863,
                    "src": "33661:45:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4681,
                  "id": 4686,
                  "nodeType": "Return",
                  "src": "33654:52:7"
                }
              ]
            },
            "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
            "id": 4688,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isPendingArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4678,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4677,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "33592:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4676,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33592:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33591:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4680,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "33638:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4679,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "33638:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33637:6:7"
            },
            "scope": 4741,
            "src": "33562:151:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4700,
              "nodeType": "Block",
              "src": "33966:53:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4695,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33983:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4697,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4696,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "33993:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33983:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4698,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bounty",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2865,
                    "src": "33983:29:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4694,
                  "id": 4699,
                  "nodeType": "Return",
                  "src": "33976:36:7"
                }
              ]
            },
            "documentation": "@notice Returns the current total unclaimed bounty\n @dev Set back to zero once the bounty has been claimed\n @param question_id The ID of the question ",
            "id": 4701,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4690,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4701,
                  "src": "33911:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33911:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33910:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4694,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4693,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4701,
                  "src": "33957:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4692,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "33957:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33956:9:7"
            },
            "scope": 4741,
            "src": "33892:127:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4713,
              "nodeType": "Block",
              "src": "34202:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4708,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "34219:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4710,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4709,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4703,
                        "src": "34229:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "34219:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4711,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "34219:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4707,
                  "id": 4712,
                  "nodeType": "Return",
                  "src": "34212:41:7"
                }
              ]
            },
            "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
            "id": 4714,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBestAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4704,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4703,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "34147:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4702,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34147:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34146:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4706,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "34193:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34193:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34192:9:7"
            },
            "scope": 4741,
            "src": "34124:136:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4726,
              "nodeType": "Block",
              "src": "34523:59:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4721,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "34540:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4723,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4722,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4716,
                        "src": "34550:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "34540:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4724,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2869,
                    "src": "34540:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4720,
                  "id": 4725,
                  "nodeType": "Return",
                  "src": "34533:42:7"
                }
              ]
            },
            "documentation": "@notice Returns the history hash of the question \n @param question_id The ID of the question \n @dev Updated on each answer, then rewound as each is claimed",
            "id": 4727,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHistoryHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4716,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4727,
                  "src": "34468:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4715,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34468:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34467:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4719,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4727,
                  "src": "34514:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4718,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34514:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34513:9:7"
            },
            "scope": 4741,
            "src": "34444:138:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4739,
              "nodeType": "Block",
              "src": "34781:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4734,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "34798:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4736,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4735,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4729,
                        "src": "34808:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "34798:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4737,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2871,
                    "src": "34798:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4733,
                  "id": 4738,
                  "nodeType": "Return",
                  "src": "34791:34:7"
                }
              ]
            },
            "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
            "id": 4740,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4729,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "34726:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4728,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34726:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34725:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4732,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "34772:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "34772:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34771:9:7"
            },
            "scope": 4741,
            "src": "34709:123:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4742,
        "src": "128:34707:7"
      }
    ],
    "src": "0:34836:7"
  },
  "legacyAST": {
    "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol",
    "exportedSymbols": {
      "Realitio": [
        4741
      ]
    },
    "id": 4742,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2725,
        "literals": [
          "solidity",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:7"
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 2726,
        "nodeType": "ImportDirective",
        "scope": 4742,
        "sourceUnit": 4840,
        "src": "25:35:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
        "file": "./RealitioSafeMath32.sol",
        "id": 2727,
        "nodeType": "ImportDirective",
        "scope": 4742,
        "sourceUnit": 4867,
        "src": "61:34:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@realitio/realitio-contracts/truffle/contracts/BalanceHolder.sol",
        "file": "./BalanceHolder.sol",
        "id": 2728,
        "nodeType": "ImportDirective",
        "scope": 4742,
        "sourceUnit": 2724,
        "src": "96:29:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2729,
              "name": "BalanceHolder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2723,
              "src": "149:13:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BalanceHolder_$2723",
                "typeString": "contract BalanceHolder"
              }
            },
            "id": 2730,
            "nodeType": "InheritanceSpecifier",
            "src": "149:13:7"
          }
        ],
        "contractDependencies": [
          2723
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4741,
        "linearizedBaseContracts": [
          4741,
          2723
        ],
        "name": "Realitio",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 2733,
            "libraryName": {
              "contractScope": null,
              "id": 2731,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4839,
              "src": "176:19:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$4839",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "170:38:7",
            "typeName": {
              "id": 2732,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "200:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 2736,
            "libraryName": {
              "contractScope": null,
              "id": 2734,
              "name": "RealitioSafeMath32",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4866,
              "src": "219:18:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath32_$4866",
                "typeString": "library RealitioSafeMath32"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "213:36:7",
            "typeName": {
              "id": 2735,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "242:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            }
          },
          {
            "constant": true,
            "id": 2741,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "255:42:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2737,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "255:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 2739,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "295:1:7",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 2738,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "287:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 2740,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "287:10:7",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2746,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "380:39:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 2742,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "380:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 2744,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "417:1:7",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 2743,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "409:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 2745,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "409:10:7",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2749,
            "name": "UNANSWERED",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "514:30:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 2747,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "514:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 2748,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "543:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2752,
            "name": "COMMITMENT_NON_EXISTENT",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "637:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2750,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "637:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 2751,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "680:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2755,
            "name": "COMMITMENT_TIMEOUT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "765:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 2753,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "765:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 2754,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "808:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2761,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2757,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2761,
                  "src": "849:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2756,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "849:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2759,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2761,
                  "src": "877:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2758,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "877:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "839:58:7"
            },
            "src": "816:82:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2769,
            "name": "LogNewTemplate",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2768,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2763,
                  "indexed": true,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2769,
                  "src": "934:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2762,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "934:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2765,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2769,
                  "src": "971:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2764,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "971:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2767,
                  "indexed": false,
                  "name": "question_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 2769,
                  "src": "1002:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2766,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1002:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "924:104:7"
            },
            "src": "904:125:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2791,
            "name": "LogNewQuestion",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2771,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1065:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2770,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1065:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2773,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1102:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2772,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1102:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2775,
                  "indexed": false,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1133:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2774,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1133:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2777,
                  "indexed": false,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1162:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2776,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1162:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2779,
                  "indexed": true,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1187:28:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2778,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1187:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2781,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1225:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2780,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1225:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2783,
                  "indexed": false,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1254:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2782,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1254:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2785,
                  "indexed": false,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1278:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2784,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1278:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2787,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1305:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2786,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1305:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2789,
                  "indexed": false,
                  "name": "created",
                  "nodeType": "VariableDeclaration",
                  "scope": 2791,
                  "src": "1328:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2788,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1328:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1055:294:7"
            },
            "src": "1035:315:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2801,
            "name": "LogFundAnswerBounty",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2793,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1391:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2792,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2795,
                  "indexed": false,
                  "name": "bounty_added",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1428:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2794,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1428:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2797,
                  "indexed": false,
                  "name": "bounty",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1458:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2796,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1458:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2799,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2801,
                  "src": "1482:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2798,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1482:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1381:128:7"
            },
            "src": "1356:154:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2817,
            "name": "LogNewAnswer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2803,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1544:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2802,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1544:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2805,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1568:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2804,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1568:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2807,
                  "indexed": false,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1605:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2806,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1605:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2809,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1635:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2808,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1635:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2811,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1665:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2810,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1665:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2813,
                  "indexed": false,
                  "name": "ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1687:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2812,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1687:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2815,
                  "indexed": false,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 2817,
                  "src": "1707:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2814,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1707:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1534:197:7"
            },
            "src": "1516:216:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2831,
            "name": "LogAnswerReveal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2819,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1769:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2818,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1769:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2821,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1807:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2820,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1807:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2823,
                  "indexed": true,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1838:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2822,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1838:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2825,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1876:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1876:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2827,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1901:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2826,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1901:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2829,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 2831,
                  "src": "1925:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1925:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1759:184:7"
            },
            "src": "1738:206:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2837,
            "name": "LogNotifyOfArbitrationRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2836,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2833,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2837,
                  "src": "1995:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2832,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1995:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2835,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2837,
                  "src": "2032:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2834,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2032:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1985:74:7"
            },
            "src": "1950:110:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2843,
            "name": "LogFinalize",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2839,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "2093:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2838,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2093:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2841,
                  "indexed": true,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "2130:22:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2840,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2130:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2083:75:7"
            },
            "src": "2066:93:7"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2851,
            "name": "LogClaim",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2850,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2845,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2851,
                  "src": "2189:27:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2844,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2189:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2847,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 2851,
                  "src": "2226:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2846,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2226:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2849,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2851,
                  "src": "2256:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2848,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2256:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2179:97:7"
            },
            "src": "2165:112:7"
          },
          {
            "canonicalName": "Realitio.Question",
            "id": 2872,
            "members": [
              {
                "constant": false,
                "id": 2853,
                "name": "content_hash",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2309:20:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2852,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2309:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2855,
                "name": "arbitrator",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2339:18:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2854,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2339:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2857,
                "name": "opening_ts",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2367:17:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2856,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2367:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2859,
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2394:14:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2858,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2394:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2861,
                "name": "finalize_ts",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2418:18:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2860,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2418:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2863,
                "name": "is_pending_arbitration",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2446:27:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2862,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2446:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2865,
                "name": "bounty",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2483:14:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2864,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2483:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2867,
                "name": "best_answer",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2507:19:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2866,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2507:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2869,
                "name": "history_hash",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2536:20:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2868,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2536:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2871,
                "name": "bond",
                "nodeType": "VariableDeclaration",
                "scope": 2872,
                "src": "2566:12:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2870,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2566:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Question",
            "nodeType": "StructDefinition",
            "scope": 4741,
            "src": "2283:302:7",
            "visibility": "public"
          },
          {
            "canonicalName": "Realitio.Commitment",
            "id": 2879,
            "members": [
              {
                "constant": false,
                "id": 2874,
                "name": "reveal_ts",
                "nodeType": "VariableDeclaration",
                "scope": 2879,
                "src": "2716:16:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 2873,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2716:6:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2876,
                "name": "is_revealed",
                "nodeType": "VariableDeclaration",
                "scope": 2879,
                "src": "2742:16:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2875,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2742:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2878,
                "name": "revealed_answer",
                "nodeType": "VariableDeclaration",
                "scope": 2879,
                "src": "2768:23:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 2877,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2768:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Commitment",
            "nodeType": "StructDefinition",
            "scope": 4741,
            "src": "2688:110:7",
            "visibility": "public"
          },
          {
            "canonicalName": "Realitio.Claim",
            "id": 2886,
            "members": [
              {
                "constant": false,
                "id": 2881,
                "name": "payee",
                "nodeType": "VariableDeclaration",
                "scope": 2886,
                "src": "2949:13:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2880,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2949:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2883,
                "name": "last_bond",
                "nodeType": "VariableDeclaration",
                "scope": 2886,
                "src": "2972:17:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2882,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2972:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2885,
                "name": "queued_funds",
                "nodeType": "VariableDeclaration",
                "scope": 2886,
                "src": "2999:20:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2884,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2999:7:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 4741,
            "src": "2926:100:7",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2889,
            "name": "nextTemplateID",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3032:26:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2887,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "3032:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 2888,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3057:1:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2893,
            "name": "templates",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3064:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 2892,
              "keyType": {
                "id": 2890,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3072:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3064:27:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 2891,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3083:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2897,
            "name": "template_hashes",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3114:50:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
              "typeString": "mapping(uint256 => bytes32)"
            },
            "typeName": {
              "id": 2896,
              "keyType": {
                "id": 2894,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3122:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3114:27:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                "typeString": "mapping(uint256 => bytes32)"
              },
              "valueType": {
                "id": 2895,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3133:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2901,
            "name": "questions",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3170:45:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question)"
            },
            "typeName": {
              "id": 2900,
              "keyType": {
                "id": 2898,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3178:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3170:28:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2899,
                "name": "Question",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2872,
                "src": "3189:8:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$2872_storage_ptr",
                  "typeString": "struct Realitio.Question"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2905,
            "name": "question_claims",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3221:48:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Claim)"
            },
            "typeName": {
              "id": 2904,
              "keyType": {
                "id": 2902,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3229:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3221:25:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2903,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2886,
                "src": "3240:5:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$2886_storage_ptr",
                  "typeString": "struct Realitio.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2909,
            "name": "commitments",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3275:49:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
            },
            "typeName": {
              "id": 2908,
              "keyType": {
                "id": 2906,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3283:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3275:30:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2907,
                "name": "Commitment",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2879,
                "src": "3294:10:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$2879_storage_ptr",
                  "typeString": "struct Realitio.Commitment"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2913,
            "name": "arbitrator_question_fees",
            "nodeType": "VariableDeclaration",
            "scope": 4741,
            "src": "3330:59:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 2912,
              "keyType": {
                "id": 2910,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3338:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3330:27:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 2911,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3349:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2929,
              "nodeType": "Block",
              "src": "3442:117:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2918,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "3460:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3460:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2920,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3474:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2922,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2921,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2915,
                              "src": "3484:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3474:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2923,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2855,
                          "src": "3474:33:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3460:47:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
                        "id": 2925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3509:31:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        },
                        "value": "msg.sender must be arbitrator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        }
                      ],
                      "id": 2917,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3452:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3452:89:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2927,
                  "nodeType": "ExpressionStatement",
                  "src": "3452:89:7"
                },
                {
                  "id": 2928,
                  "nodeType": "PlaceholderStatement",
                  "src": "3551:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 2930,
            "name": "onlyArbitrator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2915,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2930,
                  "src": "3421:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2914,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3421:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3420:21:7"
            },
            "src": "3397:162:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2933,
              "nodeType": "Block",
              "src": "3585:18:7",
              "statements": [
                {
                  "id": 2932,
                  "nodeType": "PlaceholderStatement",
                  "src": "3595:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 2934,
            "name": "stateAny",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2931,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3582:2:7"
            },
            "src": "3565:38:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2949,
              "nodeType": "Block",
              "src": "3655:99:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 2944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2939,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3673:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2941,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2940,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2936,
                              "src": "3683:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3673:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2942,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "3673:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2943,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3707:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3673:35:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
                        "id": 2945,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3710:25:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        },
                        "value": "question must not exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        }
                      ],
                      "id": 2938,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3665:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3665:71:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2947,
                  "nodeType": "ExpressionStatement",
                  "src": "3665:71:7"
                },
                {
                  "id": 2948,
                  "nodeType": "PlaceholderStatement",
                  "src": "3746:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 2950,
            "name": "stateNotCreated",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2936,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2950,
                  "src": "3634:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2935,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3634:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3633:21:7"
            },
            "src": "3609:145:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3014,
              "nodeType": "Block",
              "src": "3800:547:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 2960,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2955,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3818:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2957,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2956,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2952,
                              "src": "3828:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3818:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2958,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "3818:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3851:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3818:34:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 2961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3854:21:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 2954,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3810:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3810:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2963,
                  "nodeType": "ExpressionStatement",
                  "src": "3810:66:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2969,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3894:46:7",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2965,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "3895:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 2967,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2966,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2952,
                              "src": "3905:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3895:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 2968,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_pending_arbitration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2863,
                          "src": "3895:45:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
                        "id": 2970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3942:42:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        },
                        "value": "question must not be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        }
                      ],
                      "id": 2964,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "3886:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3886:99:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2972,
                  "nodeType": "ExpressionStatement",
                  "src": "3886:99:7"
                },
                {
                  "assignments": [
                    2974
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2974,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3015,
                      "src": "3995:18:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 2973,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3995:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2979,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2975,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4016:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 2977,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2976,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2952,
                        "src": "4026:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4016:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 2978,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "4016:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3995:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2981,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2974,
                            "src": "4068:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2982,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2749,
                            "src": "4083:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4068:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 2988,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2984,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2974,
                            "src": "4097:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2986,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4118:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2985,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4111:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 2987,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4111:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4097:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4068:54:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 2990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4124:44:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        },
                        "value": "finalization deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        }
                      ],
                      "id": 2980,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4060:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4060:109:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2992,
                  "nodeType": "ExpressionStatement",
                  "src": "4060:109:7"
                },
                {
                  "assignments": [
                    2994
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2994,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3015,
                      "src": "4179:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 2993,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4179:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2999,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2995,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4199:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 2997,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2996,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2952,
                        "src": "4209:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4199:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 2998,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2857,
                    "src": "4199:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4179:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3001,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2994,
                            "src": "4250:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3002,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4264:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4250:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3004,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2994,
                            "src": "4269:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3006,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4290:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 3005,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4283:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 3007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4283:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4269:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4250:44:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 3010,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4296:31:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 3000,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4242:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3011,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4242:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3012,
                  "nodeType": "ExpressionStatement",
                  "src": "4242:86:7"
                },
                {
                  "id": 3013,
                  "nodeType": "PlaceholderStatement",
                  "src": "4339:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3015,
            "name": "stateOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2953,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2952,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3015,
                  "src": "3779:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2951,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3779:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3778:21:7"
            },
            "src": "3760:587:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3028,
              "nodeType": "Block",
              "src": "4407:122:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3020,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2901,
                            "src": "4425:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                            }
                          },
                          "id": 3022,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3021,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3017,
                            "src": "4435:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4425:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$2872_storage",
                            "typeString": "struct Realitio.Question storage ref"
                          }
                        },
                        "id": 3023,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "is_pending_arbitration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2863,
                        "src": "4425:45:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
                        "id": 3024,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4472:38:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        },
                        "value": "question must be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        }
                      ],
                      "id": 3019,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4417:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4417:94:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3026,
                  "nodeType": "ExpressionStatement",
                  "src": "4417:94:7"
                },
                {
                  "id": 3027,
                  "nodeType": "PlaceholderStatement",
                  "src": "4521:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3029,
            "name": "statePendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3017,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3029,
                  "src": "4386:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3016,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4386:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4385:21:7"
            },
            "src": "4353:176:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3084,
              "nodeType": "Block",
              "src": "4595:437:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3034,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "4613:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 3036,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3035,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3031,
                              "src": "4623:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4613:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 3037,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "4613:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4646:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4613:34:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 3040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4649:21:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 3033,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4605:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4605:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3042,
                  "nodeType": "ExpressionStatement",
                  "src": "4605:66:7"
                },
                {
                  "assignments": [
                    3044
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3044,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3085,
                      "src": "4681:18:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3043,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4681:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3049,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3045,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4702:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3047,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3046,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3031,
                        "src": "4712:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4702:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3048,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "4702:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4681:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3059,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3051,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3044,
                            "src": "4754:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3052,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2749,
                            "src": "4769:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4754:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3054,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3044,
                            "src": "4783:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3056,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4804:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 3055,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4797:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 3057,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4797:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4783:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4754:54:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
                        "id": 3060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4810:43:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        },
                        "value": "finalization dealine must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        }
                      ],
                      "id": 3050,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4746:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4746:108:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "4746:108:7"
                },
                {
                  "assignments": [
                    3064
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3064,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3085,
                      "src": "4864:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3063,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4864:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3069,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3065,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "4884:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3067,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3066,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3031,
                        "src": "4894:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4884:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3068,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2857,
                    "src": "4884:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4864:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3073,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3071,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3064,
                            "src": "4935:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3072,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4949:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4935:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 3078,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3074,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3064,
                            "src": "4954:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3076,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5395,
                                "src": "4975:3:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 3075,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4968:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 3077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4968:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4954:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4935:44:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 3080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4981:31:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 3070,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4927:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4927:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3082,
                  "nodeType": "ExpressionStatement",
                  "src": "4927:86:7"
                },
                {
                  "id": 3083,
                  "nodeType": "PlaceholderStatement",
                  "src": "5024:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3085,
            "name": "stateOpenOrPendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3031,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3085,
                  "src": "4574:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3030,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4574:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4573:21:7"
            },
            "src": "4535:497:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3097,
              "nodeType": "Block",
              "src": "5083:91:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3091,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3087,
                            "src": "5113:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 3090,
                          "name": "isFinalized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3951,
                          "src": "5101:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 3092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5101:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
                        "id": 3093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5127:28:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        },
                        "value": "question must be finalized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        }
                      ],
                      "id": 3089,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5093:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5093:63:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3095,
                  "nodeType": "ExpressionStatement",
                  "src": "5093:63:7"
                },
                {
                  "id": 3096,
                  "nodeType": "PlaceholderStatement",
                  "src": "5166:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3098,
            "name": "stateFinalized",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3087,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3098,
                  "src": "5062:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3086,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5062:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5061:21:7"
            },
            "src": "5038:136:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3109,
              "nodeType": "Block",
              "src": "5206:72:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3101,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "5224:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5224:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5237:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5224:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265207a65726f",
                        "id": 3105,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5240:19:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
                          "typeString": "literal_string \"bond must be zero\""
                        },
                        "value": "bond must be zero"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
                          "typeString": "literal_string \"bond must be zero\""
                        }
                      ],
                      "id": 3100,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5216:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5216:44:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3107,
                  "nodeType": "ExpressionStatement",
                  "src": "5216:44:7"
                },
                {
                  "id": 3108,
                  "nodeType": "PlaceholderStatement",
                  "src": "5270:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3110,
            "name": "bondMustBeZero",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3099,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5203:2:7"
            },
            "src": "5180:98:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3138,
              "nodeType": "Block",
              "src": "5329:190:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3118,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3115,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "5347:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5347:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5359:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5347:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520706f736974697665",
                        "id": 3119,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5362:23:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        },
                        "value": "bond must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        }
                      ],
                      "id": 3114,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5339:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5339:47:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3121,
                  "nodeType": "ExpressionStatement",
                  "src": "5339:47:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3133,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3123,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "5405:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5405:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 3130,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5451:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 3125,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2901,
                                      "src": "5419:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                        "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                      }
                                    },
                                    "id": 3127,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 3126,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3112,
                                      "src": "5429:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5419:22:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$2872_storage",
                                      "typeString": "struct Realitio.Question storage ref"
                                    }
                                  },
                                  "id": 3128,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "bond",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2871,
                                  "src": "5419:27:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 3129,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mul",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4776,
                                "src": "5419:31:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 3131,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5419:34:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 3132,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5418:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5405:49:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
                        "id": 3134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5456:44:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        },
                        "value": "bond must be double at least previous bond"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        }
                      ],
                      "id": 3122,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5397:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5397:104:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3136,
                  "nodeType": "ExpressionStatement",
                  "src": "5397:104:7"
                },
                {
                  "id": 3137,
                  "nodeType": "PlaceholderStatement",
                  "src": "5511:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3139,
            "name": "bondMustDouble",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3112,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3139,
                  "src": "5308:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3111,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5308:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5307:21:7"
            },
            "src": "5284:235:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3161,
              "nodeType": "Block",
              "src": "5612:159:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3145,
                      "name": "max_previous",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3143,
                      "src": "5626:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5641:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5626:16:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3159,
                  "nodeType": "IfStatement",
                  "src": "5622:132:7",
                  "trueBody": {
                    "id": 3158,
                    "nodeType": "Block",
                    "src": "5644:110:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3154,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 3149,
                                    "name": "questions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2901,
                                    "src": "5666:9:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                      "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                    }
                                  },
                                  "id": 3151,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 3150,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3141,
                                    "src": "5676:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5666:22:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Question_$2872_storage",
                                    "typeString": "struct Realitio.Question storage ref"
                                  }
                                },
                                "id": 3152,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "bond",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2871,
                                "src": "5666:27:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3153,
                                "name": "max_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3143,
                                "src": "5697:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5666:43:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
                              "id": 3155,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5711:31:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              },
                              "value": "bond must exceed max_previous"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              }
                            ],
                            "id": 3148,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5396,
                              5397
                            ],
                            "referencedDeclaration": 5397,
                            "src": "5658:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 3156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5658:85:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3157,
                        "nodeType": "ExpressionStatement",
                        "src": "5658:85:7"
                      }
                    ]
                  }
                },
                {
                  "id": 3160,
                  "nodeType": "PlaceholderStatement",
                  "src": "5763:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 3162,
            "name": "previousBondMustNotBeatMaxPrevious",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3144,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3141,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3162,
                  "src": "5569:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3140,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5569:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3143,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3162,
                  "src": "5590:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3142,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5590:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5568:43:7"
            },
            "src": "5525:246:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3185,
              "nodeType": "Block",
              "src": "5958:538:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5983:65:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3165,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "5968:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5968:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3168,
                  "nodeType": "ExpressionStatement",
                  "src": "5968:81:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6074:81:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3169,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6059:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6059:97:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3172,
                  "nodeType": "ExpressionStatement",
                  "src": "6059:97:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6181:92:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3173,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6166:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6166:108:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3176,
                  "nodeType": "ExpressionStatement",
                  "src": "6166:108:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6299:94:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3177,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6284:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6284:110:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3180,
                  "nodeType": "ExpressionStatement",
                  "src": "6284:110:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 3182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6419:69:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 3181,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "6404:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6404:85:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3184,
                  "nodeType": "ExpressionStatement",
                  "src": "6404:85:7"
                }
              ]
            },
            "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
            "id": 3186,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3163,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5943:2:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3164,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5958:0:7"
            },
            "scope": 4741,
            "src": "5932:564:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3206,
              "nodeType": "Block",
              "src": "6841:108:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3198,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3193,
                        "name": "arbitrator_question_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2913,
                        "src": "6851:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3196,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3194,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "6876:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6876:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6851:36:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3197,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3188,
                      "src": "6890:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6851:42:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3199,
                  "nodeType": "ExpressionStatement",
                  "src": "6851:42:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3201,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "6926:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6926:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3203,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3188,
                        "src": "6938:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3200,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2761,
                      "src": "6908:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6908:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3205,
                  "nodeType": "EmitStatement",
                  "src": "6903:39:7"
                }
              ]
            },
            "documentation": "@notice Function for arbitrator to set an optional per-question fee. \n @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n @param fee The fee to be charged by the arbitrator when a question is asked",
            "id": 3207,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 3191,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3190,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2934,
                  "src": "6816:8:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6816:10:7"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3188,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 3207,
                  "src": "6794:11:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3187,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6794:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6793:13:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3192,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6841:0:7"
            },
            "scope": 4741,
            "src": "6770:179:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3254,
              "nodeType": "Block",
              "src": "7418:259:7",
              "statements": [
                {
                  "assignments": [
                    3217
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3217,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3255,
                      "src": "7428:10:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3216,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7428:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3219,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 3218,
                    "name": "nextTemplateID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2889,
                    "src": "7441:14:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7428:27:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3220,
                        "name": "templates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2893,
                        "src": "7465:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 3222,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3221,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3217,
                        "src": "7475:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7465:13:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3223,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5383,
                        "src": "7481:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 3224,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7481:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7465:28:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3226,
                  "nodeType": "ExpressionStatement",
                  "src": "7465:28:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3236,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3227,
                        "name": "template_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2897,
                        "src": "7503:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                          "typeString": "mapping(uint256 => bytes32)"
                        }
                      },
                      "id": 3229,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3228,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3217,
                        "src": "7519:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7503:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3233,
                              "name": "content",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3209,
                              "src": "7552:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3231,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5380,
                              "src": "7535:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 3232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7535:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 3234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7535:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 3230,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5387,
                        "src": "7525:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 3235,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7525:36:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7503:58:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3237,
                  "nodeType": "ExpressionStatement",
                  "src": "7503:58:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3239,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3217,
                        "src": "7591:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3240,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "7595:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3241,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7595:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3242,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3209,
                        "src": "7607:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3238,
                      "name": "LogNewTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2769,
                      "src": "7576:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory)"
                      }
                    },
                    "id": 3243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7576:39:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3244,
                  "nodeType": "EmitStatement",
                  "src": "7571:44:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3245,
                      "name": "nextTemplateID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2889,
                      "src": "7625:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7649:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 3246,
                          "name": "id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3217,
                          "src": "7642:2:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4838,
                        "src": "7642:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7642:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7625:26:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3251,
                  "nodeType": "ExpressionStatement",
                  "src": "7625:26:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3252,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3217,
                    "src": "7668:2:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3215,
                  "id": 3253,
                  "nodeType": "Return",
                  "src": "7661:9:7"
                }
              ]
            },
            "documentation": "@notice Create a reusable template, which should be a JSON document.\n Placeholders should use gettext() syntax, eg %s.\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 3255,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 3212,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3211,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2934,
                  "src": "7378:8:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7378:10:7"
              }
            ],
            "name": "createTemplate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3209,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 3255,
                  "src": "7353:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3208,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7353:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7352:16:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3214,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3255,
                  "src": "7409:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7409:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7408:9:7"
            },
            "scope": 4741,
            "src": "7329:348:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3287,
              "nodeType": "Block",
              "src": "8822:153:7",
              "statements": [
                {
                  "assignments": [
                    3273
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3273,
                      "name": "template_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3288,
                      "src": "8832:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3272,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8832:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3277,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3275,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3257,
                        "src": "8869:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3274,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3255,
                      "src": "8854:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 3276,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8854:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8832:45:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3279,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3273,
                        "src": "8906:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3280,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3259,
                        "src": "8919:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3281,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "8929:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3282,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3263,
                        "src": "8941:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3283,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3265,
                        "src": "8950:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3284,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3267,
                        "src": "8962:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3278,
                      "name": "askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3364,
                      "src": "8894:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) returns (bytes32)"
                      }
                    },
                    "id": 3285,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8894:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3271,
                  "id": 3286,
                  "nodeType": "Return",
                  "src": "8887:81:7"
                }
              ]
            },
            "documentation": "@notice Create a new reusable template and use it to ask a question\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 3288,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createTemplateAndAskQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3257,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8598:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3256,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8598:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3259,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8623:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3258,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8623:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3261,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8640:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8640:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3263,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8660:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3262,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8660:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3265,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8676:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3264,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8676:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3267,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8695:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3266,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8695:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8588:127:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3270,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3288,
                  "src": "8813:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3269,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8813:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8812:9:7"
            },
            "scope": 4741,
            "src": "8551:424:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3363,
              "nodeType": "Block",
              "src": "10092:533:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3310,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3306,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2893,
                            "src": "10111:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 3308,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3307,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3290,
                            "src": "10121:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10111:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3309,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10136:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10111:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 3311,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10139:21:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 3305,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "10103:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10103:58:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3313,
                  "nodeType": "ExpressionStatement",
                  "src": "10103:58:7"
                },
                {
                  "assignments": [
                    3315
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3315,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3364,
                      "src": "10172:20:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3314,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10172:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3324,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3319,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3290,
                            "src": "10222:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3320,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3298,
                            "src": "10235:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3321,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3292,
                            "src": "10247:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3317,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "10205:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10205:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3322,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10205:51:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3316,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "10195:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10195:62:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10172:85:7"
                },
                {
                  "assignments": [
                    3326
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3326,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3364,
                      "src": "10267:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3325,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10267:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3338,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3330,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3315,
                            "src": "10316:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3331,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3294,
                            "src": "10330:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3332,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3296,
                            "src": "10342:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3333,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "10351:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10351:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3335,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3300,
                            "src": "10363:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3328,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "10299:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3329,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10299:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10299:70:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3327,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "10289:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10289:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10267:103:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3340,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3326,
                        "src": "10394:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3341,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3315,
                        "src": "10407:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3342,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "10421:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3343,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "10433:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3344,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3298,
                        "src": "10442:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 3339,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3479,
                      "src": "10381:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32)"
                      }
                    },
                    "id": 3345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10381:72:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3346,
                  "nodeType": "ExpressionStatement",
                  "src": "10381:72:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3348,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3326,
                        "src": "10483:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3349,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "10496:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3350,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10496:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3351,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3290,
                        "src": "10508:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3352,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3292,
                        "src": "10521:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3353,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3315,
                        "src": "10531:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3354,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "10545:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3355,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "10557:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3356,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3298,
                        "src": "10566:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3357,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3300,
                        "src": "10578:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3358,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5395,
                        "src": "10585:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3347,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2791,
                      "src": "10468:14:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 3359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10468:121:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3360,
                  "nodeType": "EmitStatement",
                  "src": "10463:126:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3361,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3326,
                    "src": "10607:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3304,
                  "id": 3362,
                  "nodeType": "Return",
                  "src": "10600:18:7"
                }
              ]
            },
            "documentation": "@notice Ask a new question and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
            "id": 3364,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3290,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9878:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3289,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9878:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3292,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9899:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3291,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9899:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3294,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9916:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3293,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9916:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3296,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9936:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3295,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9936:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3298,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9952:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3297,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9952:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3300,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "9971:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3299,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9971:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9877:108:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3303,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3364,
                  "src": "10083:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3302,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10083:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10082:9:7"
            },
            "scope": 4741,
            "src": "9857:768:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3478,
              "nodeType": "Block",
              "src": "10802:1316:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3381,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3372,
                          "src": "10903:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3382,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10913:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10903:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d75737420626520706f736974697665",
                        "id": 3384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10916:26:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        },
                        "value": "timeout must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        }
                      ],
                      "id": 3380,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "10895:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10895:48:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3386,
                  "nodeType": "ExpressionStatement",
                  "src": "10895:48:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3388,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3372,
                          "src": "10962:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333635",
                          "id": 3389,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10972:8:7",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "365"
                        },
                        "src": "10962:18:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
                        "id": 3391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10982:36:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        },
                        "value": "timeout must be less than 365 days"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        }
                      ],
                      "id": 3387,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "10954:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10954:65:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3393,
                  "nodeType": "ExpressionStatement",
                  "src": "10954:65:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3397,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3395,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3370,
                          "src": "11038:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3396,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2741,
                          "src": "11052:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11038:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d75737420626520736574",
                        "id": 3398,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11066:24:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        },
                        "value": "arbitrator must be set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        }
                      ],
                      "id": 3394,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "11030:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3399,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11030:61:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3400,
                  "nodeType": "ExpressionStatement",
                  "src": "11030:61:7"
                },
                {
                  "assignments": [
                    3402
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3402,
                      "name": "bounty",
                      "nodeType": "VariableDeclaration",
                      "scope": 3479,
                      "src": "11102:14:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3401,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11102:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3405,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3403,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5393,
                      "src": "11119:3:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 3404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "11119:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11102:26:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 3409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3406,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5393,
                        "src": "11520:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3407,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11520:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3408,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3370,
                      "src": "11534:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "11520:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3442,
                  "nodeType": "IfStatement",
                  "src": "11516:324:7",
                  "trueBody": {
                    "id": 3441,
                    "nodeType": "Block",
                    "src": "11546:294:7",
                    "statements": [
                      {
                        "assignments": [
                          3411
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 3411,
                            "name": "question_fee",
                            "nodeType": "VariableDeclaration",
                            "scope": 3479,
                            "src": "11560:20:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 3410,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "11560:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 3415,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3412,
                            "name": "arbitrator_question_fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2913,
                            "src": "11583:24:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3414,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3413,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3370,
                            "src": "11608:10:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11583:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "11560:59:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3419,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 3417,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3402,
                                "src": "11641:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3418,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3411,
                                "src": "11651:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11641:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4554482070726f7669646564206d75737420636f766572207175657374696f6e20666565",
                              "id": 3420,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11665:38:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                                "typeString": "literal_string \"ETH provided must cover question fee\""
                              },
                              "value": "ETH provided must cover question fee"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                                "typeString": "literal_string \"ETH provided must cover question fee\""
                              }
                            ],
                            "id": 3416,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5396,
                              5397
                            ],
                            "referencedDeclaration": 5397,
                            "src": "11633:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 3421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11633:71:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3422,
                        "nodeType": "ExpressionStatement",
                        "src": "11633:71:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3428,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3423,
                            "name": "bounty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3402,
                            "src": "11719:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3426,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3411,
                                "src": "11739:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3424,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3402,
                                "src": "11728:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3425,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4814,
                              "src": "11728:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3427,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11728:24:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11719:33:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3429,
                        "nodeType": "ExpressionStatement",
                        "src": "11719:33:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3439,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3430,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2684,
                              "src": "11766:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 3432,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3431,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3370,
                              "src": "11776:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "11766:21:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3437,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3411,
                                "src": "11816:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3433,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2684,
                                  "src": "11790:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 3435,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3434,
                                  "name": "arbitrator",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3370,
                                  "src": "11800:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "11790:21:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3436,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4838,
                              "src": "11790:25:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11790:39:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11766:63:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3440,
                        "nodeType": "ExpressionStatement",
                        "src": "11766:63:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3443,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "11850:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3445,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3444,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "11860:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11850:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3446,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "content_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2853,
                      "src": "11850:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3447,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3368,
                      "src": "11888:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11850:50:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3449,
                  "nodeType": "ExpressionStatement",
                  "src": "11850:50:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3450,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "11910:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3452,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3451,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "11920:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11910:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3453,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "arbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2855,
                      "src": "11910:33:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3454,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3370,
                      "src": "11946:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "11910:46:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3456,
                  "nodeType": "ExpressionStatement",
                  "src": "11910:46:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3457,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "11966:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3459,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3458,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "11976:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11966:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3460,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "opening_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2857,
                      "src": "11966:33:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3461,
                      "name": "opening_ts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3374,
                      "src": "12002:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "11966:46:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3463,
                  "nodeType": "ExpressionStatement",
                  "src": "11966:46:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3464,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "12022:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3466,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3465,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "12032:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12022:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3467,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2859,
                      "src": "12022:30:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3468,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "12055:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "12022:40:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3470,
                  "nodeType": "ExpressionStatement",
                  "src": "12022:40:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3471,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "12072:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3473,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3472,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3366,
                          "src": "12082:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12072:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3474,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2865,
                      "src": "12072:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3475,
                      "name": "bounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3402,
                      "src": "12104:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12072:38:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3477,
                  "nodeType": "ExpressionStatement",
                  "src": "12072:38:7"
                }
              ]
            },
            "documentation": null,
            "id": 3479,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3377,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3366,
                    "src": "10776:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3378,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3376,
                  "name": "stateNotCreated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2950,
                  "src": "10760:15:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10760:28:7"
              }
            ],
            "name": "_askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3366,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10653:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3365,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10653:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3368,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10674:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3367,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10674:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3370,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10696:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3369,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10696:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3372,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10716:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3371,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10716:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3374,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 3479,
                  "src": "10732:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3373,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10732:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10652:98:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3379,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10802:0:7"
            },
            "scope": 4741,
            "src": "10631:1487:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3513,
              "nodeType": "Block",
              "src": "12467:194:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3499,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3487,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "12477:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3489,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3488,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3481,
                          "src": "12487:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12477:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3490,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2865,
                      "src": "12477:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3496,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5393,
                            "src": "12543:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12543:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3491,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "12509:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 3493,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3492,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3481,
                              "src": "12519:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12509:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 3494,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bounty",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2865,
                          "src": "12509:29:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3495,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4838,
                        "src": "12509:33:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3498,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12509:44:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12477:76:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3500,
                  "nodeType": "ExpressionStatement",
                  "src": "12477:76:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3502,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3481,
                        "src": "12588:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3503,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "12601:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12601:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3505,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2901,
                            "src": "12612:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                            }
                          },
                          "id": 3507,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3506,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3481,
                            "src": "12622:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12612:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$2872_storage",
                            "typeString": "struct Realitio.Question storage ref"
                          }
                        },
                        "id": 3508,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "bounty",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2865,
                        "src": "12612:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3509,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "12643:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3510,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12643:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3501,
                      "name": "LogFundAnswerBounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2801,
                      "src": "12568:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256,address)"
                      }
                    },
                    "id": 3511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12568:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3512,
                  "nodeType": "EmitStatement",
                  "src": "12563:91:7"
                }
              ]
            },
            "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund",
            "id": 3514,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3484,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3481,
                    "src": "12433:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3485,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3483,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "12423:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "12423:22:7"
              }
            ],
            "name": "fundAnswerBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3482,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3481,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "12393:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3480,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12393:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12392:21:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12467:0:7"
            },
            "scope": 4741,
            "src": "12367:294:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3552,
              "nodeType": "Block",
              "src": "13392:170:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3534,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3516,
                        "src": "13422:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3535,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3518,
                        "src": "13435:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3536,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "13443:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13443:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3538,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "13455:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13455:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 3540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13466:5:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3533,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3795,
                      "src": "13402:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 3541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13402:70:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3542,
                  "nodeType": "ExpressionStatement",
                  "src": "13402:70:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3544,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3516,
                        "src": "13503:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3545,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3518,
                        "src": "13516:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3546,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2901,
                            "src": "13524:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                            }
                          },
                          "id": 3548,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3547,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3516,
                            "src": "13534:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13524:22:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$2872_storage",
                            "typeString": "struct Realitio.Question storage ref"
                          }
                        },
                        "id": 3549,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timeout",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2859,
                        "src": "13524:30:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 3543,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3824,
                      "src": "13482:20:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 3550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13482:73:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3551,
                  "nodeType": "ExpressionStatement",
                  "src": "13482:73:7"
                }
              ]
            },
            "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 3553,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3523,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3516,
                    "src": "13252:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3522,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "13242:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13242:22:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3526,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3516,
                    "src": "13288:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3527,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3525,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3139,
                  "src": "13273:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13273:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3529,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3516,
                    "src": "13344:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3530,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3520,
                    "src": "13357:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 3531,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3528,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3162,
                  "src": "13309:34:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13309:61:7"
              }
            ],
            "name": "submitAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3516,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "13174:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3515,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13174:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3518,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "13195:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3517,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13195:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3520,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "13211:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3519,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13211:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13173:59:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3532,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13392:0:7"
            },
            "scope": 4741,
            "src": "13152:410:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3637,
              "nodeType": "Block",
              "src": "14773:573:7",
              "statements": [
                {
                  "assignments": [
                    3575
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3575,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3638,
                      "src": "14784:21:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3574,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "14784:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3585,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3579,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3555,
                            "src": "14835:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3580,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3557,
                            "src": "14848:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3581,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "14861:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3582,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "14861:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3577,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "14818:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14818:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14818:53:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3576,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "14808:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14808:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14784:88:7"
                },
                {
                  "assignments": [
                    3587
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3587,
                      "name": "answerer",
                      "nodeType": "VariableDeclaration",
                      "scope": 3638,
                      "src": "14882:16:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 3586,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "14882:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3596,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3588,
                            "name": "_answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3561,
                            "src": "14902:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3589,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2741,
                            "src": "14915:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "14902:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 3591,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14901:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 3594,
                      "name": "_answerer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3561,
                      "src": "14944:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 3595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "14901:52:7",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3592,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5393,
                        "src": "14931:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3593,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "14931:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14882:71:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3603,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3598,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2909,
                              "src": "14972:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                              }
                            },
                            "id": 3600,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3599,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3575,
                              "src": "14984:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14972:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                              "typeString": "struct Realitio.Commitment storage ref"
                            }
                          },
                          "id": 3601,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2874,
                          "src": "14972:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3602,
                          "name": "COMMITMENT_NON_EXISTENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2752,
                          "src": "15012:23:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "14972:63:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
                        "id": 3604,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15037:35:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        },
                        "value": "commitment must not already exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        }
                      ],
                      "id": 3597,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "14964:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14964:109:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3606,
                  "nodeType": "ExpressionStatement",
                  "src": "14964:109:7"
                },
                {
                  "assignments": [
                    3608
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3608,
                      "name": "commitment_timeout",
                      "nodeType": "VariableDeclaration",
                      "scope": 3638,
                      "src": "15084:25:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3607,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15084:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3615,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 3614,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3609,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "15112:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3611,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3610,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3555,
                          "src": "15122:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15112:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3612,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2859,
                      "src": "15112:30:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3613,
                      "name": "COMMITMENT_TIMEOUT_RATIO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2755,
                      "src": "15145:24:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "15112:57:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15084:85:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3616,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2909,
                          "src": "15179:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                          }
                        },
                        "id": 3618,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3617,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3575,
                          "src": "15191:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15179:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                          "typeString": "struct Realitio.Commitment storage ref"
                        }
                      },
                      "id": 3619,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "reveal_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2874,
                      "src": "15179:36:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3624,
                          "name": "commitment_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3608,
                          "src": "15234:18:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3621,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5395,
                              "src": "15225:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3620,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "15218:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 3622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15218:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 3623,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4865,
                        "src": "15218:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 3625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15218:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "15179:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3627,
                  "nodeType": "ExpressionStatement",
                  "src": "15179:74:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3629,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3555,
                        "src": "15284:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3630,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3575,
                        "src": "15297:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3631,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3587,
                        "src": "15312:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3632,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "15322:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15322:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 3634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15333:4:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3628,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3795,
                      "src": "15264:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 3635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15264:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3636,
                  "nodeType": "ExpressionStatement",
                  "src": "15264:74:7"
                }
              ]
            },
            "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
            "id": 3638,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3564,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3555,
                    "src": "14633:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3565,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3563,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "14623:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14623:22:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3567,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3555,
                    "src": "14669:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3568,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3566,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3139,
                  "src": "14654:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14654:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3570,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3555,
                    "src": "14725:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3571,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3559,
                    "src": "14738:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 3572,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3569,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3162,
                  "src": "14690:34:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14690:61:7"
              }
            ],
            "name": "submitAnswerCommitment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3555,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14531:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3554,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14531:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3557,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14552:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3556,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14552:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3559,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14573:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3558,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14573:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3561,
                  "name": "_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "14595:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3560,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14595:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14530:83:7"
            },
            "payable": true,
            "returnParameters": {
              "id": 3573,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14773:0:7"
            },
            "scope": 4741,
            "src": "14499:847:7",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3735,
              "nodeType": "Block",
              "src": "16480:746:7",
              "statements": [
                {
                  "assignments": [
                    3653
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3653,
                      "name": "answer_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3736,
                      "src": "16491:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3652,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "16491:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3661,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3657,
                            "name": "answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3642,
                            "src": "16540:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3658,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3644,
                            "src": "16548:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3655,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "16523:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3656,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16523:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16523:31:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3654,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "16513:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16513:42:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16491:64:7"
                },
                {
                  "assignments": [
                    3663
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3663,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 3736,
                      "src": "16565:21:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3662,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "16565:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3672,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3667,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3640,
                            "src": "16616:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3668,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3653,
                            "src": "16629:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3669,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3646,
                            "src": "16642:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3665,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "16599:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3666,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16599:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3670,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16599:48:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3664,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "16589:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3671,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16589:59:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16565:83:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3678,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "16667:39:7",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3674,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2909,
                              "src": "16668:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                              }
                            },
                            "id": 3676,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3675,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3663,
                              "src": "16680:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16668:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                              "typeString": "struct Realitio.Commitment storage ref"
                            }
                          },
                          "id": 3677,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_revealed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2876,
                          "src": "16668:38:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
                        "id": 3679,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16708:44:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        },
                        "value": "commitment must not have been revealed yet"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        }
                      ],
                      "id": 3673,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "16659:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16659:94:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3681,
                  "nodeType": "ExpressionStatement",
                  "src": "16659:94:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 3690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3683,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2909,
                              "src": "16771:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                              }
                            },
                            "id": 3685,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3684,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3663,
                              "src": "16783:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16771:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                              "typeString": "struct Realitio.Commitment storage ref"
                            }
                          },
                          "id": 3686,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2874,
                          "src": "16771:36:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3688,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5395,
                              "src": "16817:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16810:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 3689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16810:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "16771:50:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 3691,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16823:38:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        },
                        "value": "reveal deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        }
                      ],
                      "id": 3682,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "16763:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3692,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16763:99:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3693,
                  "nodeType": "ExpressionStatement",
                  "src": "16763:99:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3699,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3694,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2909,
                          "src": "16873:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                          }
                        },
                        "id": 3696,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3695,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3663,
                          "src": "16885:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16873:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                          "typeString": "struct Realitio.Commitment storage ref"
                        }
                      },
                      "id": 3697,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealed_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2878,
                      "src": "16873:42:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3698,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3642,
                      "src": "16918:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16873:51:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3700,
                  "nodeType": "ExpressionStatement",
                  "src": "16873:51:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3701,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2909,
                          "src": "16934:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                          }
                        },
                        "id": 3703,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3702,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3663,
                          "src": "16946:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16934:26:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                          "typeString": "struct Realitio.Commitment storage ref"
                        }
                      },
                      "id": 3704,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_revealed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2876,
                      "src": "16934:38:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16975:4:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "16934:45:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3707,
                  "nodeType": "ExpressionStatement",
                  "src": "16934:45:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3708,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3646,
                      "src": "16994:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3709,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "17002:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3711,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3710,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3640,
                          "src": "17012:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17002:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3712,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2871,
                      "src": "17002:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16994:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3724,
                  "nodeType": "IfStatement",
                  "src": "16990:139:7",
                  "trueBody": {
                    "id": 3723,
                    "nodeType": "Block",
                    "src": "17031:98:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3715,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3640,
                              "src": "17066:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3716,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3642,
                              "src": "17079:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3717,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2901,
                                  "src": "17087:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                  }
                                },
                                "id": 3719,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3718,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3640,
                                  "src": "17097:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "17087:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$2872_storage",
                                  "typeString": "struct Realitio.Question storage ref"
                                }
                              },
                              "id": 3720,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeout",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2859,
                              "src": "17087:30:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 3714,
                            "name": "_updateCurrentAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3824,
                            "src": "17045:20:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                              "typeString": "function (bytes32,bytes32,uint32)"
                            }
                          },
                          "id": 3721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17045:73:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3722,
                        "nodeType": "ExpressionStatement",
                        "src": "17045:73:7"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3726,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3640,
                        "src": "17160:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3727,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "17173:3:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "17173:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3729,
                        "name": "answer_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3653,
                        "src": "17185:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3730,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3642,
                        "src": "17198:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3731,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3644,
                        "src": "17206:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3732,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3646,
                        "src": "17213:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3725,
                      "name": "LogAnswerReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2831,
                      "src": "17144:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32,bytes32,uint256,uint256)"
                      }
                    },
                    "id": 3733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17144:74:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3734,
                  "nodeType": "EmitStatement",
                  "src": "17139:79:7"
                }
              ]
            },
            "documentation": "@notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n Updates the current answer unless someone has since supplied a new answer with a higher bond\n msg.sender is intentionally not restricted to the user who originally sent the commitment; \n For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n @param question_id The ID of the question\n @param answer The answer, encoded as bytes32\n @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n @param bond The bond that you paid in your submitAnswerCommitment() transaction",
            "id": 3736,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3649,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3640,
                    "src": "16454:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3650,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3648,
                  "name": "stateOpenOrPendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3085,
                  "src": "16424:29:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16424:42:7"
              }
            ],
            "name": "submitAnswerReveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3640,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16349:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3639,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16349:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3642,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16370:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3641,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16370:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3644,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16386:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3643,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16386:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3646,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 3736,
                  "src": "16401:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3645,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16401:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16348:66:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3651,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16480:0:7"
            },
            "scope": 4741,
            "src": "16321:905:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3794,
              "nodeType": "Block",
              "src": "17386:524:7",
              "statements": [
                {
                  "assignments": [
                    3750
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3750,
                      "name": "new_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 3795,
                      "src": "17396:24:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3749,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17396:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3764,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3754,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2901,
                                "src": "17450:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                }
                              },
                              "id": 3756,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3755,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3738,
                                "src": "17460:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17450:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$2872_storage",
                                "typeString": "struct Realitio.Question storage ref"
                              }
                            },
                            "id": 3757,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "history_hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2869,
                            "src": "17450:35:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3758,
                            "name": "answer_or_commitment_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3740,
                            "src": "17487:23:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3759,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3744,
                            "src": "17512:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3760,
                            "name": "answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3742,
                            "src": "17518:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3761,
                            "name": "is_commitment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3746,
                            "src": "17528:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3752,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "17433:3:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3753,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "17433:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17433:109:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3751,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "17423:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 3763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17423:120:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17396:147:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3765,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3744,
                      "src": "17651:4:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3766,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17658:1:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17651:8:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3776,
                  "nodeType": "IfStatement",
                  "src": "17647:73:7",
                  "trueBody": {
                    "id": 3775,
                    "nodeType": "Block",
                    "src": "17661:59:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3768,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2901,
                                "src": "17675:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                }
                              },
                              "id": 3770,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3769,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3738,
                                "src": "17685:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17675:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$2872_storage",
                                "typeString": "struct Realitio.Question storage ref"
                              }
                            },
                            "id": 3771,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2871,
                            "src": "17675:27:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 3772,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3744,
                            "src": "17705:4:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17675:34:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3774,
                        "nodeType": "ExpressionStatement",
                        "src": "17675:34:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3777,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "17729:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3779,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3778,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3738,
                          "src": "17739:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17729:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3780,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2869,
                      "src": "17729:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3781,
                      "name": "new_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3750,
                      "src": "17767:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "17729:54:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3783,
                  "nodeType": "ExpressionStatement",
                  "src": "17729:54:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3785,
                        "name": "answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3740,
                        "src": "17812:23:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3786,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3738,
                        "src": "17837:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3787,
                        "name": "new_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3750,
                        "src": "17850:16:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3788,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3742,
                        "src": "17868:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3789,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3744,
                        "src": "17878:4:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3790,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5395,
                        "src": "17884:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3791,
                        "name": "is_commitment",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3746,
                        "src": "17889:13:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3784,
                      "name": "LogNewAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2817,
                      "src": "17799:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,address,uint256,uint256,bool)"
                      }
                    },
                    "id": 3792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17799:104:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3793,
                  "nodeType": "EmitStatement",
                  "src": "17794:109:7"
                }
              ]
            },
            "documentation": null,
            "id": 3795,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAnswerToHistory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3738,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17261:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17261:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3740,
                  "name": "answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17282:31:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3739,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17282:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3742,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17315:16:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3741,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17315:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3744,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17333:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3743,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17333:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3746,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 3795,
                  "src": "17347:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3745,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "17347:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17260:106:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3748,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17386:0:7"
            },
            "scope": 4741,
            "src": "17232:678:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3823,
              "nodeType": "Block",
              "src": "18017:136:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3809,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3804,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "18027:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3806,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3805,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3797,
                          "src": "18037:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18027:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3807,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "best_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2867,
                      "src": "18027:34:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3808,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3799,
                      "src": "18064:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "18027:43:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3810,
                  "nodeType": "ExpressionStatement",
                  "src": "18027:43:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3821,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3811,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "18080:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3813,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3812,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3797,
                          "src": "18090:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18080:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3814,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalize_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2861,
                      "src": "18080:34:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3819,
                          "name": "timeout_secs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3801,
                          "src": "18133:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3816,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5395,
                              "src": "18124:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "18117:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 3817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18117:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 3818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4865,
                        "src": "18117:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 3820,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18117:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "18080:66:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 3822,
                  "nodeType": "ExpressionStatement",
                  "src": "18080:66:7"
                }
              ]
            },
            "documentation": null,
            "id": 3824,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateCurrentAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3802,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3797,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3824,
                  "src": "17946:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3796,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17946:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3799,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3824,
                  "src": "17967:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3798,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17967:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3801,
                  "name": "timeout_secs",
                  "nodeType": "VariableDeclaration",
                  "scope": 3824,
                  "src": "17983:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3800,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17983:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17945:58:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3803,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18017:0:7"
            },
            "scope": 4741,
            "src": "17916:237:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3865,
              "nodeType": "Block",
              "src": "18883:257:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3849,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3844,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "18901:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 3846,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3845,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3826,
                              "src": "18911:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "18901:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 3847,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2871,
                          "src": "18901:27:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18931:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "18901:31:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
                        "id": 3850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18934:68:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        },
                        "value": "Question must already have an answer when arbitration is requested"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        }
                      ],
                      "id": 3843,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "18893:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18893:110:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3852,
                  "nodeType": "ExpressionStatement",
                  "src": "18893:110:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3853,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "19013:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3855,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3854,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3826,
                          "src": "19023:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19013:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3856,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2863,
                      "src": "19013:45:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3857,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19061:4:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "19013:52:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3859,
                  "nodeType": "ExpressionStatement",
                  "src": "19013:52:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3861,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3826,
                        "src": "19110:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3862,
                        "name": "requester",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3828,
                        "src": "19123:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3860,
                      "name": "LogNotifyOfArbitrationRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2837,
                      "src": "19080:29:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 3863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19080:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3864,
                  "nodeType": "EmitStatement",
                  "src": "19075:58:7"
                }
              ]
            },
            "documentation": "@notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n @param question_id The ID of the question\n @param requester The account that requested arbitration\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 3866,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3833,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3826,
                    "src": "18756:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3834,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3832,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2930,
                  "src": "18741:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18741:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3836,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3826,
                    "src": "18787:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3837,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3835,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3015,
                  "src": "18777:9:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18777:22:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3839,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3826,
                    "src": "18843:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3840,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3830,
                    "src": "18856:12:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 3841,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3838,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3162,
                  "src": "18808:34:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18808:61:7"
              }
            ],
            "name": "notifyOfArbitrationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3826,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "18670:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3825,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18670:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3828,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "18691:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3827,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18691:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3830,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 3866,
                  "src": "18710:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18710:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18669:62:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3842,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18883:0:7"
            },
            "scope": 4741,
            "src": "18634:506:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3916,
              "nodeType": "Block",
              "src": "19943:316:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3884,
                          "name": "answerer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3872,
                          "src": "19962:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3885,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2741,
                          "src": "19974:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "19962:24:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616e737765726572206d7573742062652070726f7669646564",
                        "id": 3887,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19988:27:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        },
                        "value": "answerer must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        }
                      ],
                      "id": 3883,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "19954:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19954:62:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3889,
                  "nodeType": "ExpressionStatement",
                  "src": "19954:62:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3891,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3868,
                        "src": "20043:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3892,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "20056:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3890,
                      "name": "LogFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2843,
                      "src": "20031:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 3893,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20031:32:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3894,
                  "nodeType": "EmitStatement",
                  "src": "20026:37:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3895,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "20074:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 3897,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3896,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3868,
                          "src": "20084:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20074:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 3898,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2863,
                      "src": "20074:45:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3899,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20122:5:7",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "20074:53:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3901,
                  "nodeType": "ExpressionStatement",
                  "src": "20074:53:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3903,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3868,
                        "src": "20157:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3904,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "20170:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3905,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3872,
                        "src": "20178:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3906,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20188:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 3907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20191:5:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3902,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3795,
                      "src": "20137:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 3908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20137:60:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3909,
                  "nodeType": "ExpressionStatement",
                  "src": "20137:60:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3911,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3868,
                        "src": "20228:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3912,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "20241:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20249:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 3910,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3824,
                      "src": "20207:20:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 3914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20207:44:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3915,
                  "nodeType": "ExpressionStatement",
                  "src": "20207:44:7"
                }
              ]
            },
            "documentation": "@notice Submit the answer for a question, for use by the arbitrator.\n @dev Doesn't require (or allow) a bond.\n If the current final answer is correct, the account should be whoever submitted it.\n If the current final answer is wrong, the account should be whoever paid for arbitration.\n However, the answerer stipulations are not enforced by the contract.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param answerer The account credited with this answer for the purpose of bond claims",
            "id": 3917,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3875,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3868,
                    "src": "19849:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3876,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3874,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2930,
                  "src": "19834:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19834:27:7"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3878,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3868,
                    "src": "19894:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3879,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3877,
                  "name": "statePendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3029,
                  "src": "19870:23:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19870:36:7"
              },
              {
                "arguments": null,
                "id": 3881,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3880,
                  "name": "bondMustBeZero",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3110,
                  "src": "19915:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19915:14:7"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3868,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3917,
                  "src": "19770:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3867,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19770:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3870,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3917,
                  "src": "19791:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3869,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19791:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3872,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3917,
                  "src": "19807:16:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3871,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19807:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19769:55:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3882,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19943:0:7"
            },
            "scope": 4741,
            "src": "19736:523:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3950,
              "nodeType": "Block",
              "src": "20511:201:7",
              "statements": [
                {
                  "assignments": [
                    3925
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3925,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 3951,
                      "src": "20521:18:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 3924,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20521:6:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3930,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3926,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "20542:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3928,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3927,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3919,
                        "src": "20552:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "20542:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3929,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "20542:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20521:55:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3947,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 3940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3935,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "20595:46:7",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3931,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2901,
                                  "src": "20596:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                  }
                                },
                                "id": 3933,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3932,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3919,
                                  "src": "20606:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20596:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$2872_storage",
                                  "typeString": "struct Realitio.Question storage ref"
                                }
                              },
                              "id": 3934,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "is_pending_arbitration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2863,
                              "src": "20596:45:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 3938,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 3936,
                                  "name": "finalize_ts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3925,
                                  "src": "20646:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 3937,
                                  "name": "UNANSWERED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2749,
                                  "src": "20660:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "20646:24:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 3939,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "20645:26:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "20595:76:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 3945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 3941,
                                "name": "finalize_ts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3925,
                                "src": "20676:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3943,
                                    "name": "now",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5395,
                                    "src": "20698:3:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 3942,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "20691:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint32_$",
                                    "typeString": "type(uint32)"
                                  },
                                  "typeName": "uint32"
                                },
                                "id": 3944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20691:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "20676:26:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3946,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "20675:28:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "20595:108:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 3948,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "20593:112:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3923,
                  "id": 3949,
                  "nodeType": "Return",
                  "src": "20586:119:7"
                }
              ]
            },
            "documentation": "@notice Report whether the answer to the specified question is finalized\n @param question_id The ID of the question\n @return Return true if finalized",
            "id": 3951,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3919,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3951,
                  "src": "20458:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3918,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20458:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20457:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3923,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3922,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3951,
                  "src": "20505:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3921,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20505:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20504:6:7"
            },
            "scope": 4741,
            "src": "20437:275:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3966,
              "nodeType": "Block",
              "src": "21045:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3961,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "21062:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3963,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3962,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3953,
                        "src": "21072:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "21062:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3964,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "21062:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3960,
                  "id": 3965,
                  "nodeType": "Return",
                  "src": "21055:41:7"
                }
              ]
            },
            "documentation": "@notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 3967,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3956,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3953,
                    "src": "20996:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3957,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3955,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "20981:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20981:27:7"
              }
            ],
            "name": "getFinalAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3953,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3967,
                  "src": "20951:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3952,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20951:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20950:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3959,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3967,
                  "src": "21036:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3958,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21036:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21035:9:7"
            },
            "scope": 4741,
            "src": "20927:176:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3982,
              "nodeType": "Block",
              "src": "21418:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3977,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "21435:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 3979,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3978,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3969,
                        "src": "21445:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "21435:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 3980,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "21435:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3976,
                  "id": 3981,
                  "nodeType": "Return",
                  "src": "21428:41:7"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 3983,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3972,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3969,
                    "src": "21369:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3973,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3971,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "21354:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "21354:27:7"
              }
            ],
            "name": "resultFor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3970,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3969,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 3983,
                  "src": "21324:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3968,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21324:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21323:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 3976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3975,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3983,
                  "src": "21409:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3974,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21409:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21408:9:7"
            },
            "scope": 4741,
            "src": "21305:171:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 4046,
              "nodeType": "Block",
              "src": "22454:427:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 4007,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4002,
                          "name": "content_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3987,
                          "src": "22472:12:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4003,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22488:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4005,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4004,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22498:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22488:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4006,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "content_hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2853,
                          "src": "22488:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "22472:51:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74656e742068617368206d757374206d61746368",
                        "id": 4008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22525:25:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        },
                        "value": "content hash must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        }
                      ],
                      "id": 4001,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22464:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22464:87:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4010,
                  "nodeType": "ExpressionStatement",
                  "src": "22464:87:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4017,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4012,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3989,
                          "src": "22569:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4013,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22583:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4015,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4014,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22593:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22583:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4016,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2855,
                          "src": "22583:33:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "22569:47:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d757374206d61746368",
                        "id": 4018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22618:23:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        },
                        "value": "arbitrator must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        }
                      ],
                      "id": 4011,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22561:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4019,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22561:81:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4020,
                  "nodeType": "ExpressionStatement",
                  "src": "22561:81:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4027,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4022,
                          "name": "min_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3991,
                          "src": "22660:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4023,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22675:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4025,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4024,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22685:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22675:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4026,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2859,
                          "src": "22675:30:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "22660:45:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
                        "id": 4028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22707:29:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        },
                        "value": "timeout must be long enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        }
                      ],
                      "id": 4021,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22652:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22652:85:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4030,
                  "nodeType": "ExpressionStatement",
                  "src": "22652:85:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4037,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4032,
                          "name": "min_bond",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3993,
                          "src": "22755:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4033,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2901,
                              "src": "22767:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                              }
                            },
                            "id": 4035,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4034,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "22777:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22767:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$2872_storage",
                              "typeString": "struct Realitio.Question storage ref"
                            }
                          },
                          "id": 4036,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2871,
                          "src": "22767:27:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "22755:39:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
                        "id": 4038,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22796:26:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        },
                        "value": "bond must be high enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        }
                      ],
                      "id": 4031,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "22747:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4039,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22747:76:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4040,
                  "nodeType": "ExpressionStatement",
                  "src": "22747:76:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4041,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "22840:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4043,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4042,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "22850:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "22840:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4044,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "22840:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4000,
                  "id": 4045,
                  "nodeType": "Return",
                  "src": "22833:41:7"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, provided it matches the specified criteria.\n @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n @param question_id The ID of the question\n @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n @param min_timeout The timeout set in the initial question settings must be this high or higher\n @param min_bond The bond sent with the final answer must be this high or higher\n @return The answer formatted as a bytes32",
            "id": 4047,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3996,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3985,
                    "src": "22405:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 3997,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3995,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "22390:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22390:27:7"
              }
            ],
            "name": "getFinalAnswerIfMatches",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3985,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22266:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3984,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22266:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3987,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22296:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3986,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22296:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3989,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22318:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3988,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22318:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3991,
                  "name": "min_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22338:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 3990,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22338:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3993,
                  "name": "min_bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22358:16:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3992,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22358:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22256:124:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3999,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4047,
                  "src": "22445:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22445:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22444:9:7"
            },
            "scope": 4741,
            "src": "22224:657:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 4247,
              "nodeType": "Block",
              "src": "24393:2585:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4068,
                            "name": "history_hashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4052,
                            "src": "24412:14:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 4069,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "24412:21:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4070,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "24436:1:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "24412:25:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
                        "id": 4072,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "24439:50:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        },
                        "value": "at least one history hash entry must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        }
                      ],
                      "id": 4067,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "24404:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24404:86:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4074,
                  "nodeType": "ExpressionStatement",
                  "src": "24404:86:7"
                },
                {
                  "assignments": [
                    4076
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4076,
                      "name": "payee",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24581:13:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 4075,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "24581:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4081,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4077,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2905,
                        "src": "24597:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                        }
                      },
                      "id": 4079,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4078,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "24613:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24597:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$2886_storage",
                        "typeString": "struct Realitio.Claim storage ref"
                      }
                    },
                    "id": 4080,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "payee",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2881,
                    "src": "24597:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24581:50:7"
                },
                {
                  "assignments": [
                    4083
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4083,
                      "name": "last_bond",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24642:17:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4082,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "24642:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4088,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4084,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2905,
                        "src": "24662:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                        }
                      },
                      "id": 4086,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4085,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "24678:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24662:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$2886_storage",
                        "typeString": "struct Realitio.Claim storage ref"
                      }
                    },
                    "id": 4087,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "last_bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2883,
                    "src": "24662:38:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24642:58:7"
                },
                {
                  "assignments": [
                    4090
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4090,
                      "name": "queued_funds",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24711:20:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4089,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "24711:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4095,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4091,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2905,
                        "src": "24734:15:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                        }
                      },
                      "id": 4093,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4092,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "24750:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24734:28:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$2886_storage",
                        "typeString": "struct Realitio.Claim storage ref"
                      }
                    },
                    "id": 4094,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "queued_funds",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2885,
                    "src": "24734:41:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24711:64:7"
                },
                {
                  "assignments": [
                    4097
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4097,
                      "name": "last_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "24996:25:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4096,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "24996:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4102,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4098,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "25024:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4100,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4099,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "25034:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "25024:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4101,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2869,
                    "src": "25024:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24996:63:7"
                },
                {
                  "assignments": [
                    4104
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4104,
                      "name": "best_answer",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "25070:19:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4103,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "25070:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4109,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4105,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "25092:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4107,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4106,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4049,
                        "src": "25102:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "25092:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4108,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "25092:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25070:56:7"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4111,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 4248,
                      "src": "25137:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4110,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25137:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4112,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25137:9:7"
                },
                {
                  "body": {
                    "id": 4182,
                    "nodeType": "Block",
                    "src": "25200:702:7",
                    "statements": [
                      {
                        "assignments": [
                          4125
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4125,
                            "name": "is_commitment",
                            "nodeType": "VariableDeclaration",
                            "scope": 4248,
                            "src": "25334:18:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 4124,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "25334:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4141,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4127,
                              "name": "last_history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4097,
                              "src": "25383:17:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4128,
                                "name": "history_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4052,
                                "src": "25402:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 4130,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4129,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25417:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25402:17:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4131,
                                "name": "answers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4061,
                                "src": "25421:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 4133,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4132,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25429:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25421:10:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4134,
                                "name": "bonds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4058,
                                "src": "25433:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 4136,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4135,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25439:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25433:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4137,
                                "name": "addrs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4055,
                                "src": "25443:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 4139,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4138,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4111,
                                "src": "25449:1:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25443:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4126,
                            "name": "_verifyHistoryInputOrRevert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4327,
                            "src": "25355:27:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (bytes32,bytes32,bytes32,uint256,address) pure returns (bool)"
                            }
                          },
                          "id": 4140,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25355:97:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "25334:118:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4147,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4142,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4090,
                            "src": "25479:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4145,
                                "name": "last_bond",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4083,
                                "src": "25511:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4143,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4090,
                                "src": "25494:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4144,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4838,
                              "src": "25494:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4146,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25494:27:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "25479:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4148,
                        "nodeType": "ExpressionStatement",
                        "src": "25479:42:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4168,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 4149,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4090,
                                "src": "25537:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4150,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4076,
                                "src": "25551:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 4151,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "25536:21:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4153,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "25597:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4154,
                                "name": "best_answer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4104,
                                "src": "25610:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4155,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4090,
                                "src": "25623:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4156,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4076,
                                "src": "25637:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4157,
                                  "name": "addrs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4055,
                                  "src": "25661:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 4159,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4158,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4111,
                                  "src": "25667:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "25661:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4160,
                                  "name": "bonds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4058,
                                  "src": "25671:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 4162,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4161,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4111,
                                  "src": "25677:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "25671:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4163,
                                  "name": "answers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4061,
                                  "src": "25681:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 4165,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4164,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4111,
                                  "src": "25689:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "25681:10:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4166,
                                "name": "is_commitment",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4125,
                                "src": "25693:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 4152,
                              "name": "_processHistoryItem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4454,
                              "src": "25560:19:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$_t_address_$",
                                "typeString": "function (bytes32,bytes32,uint256,address,address,uint256,bytes32,bool) returns (uint256,address)"
                              }
                            },
                            "id": 4167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25560:147:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "src": "25536:171:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4169,
                        "nodeType": "ExpressionStatement",
                        "src": "25536:171:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4170,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4083,
                            "src": "25819:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4171,
                              "name": "bonds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4058,
                              "src": "25831:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 4173,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4172,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4111,
                              "src": "25837:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25831:8:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "25819:20:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4175,
                        "nodeType": "ExpressionStatement",
                        "src": "25819:20:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4176,
                            "name": "last_history_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4097,
                            "src": "25853:17:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4177,
                              "name": "history_hashes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4052,
                              "src": "25873:14:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 4179,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4178,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4111,
                              "src": "25888:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25873:17:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "25853:37:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 4181,
                        "nodeType": "ExpressionStatement",
                        "src": "25853:37:7"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4117,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4111,
                      "src": "25168:1:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4118,
                        "name": "history_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4052,
                        "src": "25172:14:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 4119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "25172:21:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "25168:25:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4183,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4115,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4113,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4111,
                        "src": "25161:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25165:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "25161:5:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4116,
                    "nodeType": "ExpressionStatement",
                    "src": "25161:5:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "25195:3:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4121,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4111,
                        "src": "25195:1:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4123,
                    "nodeType": "ExpressionStatement",
                    "src": "25195:3:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "25156:746:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4184,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4097,
                      "src": "25917:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4185,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2746,
                      "src": "25938:9:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "25917:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 4238,
                    "nodeType": "Block",
                    "src": "26692:213:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4225,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4049,
                              "src": "26797:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4226,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4076,
                              "src": "26810:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 4229,
                                  "name": "last_bond",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4083,
                                  "src": "26834:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4227,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4090,
                                  "src": "26817:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 4228,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4838,
                                "src": "26817:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 4230,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26817:27:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4224,
                            "name": "_payPayee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4275,
                            "src": "26787:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256)"
                            }
                          },
                          "id": 4231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26787:58:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4232,
                        "nodeType": "ExpressionStatement",
                        "src": "26787:58:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4236,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "26859:35:7",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4233,
                              "name": "question_claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2905,
                              "src": "26866:15:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                              }
                            },
                            "id": 4235,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4234,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4049,
                              "src": "26882:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "26866:28:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$2886_storage",
                              "typeString": "struct Realitio.Claim storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4237,
                        "nodeType": "ExpressionStatement",
                        "src": "26859:35:7"
                      }
                    ]
                  },
                  "id": 4239,
                  "nodeType": "IfStatement",
                  "src": "25913:992:7",
                  "trueBody": {
                    "id": 4223,
                    "nodeType": "Block",
                    "src": "25949:737:7",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4187,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4076,
                            "src": "26352:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4188,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2741,
                            "src": "26361:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "26352:21:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4201,
                        "nodeType": "IfStatement",
                        "src": "26348:137:7",
                        "trueBody": {
                          "id": 4200,
                          "nodeType": "Block",
                          "src": "26375:110:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 4191,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4049,
                                    "src": "26403:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4192,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4076,
                                    "src": "26416:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4193,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4090,
                                    "src": "26423:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 4190,
                                  "name": "_payPayee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4275,
                                  "src": "26393:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256)"
                                  }
                                },
                                "id": 4194,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "26393:43:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 4195,
                              "nodeType": "ExpressionStatement",
                              "src": "26393:43:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4198,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4196,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4090,
                                  "src": "26454:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 4197,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "26469:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "26454:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4199,
                              "nodeType": "ExpressionStatement",
                              "src": "26454:16:7"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4202,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2905,
                                "src": "26499:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                                }
                              },
                              "id": 4204,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4203,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "26515:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26499:28:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$2886_storage",
                                "typeString": "struct Realitio.Claim storage ref"
                              }
                            },
                            "id": 4205,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2881,
                            "src": "26499:34:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 4206,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4076,
                            "src": "26536:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "26499:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 4208,
                        "nodeType": "ExpressionStatement",
                        "src": "26499:42:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4209,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2905,
                                "src": "26555:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                                }
                              },
                              "id": 4211,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4210,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "26571:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26555:28:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$2886_storage",
                                "typeString": "struct Realitio.Claim storage ref"
                              }
                            },
                            "id": 4212,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "last_bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2883,
                            "src": "26555:38:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 4213,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4083,
                            "src": "26596:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26555:50:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4215,
                        "nodeType": "ExpressionStatement",
                        "src": "26555:50:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4216,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2905,
                                "src": "26619:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$2886_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                                }
                              },
                              "id": 4218,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4217,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4049,
                                "src": "26635:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26619:28:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$2886_storage",
                                "typeString": "struct Realitio.Claim storage ref"
                              }
                            },
                            "id": 4219,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "queued_funds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2885,
                            "src": "26619:41:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 4220,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4090,
                            "src": "26663:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26619:56:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4222,
                        "nodeType": "ExpressionStatement",
                        "src": "26619:56:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4240,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2901,
                          "src": "26915:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                          }
                        },
                        "id": 4242,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4241,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4049,
                          "src": "26925:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "26915:22:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                          "typeString": "struct Realitio.Question storage ref"
                        }
                      },
                      "id": 4243,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2869,
                      "src": "26915:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4244,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4097,
                      "src": "26953:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "26915:55:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4246,
                  "nodeType": "ExpressionStatement",
                  "src": "26915:55:7"
                }
              ]
            },
            "documentation": "@notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n Caller must provide the answer history, in reverse order\n @dev Works up the chain and assign bonds to the person who gave the right answer\n If someone gave the winning answer earlier, they must get paid from the higher bond\n That means we can't pay out the bond added at n until we have looked at n-1\n The first answer is authenticated by checking against the stored history_hash.\n One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n Once we get to a null hash we'll know we're done and there are no more answers.\n Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n @param question_id The ID of the question\n @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n @param addrs Last-to-first, the address of each answerer or commitment sender\n @param bonds Last-to-first, the bond supplied with each answer or commitment\n @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal",
            "id": 4248,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 4064,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4049,
                    "src": "24369:11:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 4065,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4063,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3098,
                  "src": "24354:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24354:27:7"
              }
            ],
            "name": "claimWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4049,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24231:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4048,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24231:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4052,
                  "name": "history_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24261:24:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4050,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "24261:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4051,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24261:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4055,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24287:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4053,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "24287:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4054,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24287:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4058,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24304:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4056,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "24304:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4057,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24304:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4061,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 4248,
                  "src": "24321:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4059,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "24321:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4060,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "24321:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24221:123:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4066,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24393:0:7"
            },
            "scope": 4741,
            "src": "24199:2779:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4274,
              "nodeType": "Block",
              "src": "27068:113:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4257,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2684,
                        "src": "27078:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 4259,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4258,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4252,
                        "src": "27088:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "27078:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4264,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4254,
                          "src": "27118:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4260,
                            "name": "balanceOf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2684,
                            "src": "27097:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 4262,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4261,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4252,
                            "src": "27107:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "27097:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4263,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4838,
                        "src": "27097:20:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4265,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "27097:27:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "27078:46:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4267,
                  "nodeType": "ExpressionStatement",
                  "src": "27078:46:7"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4269,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4250,
                        "src": "27148:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4270,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4252,
                        "src": "27161:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4271,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4254,
                        "src": "27168:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4268,
                      "name": "LogClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2851,
                      "src": "27139:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 4272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27139:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4273,
                  "nodeType": "EmitStatement",
                  "src": "27134:40:7"
                }
              ]
            },
            "documentation": null,
            "id": 4275,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_payPayee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4250,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4275,
                  "src": "27003:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4249,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27003:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4252,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 4275,
                  "src": "27024:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4251,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27024:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4254,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 4275,
                  "src": "27039:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4253,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27039:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27002:51:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4256,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27068:0:7"
            },
            "scope": 4741,
            "src": "26984:197:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4326,
              "nodeType": "Block",
              "src": "27372:364:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4290,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4277,
                      "src": "27386:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4294,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4279,
                              "src": "27434:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4295,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4281,
                              "src": "27448:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4296,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4283,
                              "src": "27456:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4297,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4285,
                              "src": "27462:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 4298,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "27468:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4292,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5380,
                              "src": "27417:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 4293,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "27417:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 4299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27417:56:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4291,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5387,
                        "src": "27407:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 4300,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "27407:67:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "27386:88:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4305,
                  "nodeType": "IfStatement",
                  "src": "27382:131:7",
                  "trueBody": {
                    "id": 4304,
                    "nodeType": "Block",
                    "src": "27477:36:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 4302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27498:4:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 4289,
                        "id": 4303,
                        "nodeType": "Return",
                        "src": "27491:11:7"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4306,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4277,
                      "src": "27526:17:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4310,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4279,
                              "src": "27574:12:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4311,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4281,
                              "src": "27588:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4312,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4283,
                              "src": "27596:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4313,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4285,
                              "src": "27602:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 4314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "27608:5:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4308,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5380,
                              "src": "27557:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 4309,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "27557:16:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 4315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27557:57:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4307,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5387,
                        "src": "27547:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 4316,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "27547:68:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "27526:89:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4321,
                  "nodeType": "IfStatement",
                  "src": "27522:133:7",
                  "trueBody": {
                    "id": 4320,
                    "nodeType": "Block",
                    "src": "27618:37:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27639:5:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4289,
                        "id": 4319,
                        "nodeType": "Return",
                        "src": "27632:12:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
                        "id": 4323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "27672:56:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        },
                        "value": "History input provided did not match the expected hash"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        }
                      ],
                      "id": 4322,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5398,
                        5399
                      ],
                      "referencedDeclaration": 5399,
                      "src": "27665:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 4324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27665:64:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4325,
                  "nodeType": "ExpressionStatement",
                  "src": "27665:64:7"
                }
              ]
            },
            "documentation": null,
            "id": 4327,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_verifyHistoryInputOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4277,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27233:25:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4276,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27233:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4279,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27268:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4278,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27268:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4281,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27290:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4280,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27290:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4283,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27306:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4282,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27306:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4285,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27320:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4284,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27320:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27223:115:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4289,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4288,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4327,
                  "src": "27366:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4287,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27366:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27365:6:7"
            },
            "scope": 4741,
            "src": "27187:549:7",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4453,
              "nodeType": "Block",
              "src": "27986:2168:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4350,
                    "name": "is_commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4343,
                    "src": "28185:13:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4385,
                  "nodeType": "IfStatement",
                  "src": "28181:482:7",
                  "trueBody": {
                    "id": 4384,
                    "nodeType": "Block",
                    "src": "28200:463:7",
                    "statements": [
                      {
                        "assignments": [
                          4352
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4352,
                            "name": "commitment_id",
                            "nodeType": "VariableDeclaration",
                            "scope": 4454,
                            "src": "28214:21:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 4351,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "28214:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4354,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 4353,
                          "name": "answer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4341,
                          "src": "28238:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28214:30:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 4359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "28359:39:7",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4355,
                                "name": "commitments",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2909,
                                "src": "28360:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                  "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                }
                              },
                              "id": 4357,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4356,
                                "name": "commitment_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4352,
                                "src": "28372:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28360:26:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                "typeString": "struct Realitio.Commitment storage ref"
                              }
                            },
                            "id": 4358,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "is_revealed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2876,
                            "src": "28360:38:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 4382,
                          "nodeType": "Block",
                          "src": "28518:135:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4375,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4370,
                                  "name": "answer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4341,
                                  "src": "28536:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 4371,
                                      "name": "commitments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2909,
                                      "src": "28545:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                        "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                      }
                                    },
                                    "id": 4373,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 4372,
                                      "name": "commitment_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4352,
                                      "src": "28557:13:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "28545:26:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                      "typeString": "struct Realitio.Commitment storage ref"
                                    }
                                  },
                                  "id": 4374,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealed_answer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2878,
                                  "src": "28545:42:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "28536:51:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4376,
                              "nodeType": "ExpressionStatement",
                              "src": "28536:51:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4380,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "28605:33:7",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4377,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2909,
                                    "src": "28612:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                      "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                    }
                                  },
                                  "id": 4379,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4378,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4352,
                                    "src": "28624:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "28612:26:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                    "typeString": "struct Realitio.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 4381,
                              "nodeType": "ExpressionStatement",
                              "src": "28605:33:7"
                            }
                          ]
                        },
                        "id": 4383,
                        "nodeType": "IfStatement",
                        "src": "28355:298:7",
                        "trueBody": {
                          "id": 4369,
                          "nodeType": "Block",
                          "src": "28400:112:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4363,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "28418:33:7",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4360,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2909,
                                    "src": "28425:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$2879_storage_$",
                                      "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                                    }
                                  },
                                  "id": 4362,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4361,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4352,
                                    "src": "28437:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "28425:26:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$2879_storage",
                                    "typeString": "struct Realitio.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 4364,
                              "nodeType": "ExpressionStatement",
                              "src": "28418:33:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "id": 4365,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4333,
                                    "src": "28477:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4366,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4335,
                                    "src": "28491:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "id": 4367,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "28476:21:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                                  "typeString": "tuple(uint256,address)"
                                }
                              },
                              "functionReturnParameters": 4349,
                              "id": 4368,
                              "nodeType": "Return",
                              "src": "28469:28:7"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4386,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4341,
                      "src": "28677:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4387,
                      "name": "best_answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4331,
                      "src": "28687:11:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "28677:21:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4448,
                  "nodeType": "IfStatement",
                  "src": "28673:1435:7",
                  "trueBody": {
                    "id": 4447,
                    "nodeType": "Block",
                    "src": "28700:1408:7",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4389,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4335,
                            "src": "28719:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4390,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2741,
                            "src": "28728:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "28719:21:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 4416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4414,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4337,
                              "src": "29058:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 4415,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4335,
                              "src": "29066:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "29058:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 4445,
                          "nodeType": "IfStatement",
                          "src": "29054:1043:7",
                          "trueBody": {
                            "id": 4444,
                            "nodeType": "Block",
                            "src": "29073:1024:7",
                            "statements": [
                              {
                                "assignments": [
                                  4418
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 4418,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4454,
                                    "src": "29692:27:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 4417,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "29692:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 4426,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 4421,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 4419,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4333,
                                          "src": "29723:12:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 4420,
                                          "name": "bond",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4339,
                                          "src": "29739:4:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "29723:20:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 4422,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "29722:22:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "id": 4424,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4333,
                                    "src": "29754:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 4425,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "29722:44:7",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "id": 4423,
                                    "name": "bond",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4339,
                                    "src": "29747:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "29692:74:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 4428,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4329,
                                      "src": "29859:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4429,
                                      "name": "payee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4335,
                                      "src": "29872:5:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 4432,
                                          "name": "answer_takeover_fee",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4418,
                                          "src": "29896:19:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 4430,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4333,
                                          "src": "29879:12:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 4431,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sub",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4814,
                                        "src": "29879:16:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 4433,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "29879:37:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 4427,
                                    "name": "_payPayee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4275,
                                    "src": "29849:9:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256)"
                                    }
                                  },
                                  "id": 4434,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "29849:68:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 4435,
                                "nodeType": "ExpressionStatement",
                                "src": "29849:68:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4438,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 4436,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4335,
                                    "src": "30017:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 4437,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4337,
                                    "src": "30025:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "src": "30017:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 4439,
                                "nodeType": "ExpressionStatement",
                                "src": "30017:12:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4442,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 4440,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4333,
                                    "src": "30047:12:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 4441,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4418,
                                    "src": "30062:19:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "30047:34:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 4443,
                                "nodeType": "ExpressionStatement",
                                "src": "30047:34:7"
                              }
                            ]
                          }
                        },
                        "id": 4446,
                        "nodeType": "IfStatement",
                        "src": "28715:1382:7",
                        "trueBody": {
                          "id": 4413,
                          "nodeType": "Block",
                          "src": "28742:306:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4394,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4392,
                                  "name": "payee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4335,
                                  "src": "28889:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 4393,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4337,
                                  "src": "28897:4:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "28889:12:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4395,
                              "nodeType": "ExpressionStatement",
                              "src": "28889:12:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4404,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4396,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4333,
                                  "src": "28919:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 4399,
                                          "name": "questions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2901,
                                          "src": "28951:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                            "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                          }
                                        },
                                        "id": 4401,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 4400,
                                          "name": "question_id",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4329,
                                          "src": "28961:11:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "28951:22:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Question_$2872_storage",
                                          "typeString": "struct Realitio.Question storage ref"
                                        }
                                      },
                                      "id": 4402,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "bounty",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2865,
                                      "src": "28951:29:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4397,
                                      "name": "queued_funds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4333,
                                      "src": "28934:12:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 4398,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4838,
                                    "src": "28934:16:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 4403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28934:47:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "28919:62:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4405,
                              "nodeType": "ExpressionStatement",
                              "src": "28919:62:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4411,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 4406,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2901,
                                      "src": "28999:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                                        "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                                      }
                                    },
                                    "id": 4408,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 4407,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4329,
                                      "src": "29009:11:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "28999:22:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$2872_storage",
                                      "typeString": "struct Realitio.Question storage ref"
                                    }
                                  },
                                  "id": 4409,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "bounty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2865,
                                  "src": "28999:29:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 4410,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29031:1:7",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "28999:33:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4412,
                              "nodeType": "ExpressionStatement",
                              "src": "28999:33:7"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 4449,
                        "name": "queued_funds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4333,
                        "src": "30126:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4450,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4335,
                        "src": "30140:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "id": 4451,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "30125:21:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                      "typeString": "tuple(uint256,address)"
                    }
                  },
                  "functionReturnParameters": 4349,
                  "id": 4452,
                  "nodeType": "Return",
                  "src": "30118:28:7"
                }
              ]
            },
            "documentation": null,
            "id": 4454,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_processHistoryItem",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4344,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4329,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27780:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4328,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27780:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4331,
                  "name": "best_answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27801:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4330,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27801:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4333,
                  "name": "queued_funds",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27831:20:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4332,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27831:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4335,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27853:13:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4334,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27853:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4337,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27877:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4336,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27877:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4339,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27891:12:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4338,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27891:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4341,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27905:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4340,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27905:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4343,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27921:18:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4342,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27921:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27770:175:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4349,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4346,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27968:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4345,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27968:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4348,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4454,
                  "src": "27977:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4347,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27977:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27967:18:7"
            },
            "scope": 4741,
            "src": "27742:2412:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4609,
              "nodeType": "Block",
              "src": "31379:723:7",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4478,
                      "name": "qi",
                      "nodeType": "VariableDeclaration",
                      "scope": 4610,
                      "src": "31398:10:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4477,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "31398:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4479,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31398:10:7"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4481,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 4610,
                      "src": "31418:9:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4480,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "31418:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4482,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31418:9:7"
                },
                {
                  "body": {
                    "id": 4604,
                    "nodeType": "Block",
                    "src": "31482:594:7",
                    "statements": [
                      {
                        "assignments": [
                          4495
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4495,
                            "name": "qid",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31496:11:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 4494,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "31496:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4499,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4496,
                            "name": "question_ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4457,
                            "src": "31510:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 4498,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4497,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4478,
                            "src": "31523:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "31510:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31496:30:7"
                      },
                      {
                        "assignments": [
                          4501
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4501,
                            "name": "ln",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31540:10:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4500,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "31540:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4505,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4502,
                            "name": "lengths",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4460,
                            "src": "31553:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 4504,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4503,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4478,
                            "src": "31561:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "31553:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31540:24:7"
                      },
                      {
                        "assignments": [
                          4509
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4509,
                            "name": "hh",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31578:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4507,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31578:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4508,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31578:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4515,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4513,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31614:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4512,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31600:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4510,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31604:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4511,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31604:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 4514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31600:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31578:39:7"
                      },
                      {
                        "assignments": [
                          4519
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4519,
                            "name": "ad",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31631:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4517,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "31631:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4518,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31631:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4525,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4523,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31667:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4522,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31653:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4520,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "31657:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4521,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31657:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 4524,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31653:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31631:39:7"
                      },
                      {
                        "assignments": [
                          4529
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4529,
                            "name": "bo",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31684:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4527,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "31684:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4528,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31684:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4535,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4533,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31720:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4532,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31706:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (uint256[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4530,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "31710:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4531,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31710:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            }
                          },
                          "id": 4534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31706:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31684:39:7"
                      },
                      {
                        "assignments": [
                          4539
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4539,
                            "name": "an",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31737:19:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4537,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31737:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4538,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31737:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4545,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4543,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4501,
                              "src": "31773:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "31759:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 4540,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "31763:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4541,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "31763:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 4544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31759:17:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31737:39:7"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4547,
                            "name": "j",
                            "nodeType": "VariableDeclaration",
                            "scope": 4610,
                            "src": "31790:9:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4546,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "31790:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4548,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31790:9:7"
                      },
                      {
                        "body": {
                          "id": 4594,
                          "nodeType": "Block",
                          "src": "31838:180:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4565,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4559,
                                    "name": "hh",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4509,
                                    "src": "31856:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4561,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4560,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31859:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31856:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4562,
                                    "name": "hist_hashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4463,
                                    "src": "31864:11:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4564,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4563,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31876:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31864:14:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31856:22:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4566,
                              "nodeType": "ExpressionStatement",
                              "src": "31856:22:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4573,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4567,
                                    "name": "ad",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4519,
                                    "src": "31896:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 4569,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4568,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31899:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31896:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4570,
                                    "name": "addrs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4466,
                                    "src": "31904:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 4572,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4571,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31910:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31904:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "31896:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 4574,
                              "nodeType": "ExpressionStatement",
                              "src": "31896:16:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4581,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4575,
                                    "name": "bo",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4529,
                                    "src": "31930:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 4577,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4576,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31933:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31930:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4578,
                                    "name": "bonds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4469,
                                    "src": "31938:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 4580,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4579,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31944:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31938:8:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "31930:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4582,
                              "nodeType": "ExpressionStatement",
                              "src": "31930:16:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4589,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4583,
                                    "name": "an",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4539,
                                    "src": "31964:2:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4585,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4584,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4547,
                                    "src": "31967:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31964:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4586,
                                    "name": "answers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4472,
                                    "src": "31972:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 4588,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4587,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4481,
                                    "src": "31980:1:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "31972:10:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31964:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 4590,
                              "nodeType": "ExpressionStatement",
                              "src": "31964:18:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "32000:3:7",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 4591,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4481,
                                  "src": "32000:1:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4593,
                              "nodeType": "ExpressionStatement",
                              "src": "32000:3:7"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4553,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4547,
                            "src": "31825:1:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4554,
                            "name": "ln",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4501,
                            "src": "31829:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "31825:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4595,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4551,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 4549,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4547,
                              "src": "31818:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 4550,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31822:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "31818:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4552,
                          "nodeType": "ExpressionStatement",
                          "src": "31818:5:7"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "31833:3:7",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 4556,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4547,
                              "src": "31833:1:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4558,
                          "nodeType": "ExpressionStatement",
                          "src": "31833:3:7"
                        },
                        "nodeType": "ForStatement",
                        "src": "31813:205:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4597,
                              "name": "qid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4495,
                              "src": "32045:3:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4598,
                              "name": "hh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4509,
                              "src": "32050:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4599,
                              "name": "ad",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4519,
                              "src": "32054:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4600,
                              "name": "bo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4529,
                              "src": "32058:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4601,
                              "name": "an",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4539,
                              "src": "32062:2:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            ],
                            "id": 4596,
                            "name": "claimWinnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4248,
                            "src": "32031:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes32[] memory,address[] memory,uint256[] memory,bytes32[] memory)"
                            }
                          },
                          "id": 4602,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "32031:34:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4603,
                        "nodeType": "ExpressionStatement",
                        "src": "32031:34:7"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4487,
                      "name": "qi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4478,
                      "src": "31450:2:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4488,
                        "name": "question_ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4457,
                        "src": "31455:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 4489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "31455:19:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31450:24:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4605,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4485,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4483,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4478,
                        "src": "31442:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31447:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "31442:6:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4486,
                    "nodeType": "ExpressionStatement",
                    "src": "31442:6:7"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4492,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "31476:4:7",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4491,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4478,
                        "src": "31476:2:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4493,
                    "nodeType": "ExpressionStatement",
                    "src": "31476:4:7"
                  },
                  "nodeType": "ForStatement",
                  "src": "31437:639:7"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4606,
                      "name": "withdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2722,
                      "src": "32085:8:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 4607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32085:10:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4608,
                  "nodeType": "ExpressionStatement",
                  "src": "32085:10:7"
                }
              ]
            },
            "documentation": "@notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n Caller must provide the answer history for each question, in reverse order\n @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n @param question_ids The IDs of the questions you want to claim for\n @param lengths The number of history entries you will supply for each question ID\n @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n @param answers In a single list for all supplied questions, each answer supplied, or commitment ID ",
            "id": 4610,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 4475,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4474,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2934,
                  "src": "31291:8:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "31291:10:7"
              }
            ],
            "name": "claimMultipleAndWithdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4473,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4457,
                  "name": "question_ids",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31149:22:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4455,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31149:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4456,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31149:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4460,
                  "name": "lengths",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31173:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4458,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "31173:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4459,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31173:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4463,
                  "name": "hist_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31201:21:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4461,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31201:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4462,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31201:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4466,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31224:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4464,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "31224:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4465,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31224:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4469,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31241:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4467,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "31241:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4468,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31241:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4472,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 4610,
                  "src": "31258:17:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4470,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31258:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4471,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31258:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31139:142:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "31379:0:7"
            },
            "scope": 4741,
            "src": "31099:1003:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4622,
              "nodeType": "Block",
              "src": "32325:59:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4617,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "32342:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4619,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4618,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4612,
                        "src": "32352:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "32342:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4620,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "content_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2853,
                    "src": "32342:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4616,
                  "id": 4621,
                  "nodeType": "Return",
                  "src": "32335:42:7"
                }
              ]
            },
            "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
            "id": 4623,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getContentHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4612,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4623,
                  "src": "32270:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4611,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32270:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32269:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4615,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4623,
                  "src": "32316:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4614,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32316:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32315:9:7"
            },
            "scope": 4741,
            "src": "32246:138:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4635,
              "nodeType": "Block",
              "src": "32583:57:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4630,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "32600:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4632,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4631,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4625,
                        "src": "32610:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "32600:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4633,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "arbitrator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2855,
                    "src": "32600:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 4629,
                  "id": 4634,
                  "nodeType": "Return",
                  "src": "32593:40:7"
                }
              ]
            },
            "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
            "id": 4636,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4625,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4636,
                  "src": "32528:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4624,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32528:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32527:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4629,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4628,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4636,
                  "src": "32574:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4627,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "32574:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32573:9:7"
            },
            "scope": 4741,
            "src": "32505:135:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4648,
              "nodeType": "Block",
              "src": "32851:57:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4643,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "32868:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4645,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4644,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4638,
                        "src": "32878:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "32868:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4646,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2857,
                    "src": "32868:33:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4642,
                  "id": 4647,
                  "nodeType": "Return",
                  "src": "32861:40:7"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
            "id": 4649,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOpeningTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4638,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4649,
                  "src": "32797:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4637,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32797:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32796:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4641,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4649,
                  "src": "32843:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4640,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32843:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32842:8:7"
            },
            "scope": 4741,
            "src": "32775:133:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4661,
              "nodeType": "Block",
              "src": "33109:54:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4656,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33126:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4658,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4657,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4651,
                        "src": "33136:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33126:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4659,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "timeout",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2859,
                    "src": "33126:30:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4655,
                  "id": 4660,
                  "nodeType": "Return",
                  "src": "33119:37:7"
                }
              ]
            },
            "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
            "id": 4662,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4651,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4662,
                  "src": "33055:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4650,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33055:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33054:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4654,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4662,
                  "src": "33101:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4653,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33101:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33100:8:7"
            },
            "scope": 4741,
            "src": "33035:128:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4674,
              "nodeType": "Block",
              "src": "33379:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4669,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33396:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4671,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4670,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4664,
                        "src": "33406:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33396:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4672,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2861,
                    "src": "33396:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 4668,
                  "id": 4673,
                  "nodeType": "Return",
                  "src": "33389:41:7"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
            "id": 4675,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFinalizeTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4664,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4675,
                  "src": "33325:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4663,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33325:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33324:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4667,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4675,
                  "src": "33371:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4666,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33371:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33370:8:7"
            },
            "scope": 4741,
            "src": "33302:135:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4687,
              "nodeType": "Block",
              "src": "33644:69:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4682,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33661:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4684,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4683,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4677,
                        "src": "33671:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33661:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4685,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "is_pending_arbitration",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2863,
                    "src": "33661:45:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4681,
                  "id": 4686,
                  "nodeType": "Return",
                  "src": "33654:52:7"
                }
              ]
            },
            "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
            "id": 4688,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isPendingArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4678,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4677,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "33592:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4676,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33592:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33591:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4680,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "33638:4:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4679,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "33638:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33637:6:7"
            },
            "scope": 4741,
            "src": "33562:151:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4700,
              "nodeType": "Block",
              "src": "33966:53:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4695,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "33983:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4697,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4696,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "33993:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "33983:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4698,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bounty",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2865,
                    "src": "33983:29:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4694,
                  "id": 4699,
                  "nodeType": "Return",
                  "src": "33976:36:7"
                }
              ]
            },
            "documentation": "@notice Returns the current total unclaimed bounty\n @dev Set back to zero once the bounty has been claimed\n @param question_id The ID of the question ",
            "id": 4701,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4690,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4701,
                  "src": "33911:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "33911:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33910:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4694,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4693,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4701,
                  "src": "33957:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4692,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "33957:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "33956:9:7"
            },
            "scope": 4741,
            "src": "33892:127:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4713,
              "nodeType": "Block",
              "src": "34202:58:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4708,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "34219:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4710,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4709,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4703,
                        "src": "34229:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "34219:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4711,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2867,
                    "src": "34219:34:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4707,
                  "id": 4712,
                  "nodeType": "Return",
                  "src": "34212:41:7"
                }
              ]
            },
            "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
            "id": 4714,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBestAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4704,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4703,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "34147:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4702,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34147:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34146:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4706,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4714,
                  "src": "34193:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34193:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34192:9:7"
            },
            "scope": 4741,
            "src": "34124:136:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4726,
              "nodeType": "Block",
              "src": "34523:59:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4721,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "34540:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4723,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4722,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4716,
                        "src": "34550:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "34540:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4724,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2869,
                    "src": "34540:35:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4720,
                  "id": 4725,
                  "nodeType": "Return",
                  "src": "34533:42:7"
                }
              ]
            },
            "documentation": "@notice Returns the history hash of the question \n @param question_id The ID of the question \n @dev Updated on each answer, then rewound as each is claimed",
            "id": 4727,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHistoryHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4716,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4727,
                  "src": "34468:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4715,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34468:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34467:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4719,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4727,
                  "src": "34514:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4718,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34514:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34513:9:7"
            },
            "scope": 4741,
            "src": "34444:138:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4739,
              "nodeType": "Block",
              "src": "34781:51:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4734,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2901,
                        "src": "34798:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$2872_storage_$",
                          "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                        }
                      },
                      "id": 4736,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4735,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4729,
                        "src": "34808:11:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "34798:22:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$2872_storage",
                        "typeString": "struct Realitio.Question storage ref"
                      }
                    },
                    "id": 4737,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2871,
                    "src": "34798:27:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4733,
                  "id": 4738,
                  "nodeType": "Return",
                  "src": "34791:34:7"
                }
              ]
            },
            "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
            "id": 4740,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4729,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "34726:19:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4728,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "34726:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34725:21:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 4733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4732,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4740,
                  "src": "34772:7:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "34772:7:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34771:9:7"
            },
            "scope": 4741,
            "src": "34709:123:7",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4742,
        "src": "128:34707:7"
      }
    ],
    "src": "0:34836:7"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-10-27T11:24:32.609Z"
}