{
  "contractName": "StandardMarket",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "creator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x02d05d3f"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "marketMaker",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x1f21f9af"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fundingBranch",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x42df9383"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "createdAtBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0x59acb42c"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "netOutcomeTokensSold",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xa157979c"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "stage",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xc040e6b8"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "funding",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xcb4c86b7"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fee",
      "outputs": [
        {
          "name": "",
          "type": "uint24"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xddca3f43"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "eventContract",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xe274fd24"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "FEE_RANGE",
      "outputs": [
        {
          "name": "",
          "type": "uint24"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xfbde47f6"
    },
    {
      "inputs": [
        {
          "name": "_creator",
          "type": "address"
        },
        {
          "name": "_eventContract",
          "type": "address"
        },
        {
          "name": "_marketMaker",
          "type": "address"
        },
        {
          "name": "_fee",
          "type": "uint24"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor",
      "signature": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "funding",
          "type": "uint256"
        }
      ],
      "name": "MarketFunding",
      "type": "event",
      "signature": "0x8a2fe22ce705a4ac9c189969cef327affbdc477afdae4ae274c2f8ad021f9163"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "MarketClosing",
      "type": "event",
      "signature": "0xe7d85885f81486e8f4c99e50e056745493861b8b5d4f973dcf0c3c0f74a25e07"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "fees",
          "type": "uint256"
        }
      ],
      "name": "FeeWithdrawal",
      "type": "event",
      "signature": "0x706d7f48c702007c2fb0881cea5759732e64f52faee427d5ab030787cfb7d787"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCost",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "marketFees",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenPurchase",
      "type": "event",
      "signature": "0x7caea4a19892ce49b4daa2014d5599eed561dcd16ffabfac851a9737217ae410"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "seller",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "outcomeTokenProfit",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "marketFees",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenSale",
      "type": "event",
      "signature": "0xab24ef3371efb2e0e3b02955e33b8ef03c14523e71f3bda87878a2386cc17b69"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "cost",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenShortSale",
      "type": "event",
      "signature": "0x1dbdc4ff4d51949738d56e120b2be4edecc55d8d2150f1616ec5802abaae3f88"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_funding",
          "type": "uint256"
        }
      ],
      "name": "fund",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xca1d209d"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "close",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x43d726d6"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdrawFees",
      "outputs": [
        {
          "name": "fees",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x476343ee"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "name": "maxCost",
          "type": "uint256"
        }
      ],
      "name": "buy",
      "outputs": [
        {
          "name": "cost",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xf6d956df"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "name": "minProfit",
          "type": "uint256"
        }
      ],
      "name": "sell",
      "outputs": [
        {
          "name": "profit",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x46280a80"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "name": "minProfit",
          "type": "uint256"
        }
      ],
      "name": "shortSell",
      "outputs": [
        {
          "name": "cost",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x28c05d32"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "outcomeTokenCost",
          "type": "uint256"
        }
      ],
      "name": "calcMarketFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function",
      "signature": "0xb0011509"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040516080806200265d8339810160409081528151602083015191830151606090930151909290600160a060020a038316158015906200005a5750600160a060020a03821615155b80156200006e5750620f424062ffffff8216105b15156200007a57600080fd5b836000806101000a815481600160a060020a030219169083600160a060020a0316021790555082600160a060020a031663413d24b96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620000f857600080fd5b505af11580156200010d573d6000803e3d6000fd5b505050506040513d60208110156200012457600080fd5b50516007554360015560028054600160a060020a031916600160a060020a038581169190911791829055604080517f7dc8f08600000000000000000000000000000000000000000000000000000000815290519290911691637dc8f086916004808201926020929091908290030181600087803b158015620001a557600080fd5b505af1158015620001ba573d6000803e3d6000fd5b505050506040513d6020811015620001d157600080fd5b50516040805160ff9092168083526020818102840101909152801562000201578160200160208202803883390190505b50805162000218916005916020909101906200027c565b506003805460a060020a62ffffff0219167401000000000000000000000000000000000000000062ffffff84160217600160a060020a031916600160a060020a038416179055600680546000919060ff1916600183021790555050505050620002ec565b828054828255906000526020600020908101928215620002ba579160200282015b82811115620002ba5782518255916020019190600101906200029d565b50620002c8929150620002cc565b5090565b620002e991905b80821115620002c85760008155600101620002d3565b90565b61236180620002fc6000396000f3006080604052600436106100d75763ffffffff60e060020a60003504166302d05d3f81146100dc5780631f21f9af1461010d57806328c05d321461012257806342df93831461015557806343d726d61461016a57806346280a8014610181578063476343ee146101a257806359acb42c146101b7578063a157979c146101cc578063b0011509146101e4578063c040e6b8146101fc578063ca1d209d14610235578063cb4c86b71461024d578063ddca3f4314610262578063e274fd241461028f578063f6d956df146102a4578063fbde47f6146102c5575b600080fd5b3480156100e857600080fd5b506100f16102da565b60408051600160a060020a039092168252519081900360200190f35b34801561011957600080fd5b506100f16102e9565b34801561012e57600080fd5b5061014360ff600435166024356044356102f8565b60408051918252519081900360200190f35b34801561016157600080fd5b50610143610ada565b34801561017657600080fd5b5061017f610ae0565b005b34801561018d57600080fd5b5061014360ff60043516602435604435610e99565b3480156101ae57600080fd5b5061014361143d565b3480156101c357600080fd5b50610143611731565b3480156101d857600080fd5b50610143600435611737565b3480156101f057600080fd5b50610143600435611756565b34801561020857600080fd5b50610211611787565b6040518082600281111561022157fe5b60ff16815260200191505060405180910390f35b34801561024157600080fd5b5061017f600435611790565b34801561025957600080fd5b50610143611c06565b34801561026e57600080fd5b50610277611c0c565b6040805162ffffff9092168252519081900360200190f35b34801561029b57600080fd5b506100f1611c2f565b3480156102b057600080fd5b5061014360ff60043516602435604435611c3e565b3480156102d157600080fd5b5061027761230e565b600054600160a060020a031681565b600354600160a060020a031681565b600080600080600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561035157600080fd5b505af1158015610365573d6000803e3d6000fd5b505050506040513d602081101561037b57600080fd5b5051600754604080517f401e3367000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018a9052606481019290925251600160a060020a039092169163401e3367916084808201926020929091908290030181600087803b1580156103f757600080fd5b505af115801561040b573d6000803e3d6000fd5b505050506040513d602081101561042157600080fd5b5051801561054f5750600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561047d57600080fd5b505af1158015610491573d6000803e3d6000fd5b505050506040513d60208110156104a757600080fd5b5051600254600754604080517f8180f2fc000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018b90526044810192909252519190921691638180f2fc9160648083019260209291908290030181600087803b15801561052257600080fd5b505af1158015610536573d6000803e3d6000fd5b505050506040513d602081101561054c57600080fd5b50515b151561055a57600080fd5b600254604080517f28da850b000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a03909216916328da850b9160248082019260009290919082900301818387803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b50506002546040805160e160020a63455f2cf502815260ff8c1660048201529051600160a060020a039092169350638abe59ea92506024808201926020929091908290030181600087803b15801561062b57600080fd5b505af115801561063f573d6000803e3d6000fd5b505050506040513d602081101561065557600080fd5b5051604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018990529051600160a060020a039092169163095ea7b3916044808201926020929091908290030181600087803b1580156106c157600080fd5b505af11580156106d5573d6000803e3d6000fd5b505050506040513d60208110156106eb57600080fd5b5050604080517f46280a8000000000000000000000000000000000000000000000000000000000815260ff891660048201526024810188905260448101879052905130916346280a809160648083019260209291908290030181600087803b15801561075657600080fd5b505af115801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b5051600254604080517f7dc8f0860000000000000000000000000000000000000000000000000000000081529051838a039750929550600160a060020a0390911691637dc8f086916004808201926020929091908290030181600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050506040513d602081101561081457600080fd5b50519150600090505b8160ff168160ff1610156109605760ff81811690881614610958576002546040805160e160020a63455f2cf502815260ff841660048201529051600160a060020a0390921691638abe59ea916024808201926020929091908290030181600087803b15801561088b57600080fd5b505af115801561089f573d6000803e3d6000fd5b505050506040513d60208110156108b557600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561092157600080fd5b505af1158015610935573d6000803e3d6000fd5b505050506040513d602081101561094b57600080fd5b5051151561095857600080fd5b60010161081d565b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109b357600080fd5b505af11580156109c7573d6000803e3d6000fd5b505050506040513d60208110156109dd57600080fd5b5051600754604080517f57cfeeee00000000000000000000000000000000000000000000000000000000815233600482015260248101879052604481019290925251600160a060020a03909216916357cfeeee916064808201926020929091908290030181600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b50511515610a8a57600080fd5b6040805160ff8916815260208101889052808201869052905133917f1dbdc4ff4d51949738d56e120b2be4edecc55d8d2150f1616ec5802abaae3f88919081900360600190a25050509392505050565b60075481565b600080548190600160a060020a03163314610b45576040805160e560020a62461bcd02815260206004820152601260248201527f73656e646572206e6f742063726561746f720000000000000000000000000000604482015290519081900360640190fd5b60018060065460ff166002811115610b5957fe5b14610b9c576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a0316637dc8f0866040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b505050506040513d6020811015610c1957600080fd5b50519250600091505b8260ff168260ff161015610e5e576002546040805160e160020a63455f2cf502815260ff851660048201529051600160a060020a0390921691638abe59ea916024808201926020929091908290030181600087803b158015610c8357600080fd5b505af1158015610c97573d6000803e3d6000fd5b505050506040513d6020811015610cad57600080fd5b5051600080546002546040805160e160020a63455f2cf502815260ff881660048201529051600160a060020a039586169563a9059cbb9594811694931692638abe59ea92602480820193602093909283900390910190829087803b158015610d1457600080fd5b505af1158015610d28573d6000803e3d6000fd5b505050506040513d6020811015610d3e57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610e1c57600080fd5b505af1158015610e30573d6000803e3d6000fd5b505050506040513d6020811015610e4657600080fd5b50511515610e5357600080fd5b600190910190610c22565b6006805460ff191660021790556040517fe7d85885f81486e8f4c99e50e056745493861b8b5d4f973dcf0c3c0f74a25e0790600090a1505050565b6000808060018060065460ff166002811115610eb157fe5b14610ef4576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600354604080517f4091c6a900000000000000000000000000000000000000000000000000000000815230600482015260ff8a166024820152604481018990529051600160a060020a0390921691634091c6a9916064808201926020929091908290030181600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b505050506040513d6020811015610f9457600080fd5b50519250610fa183611756565b91508273__Math__________________________________63b67d77c59091846040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015610fff57600080fd5b505af4158015611013573d6000803e3d6000fd5b505050506040513d602081101561102957600080fd5b5051935060008411801561103d5750848410155b151561104857600080fd5b6002546040805160e160020a63455f2cf502815260ff8a1660048201529051600160a060020a0390921691638abe59ea916024808201926020929091908290030181600087803b15801561109b57600080fd5b505af11580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018990529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561113757600080fd5b505af115801561114b573d6000803e3d6000fd5b505050506040513d602081101561116157600080fd5b5051151561116e57600080fd5b600254604080517f6fb1edcd000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0390921691636fb1edcd9160248082019260009290919082900301818387803b1580156111d457600080fd5b505af11580156111e8573d6000803e3d6000fd5b50505050600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561123f57600080fd5b505af1158015611253573d6000803e3d6000fd5b505050506040513d602081101561126957600080fd5b5051600754604080517f57cfeeee00000000000000000000000000000000000000000000000000000000815233600482015260248101889052604481019290925251600160a060020a03909216916357cfeeee916064808201926020929091908290030181600087803b1580156112df57600080fd5b505af11580156112f3573d6000803e3d6000fd5b505050506040513d602081101561130957600080fd5b5051151561131657600080fd5b600086121561132457600080fd5b6005805460ff891690811061133557fe5b906000526020600020015473__Math__________________________________63adefc37b9091886040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561139b57600080fd5b505af41580156113af573d6000803e3d6000fd5b505050506040513d60208110156113c557600080fd5b50516005805460ff8a169081106113d857fe5b600091825260209182902001919091556040805160ff8a168152918201889052818101859052606082018490525133917fab24ef3371efb2e0e3b02955e33b8ef03c14523e71f3bda87878a2386cc17b69919081900360800190a25050509392505050565b60008054600160a060020a031633146114a0576040805160e560020a62461bcd02815260206004820152601260248201527f73656e646572206e6f742063726561746f720000000000000000000000000000604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156114f357600080fd5b505af1158015611507573d6000803e3d6000fd5b505050506040513d602081101561151d57600080fd5b5051600754604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152306004820152602481019290925251600160a060020a0390921691634d30b6be916044808201926020929091908290030181600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506040513d60208110156115b657600080fd5b5051600254604080517f942032e30000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163942032e3916004808201926020929091908290030181600087803b15801561161b57600080fd5b505af115801561162f573d6000803e3d6000fd5b505050506040513d602081101561164557600080fd5b505160008054600754604080517f57cfeeee000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201526024810187905260448101929092525191909316926357cfeeee9260648083019360209390929083900390910190829087803b1580156116c457600080fd5b505af11580156116d8573d6000803e3d6000fd5b505050506040513d60208110156116ee57600080fd5b505115156116fb57600080fd5b6040805182815290517f706d7f48c702007c2fb0881cea5759732e64f52faee427d5ab030787cfb7d7879181900360200190a190565b60015481565b600580548290811061174557fe5b600091825260209091200154905081565b600354600090620f42409074010000000000000000000000000000000000000000900462ffffff1683020492915050565b60065460ff1681565b600054600160a060020a031633146117f2576040805160e560020a62461bcd02815260206004820152601260248201527f73656e646572206e6f742063726561746f720000000000000000000000000000604482015290519081900360640190fd5b60008060065460ff16600281111561180657fe5b14611849576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561189c57600080fd5b505af11580156118b0573d6000803e3d6000fd5b505050506040513d60208110156118c657600080fd5b5051600754604080517f401e336700000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101869052606481019290925251600160a060020a039092169163401e3367916084808201926020929091908290030181600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b505050506040513d602081101561196c57600080fd5b505115156119c4576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a1757600080fd5b505af1158015611a2b573d6000803e3d6000fd5b505050506040513d6020811015611a4157600080fd5b5051600254600754604080517f8180f2fc000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018790526044810192909252519190921691638180f2fc9160648083019260209291908290030181600087803b158015611abc57600080fd5b505af1158015611ad0573d6000803e3d6000fd5b505050506040513d6020811015611ae657600080fd5b50511515611b3e576040805160e560020a62461bcd02815260206004820152600f60248201527f617070726f76616c206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b600254604080517f28da850b000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03909216916328da850b9160248082019260009290919082900301818387803b158015611ba457600080fd5b505af1158015611bb8573d6000803e3d6000fd5b5050506004839055506006805460ff191660011790556040805183815290517f8a2fe22ce705a4ac9c189969cef327affbdc477afdae4ae274c2f8ad021f9163916020908290030190a15050565b60045481565b60035474010000000000000000000000000000000000000000900462ffffff1681565b600254600160a060020a031681565b6000808060018060065460ff166002811115611c5657fe5b14611c99576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600354604080517fbd8ff81700000000000000000000000000000000000000000000000000000000815230600482015260ff8a166024820152604481018990529051600160a060020a039092169163bd8ff817916064808201926020929091908290030181600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50519250611d4683611756565b91508273__Math__________________________________63771602f79091846040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015611da457600080fd5b505af4158015611db8573d6000803e3d6000fd5b505050506040513d6020811015611dce57600080fd5b50519350600084118015611de25750848411155b1515611ded57600080fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b505050506040513d6020811015611e6a57600080fd5b5051600754604080517f401e336700000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101889052606481019290925251600160a060020a039092169163401e3367916084808201926020929091908290030181600087803b158015611ee657600080fd5b505af1158015611efa573d6000803e3d6000fd5b505050506040513d6020811015611f1057600080fd5b5051801561203e5750600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b505050506040513d6020811015611f9657600080fd5b5051600254600754604080517f8180f2fc000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018890526044810192909252519190921691638180f2fc9160648083019260209291908290030181600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b505050506040513d602081101561203b57600080fd5b50515b151561204957600080fd5b600254604080517f28da850b000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03909216916328da850b9160248082019260009290919082900301818387803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b50506002546040805160e160020a63455f2cf502815260ff8c1660048201529051600160a060020a039092169350638abe59ea92506024808201926020929091908290030181600087803b15801561211a57600080fd5b505af115801561212e573d6000803e3d6000fd5b505050506040513d602081101561214457600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156121b057600080fd5b505af11580156121c4573d6000803e3d6000fd5b505050506040513d60208110156121da57600080fd5b505115156121e757600080fd5b60008612156121f557600080fd5b6005805460ff891690811061220657fe5b906000526020600020015473__Math__________________________________63a5f3c23b9091886040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561226c57600080fd5b505af4158015612280573d6000803e3d6000fd5b505050506040513d602081101561229657600080fd5b50516005805460ff8a169081106122a957fe5b600091825260209182902001919091556040805160ff8a168152918201889052818101859052606082018490525133917f7caea4a19892ce49b4daa2014d5599eed561dcd16ffabfac851a9737217ae410919081900360800190a25050509392505050565b620f4240815600696e636f7272656374206d61726b657420737461676500000000000000000000a165627a7a7230582062095475d29897ae9f77a082f9f8eaae5008ebb5f6ff0e2af56a8b28cbf3aaa30029",
  "deployedBytecode": "0x6080604052600436106100d75763ffffffff60e060020a60003504166302d05d3f81146100dc5780631f21f9af1461010d57806328c05d321461012257806342df93831461015557806343d726d61461016a57806346280a8014610181578063476343ee146101a257806359acb42c146101b7578063a157979c146101cc578063b0011509146101e4578063c040e6b8146101fc578063ca1d209d14610235578063cb4c86b71461024d578063ddca3f4314610262578063e274fd241461028f578063f6d956df146102a4578063fbde47f6146102c5575b600080fd5b3480156100e857600080fd5b506100f16102da565b60408051600160a060020a039092168252519081900360200190f35b34801561011957600080fd5b506100f16102e9565b34801561012e57600080fd5b5061014360ff600435166024356044356102f8565b60408051918252519081900360200190f35b34801561016157600080fd5b50610143610ada565b34801561017657600080fd5b5061017f610ae0565b005b34801561018d57600080fd5b5061014360ff60043516602435604435610e99565b3480156101ae57600080fd5b5061014361143d565b3480156101c357600080fd5b50610143611731565b3480156101d857600080fd5b50610143600435611737565b3480156101f057600080fd5b50610143600435611756565b34801561020857600080fd5b50610211611787565b6040518082600281111561022157fe5b60ff16815260200191505060405180910390f35b34801561024157600080fd5b5061017f600435611790565b34801561025957600080fd5b50610143611c06565b34801561026e57600080fd5b50610277611c0c565b6040805162ffffff9092168252519081900360200190f35b34801561029b57600080fd5b506100f1611c2f565b3480156102b057600080fd5b5061014360ff60043516602435604435611c3e565b3480156102d157600080fd5b5061027761230e565b600054600160a060020a031681565b600354600160a060020a031681565b600080600080600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561035157600080fd5b505af1158015610365573d6000803e3d6000fd5b505050506040513d602081101561037b57600080fd5b5051600754604080517f401e3367000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018a9052606481019290925251600160a060020a039092169163401e3367916084808201926020929091908290030181600087803b1580156103f757600080fd5b505af115801561040b573d6000803e3d6000fd5b505050506040513d602081101561042157600080fd5b5051801561054f5750600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561047d57600080fd5b505af1158015610491573d6000803e3d6000fd5b505050506040513d60208110156104a757600080fd5b5051600254600754604080517f8180f2fc000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018b90526044810192909252519190921691638180f2fc9160648083019260209291908290030181600087803b15801561052257600080fd5b505af1158015610536573d6000803e3d6000fd5b505050506040513d602081101561054c57600080fd5b50515b151561055a57600080fd5b600254604080517f28da850b000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a03909216916328da850b9160248082019260009290919082900301818387803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b50506002546040805160e160020a63455f2cf502815260ff8c1660048201529051600160a060020a039092169350638abe59ea92506024808201926020929091908290030181600087803b15801561062b57600080fd5b505af115801561063f573d6000803e3d6000fd5b505050506040513d602081101561065557600080fd5b5051604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018990529051600160a060020a039092169163095ea7b3916044808201926020929091908290030181600087803b1580156106c157600080fd5b505af11580156106d5573d6000803e3d6000fd5b505050506040513d60208110156106eb57600080fd5b5050604080517f46280a8000000000000000000000000000000000000000000000000000000000815260ff891660048201526024810188905260448101879052905130916346280a809160648083019260209291908290030181600087803b15801561075657600080fd5b505af115801561076a573d6000803e3d6000fd5b505050506040513d602081101561078057600080fd5b5051600254604080517f7dc8f0860000000000000000000000000000000000000000000000000000000081529051838a039750929550600160a060020a0390911691637dc8f086916004808201926020929091908290030181600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050506040513d602081101561081457600080fd5b50519150600090505b8160ff168160ff1610156109605760ff81811690881614610958576002546040805160e160020a63455f2cf502815260ff841660048201529051600160a060020a0390921691638abe59ea916024808201926020929091908290030181600087803b15801561088b57600080fd5b505af115801561089f573d6000803e3d6000fd5b505050506040513d60208110156108b557600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561092157600080fd5b505af1158015610935573d6000803e3d6000fd5b505050506040513d602081101561094b57600080fd5b5051151561095857600080fd5b60010161081d565b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109b357600080fd5b505af11580156109c7573d6000803e3d6000fd5b505050506040513d60208110156109dd57600080fd5b5051600754604080517f57cfeeee00000000000000000000000000000000000000000000000000000000815233600482015260248101879052604481019290925251600160a060020a03909216916357cfeeee916064808201926020929091908290030181600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b50511515610a8a57600080fd5b6040805160ff8916815260208101889052808201869052905133917f1dbdc4ff4d51949738d56e120b2be4edecc55d8d2150f1616ec5802abaae3f88919081900360600190a25050509392505050565b60075481565b600080548190600160a060020a03163314610b45576040805160e560020a62461bcd02815260206004820152601260248201527f73656e646572206e6f742063726561746f720000000000000000000000000000604482015290519081900360640190fd5b60018060065460ff166002811115610b5957fe5b14610b9c576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a0316637dc8f0866040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b505050506040513d6020811015610c1957600080fd5b50519250600091505b8260ff168260ff161015610e5e576002546040805160e160020a63455f2cf502815260ff851660048201529051600160a060020a0390921691638abe59ea916024808201926020929091908290030181600087803b158015610c8357600080fd5b505af1158015610c97573d6000803e3d6000fd5b505050506040513d6020811015610cad57600080fd5b5051600080546002546040805160e160020a63455f2cf502815260ff881660048201529051600160a060020a039586169563a9059cbb9594811694931692638abe59ea92602480820193602093909283900390910190829087803b158015610d1457600080fd5b505af1158015610d28573d6000803e3d6000fd5b505050506040513d6020811015610d3e57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610e1c57600080fd5b505af1158015610e30573d6000803e3d6000fd5b505050506040513d6020811015610e4657600080fd5b50511515610e5357600080fd5b600190910190610c22565b6006805460ff191660021790556040517fe7d85885f81486e8f4c99e50e056745493861b8b5d4f973dcf0c3c0f74a25e0790600090a1505050565b6000808060018060065460ff166002811115610eb157fe5b14610ef4576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600354604080517f4091c6a900000000000000000000000000000000000000000000000000000000815230600482015260ff8a166024820152604481018990529051600160a060020a0390921691634091c6a9916064808201926020929091908290030181600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b505050506040513d6020811015610f9457600080fd5b50519250610fa183611756565b91508273__Math__________________________________63b67d77c59091846040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015610fff57600080fd5b505af4158015611013573d6000803e3d6000fd5b505050506040513d602081101561102957600080fd5b5051935060008411801561103d5750848410155b151561104857600080fd5b6002546040805160e160020a63455f2cf502815260ff8a1660048201529051600160a060020a0390921691638abe59ea916024808201926020929091908290030181600087803b15801561109b57600080fd5b505af11580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018990529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561113757600080fd5b505af115801561114b573d6000803e3d6000fd5b505050506040513d602081101561116157600080fd5b5051151561116e57600080fd5b600254604080517f6fb1edcd000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0390921691636fb1edcd9160248082019260009290919082900301818387803b1580156111d457600080fd5b505af11580156111e8573d6000803e3d6000fd5b50505050600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561123f57600080fd5b505af1158015611253573d6000803e3d6000fd5b505050506040513d602081101561126957600080fd5b5051600754604080517f57cfeeee00000000000000000000000000000000000000000000000000000000815233600482015260248101889052604481019290925251600160a060020a03909216916357cfeeee916064808201926020929091908290030181600087803b1580156112df57600080fd5b505af11580156112f3573d6000803e3d6000fd5b505050506040513d602081101561130957600080fd5b5051151561131657600080fd5b600086121561132457600080fd5b6005805460ff891690811061133557fe5b906000526020600020015473__Math__________________________________63adefc37b9091886040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561139b57600080fd5b505af41580156113af573d6000803e3d6000fd5b505050506040513d60208110156113c557600080fd5b50516005805460ff8a169081106113d857fe5b600091825260209182902001919091556040805160ff8a168152918201889052818101859052606082018490525133917fab24ef3371efb2e0e3b02955e33b8ef03c14523e71f3bda87878a2386cc17b69919081900360800190a25050509392505050565b60008054600160a060020a031633146114a0576040805160e560020a62461bcd02815260206004820152601260248201527f73656e646572206e6f742063726561746f720000000000000000000000000000604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156114f357600080fd5b505af1158015611507573d6000803e3d6000fd5b505050506040513d602081101561151d57600080fd5b5051600754604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152306004820152602481019290925251600160a060020a0390921691634d30b6be916044808201926020929091908290030181600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506040513d60208110156115b657600080fd5b5051600254604080517f942032e30000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163942032e3916004808201926020929091908290030181600087803b15801561161b57600080fd5b505af115801561162f573d6000803e3d6000fd5b505050506040513d602081101561164557600080fd5b505160008054600754604080517f57cfeeee000000000000000000000000000000000000000000000000000000008152600160a060020a0393841660048201526024810187905260448101929092525191909316926357cfeeee9260648083019360209390929083900390910190829087803b1580156116c457600080fd5b505af11580156116d8573d6000803e3d6000fd5b505050506040513d60208110156116ee57600080fd5b505115156116fb57600080fd5b6040805182815290517f706d7f48c702007c2fb0881cea5759732e64f52faee427d5ab030787cfb7d7879181900360200190a190565b60015481565b600580548290811061174557fe5b600091825260209091200154905081565b600354600090620f42409074010000000000000000000000000000000000000000900462ffffff1683020492915050565b60065460ff1681565b600054600160a060020a031633146117f2576040805160e560020a62461bcd02815260206004820152601260248201527f73656e646572206e6f742063726561746f720000000000000000000000000000604482015290519081900360640190fd5b60008060065460ff16600281111561180657fe5b14611849576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561189c57600080fd5b505af11580156118b0573d6000803e3d6000fd5b505050506040513d60208110156118c657600080fd5b5051600754604080517f401e336700000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101869052606481019290925251600160a060020a039092169163401e3367916084808201926020929091908290030181600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b505050506040513d602081101561196c57600080fd5b505115156119c4576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a1757600080fd5b505af1158015611a2b573d6000803e3d6000fd5b505050506040513d6020811015611a4157600080fd5b5051600254600754604080517f8180f2fc000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018790526044810192909252519190921691638180f2fc9160648083019260209291908290030181600087803b158015611abc57600080fd5b505af1158015611ad0573d6000803e3d6000fd5b505050506040513d6020811015611ae657600080fd5b50511515611b3e576040805160e560020a62461bcd02815260206004820152600f60248201527f617070726f76616c206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b600254604080517f28da850b000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03909216916328da850b9160248082019260009290919082900301818387803b158015611ba457600080fd5b505af1158015611bb8573d6000803e3d6000fd5b5050506004839055506006805460ff191660011790556040805183815290517f8a2fe22ce705a4ac9c189969cef327affbdc477afdae4ae274c2f8ad021f9163916020908290030190a15050565b60045481565b60035474010000000000000000000000000000000000000000900462ffffff1681565b600254600160a060020a031681565b6000808060018060065460ff166002811115611c5657fe5b14611c99576040805160e560020a62461bcd0281526020600482015260166024820152600080516020612316833981519152604482015290519081900360640190fd5b600354604080517fbd8ff81700000000000000000000000000000000000000000000000000000000815230600482015260ff8a166024820152604481018990529051600160a060020a039092169163bd8ff817916064808201926020929091908290030181600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50519250611d4683611756565b91508273__Math__________________________________63771602f79091846040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015611da457600080fd5b505af4158015611db8573d6000803e3d6000fd5b505050506040513d6020811015611dce57600080fd5b50519350600084118015611de25750848411155b1515611ded57600080fd5b600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b505050506040513d6020811015611e6a57600080fd5b5051600754604080517f401e336700000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101889052606481019290925251600160a060020a039092169163401e3367916084808201926020929091908290030181600087803b158015611ee657600080fd5b505af1158015611efa573d6000803e3d6000fd5b505050506040513d6020811015611f1057600080fd5b5051801561203e5750600260009054906101000a9004600160a060020a0316600160a060020a031663942032e36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b505050506040513d6020811015611f9657600080fd5b5051600254600754604080517f8180f2fc000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018890526044810192909252519190921691638180f2fc9160648083019260209291908290030181600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b505050506040513d602081101561203b57600080fd5b50515b151561204957600080fd5b600254604080517f28da850b000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03909216916328da850b9160248082019260009290919082900301818387803b1580156120af57600080fd5b505af11580156120c3573d6000803e3d6000fd5b50506002546040805160e160020a63455f2cf502815260ff8c1660048201529051600160a060020a039092169350638abe59ea92506024808201926020929091908290030181600087803b15801561211a57600080fd5b505af115801561212e573d6000803e3d6000fd5b505050506040513d602081101561214457600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156121b057600080fd5b505af11580156121c4573d6000803e3d6000fd5b505050506040513d60208110156121da57600080fd5b505115156121e757600080fd5b60008612156121f557600080fd5b6005805460ff891690811061220657fe5b906000526020600020015473__Math__________________________________63a5f3c23b9091886040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b15801561226c57600080fd5b505af4158015612280573d6000803e3d6000fd5b505050506040513d602081101561229657600080fd5b50516005805460ff8a169081106122a957fe5b600091825260209182902001919091556040805160ff8a168152918201889052818101859052606082018490525133917f7caea4a19892ce49b4daa2014d5599eed561dcd16ffabfac851a9737217ae410919081900360800190a25050509392505050565b620f4240815600696e636f7272656374206d61726b657420737461676500000000000000000000a165627a7a7230582062095475d29897ae9f77a082f9f8eaae5008ebb5f6ff0e2af56a8b28cbf3aaa30029",
  "sourceMap": "344:8443:4:-;;;1148:594;8:9:-1;5:2;;;30:1;27;20:12;5:2;1148:594:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1321:28:4;;;;;;:58;;-1:-1:-1;;;;;;1353:26:4;;;;1321:58;:78;;;;-1:-1:-1;474:7:4;1383:16;;;;1321:78;1313:87;;;;;;;;1420:8;1410:7;;:18;;;;;-1:-1:-1;;;;;1410:18:4;;;;;-1:-1:-1;;;;;1410:18:4;;;;;;1454:14;-1:-1:-1;;;;;1454:31:4;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1454:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1454:33:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1454:33:4;1438:13;:49;1514:12;1497:14;:29;1536:13;:30;;-1:-1:-1;;;;;;1536:30:4;-1:-1:-1;;;;;1536:30:4;;;;;;;;;;;1609:31;;;;;;;;:13;;;;;:29;;:31;;;;;1454:33;;1609:31;;;;;;;;-1:-1:-1;1609:13:4;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;1609:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1609:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1609:31:4;1599:42;;;;;;;;;;1609:31;1599:42;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1599:42:4;-1:-1:-1;1576:65:4;;;;:20;;:65;;;;;;:::i;:::-;-1:-1:-1;1651:3:4;:10;;-1:-1:-1;;;;;;1651:10:4;;;;;;;-1:-1:-1;;;;;;1671:26:4;-1:-1:-1;;;;;1671:26:4;;;;;1707:5;:28;;-1:-1:-1;;1707:5:4;-1:-1:-1;;1707:28:4;-1:-1:-1;;1707:28:4;;;;;1148:594;;;;344:8443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;344:8443:4;;;-1:-1:-1;344:8443:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "344:8443:4:-;;;;;;;;;-1:-1:-1;;;344:8443:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;760:22:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;760:22:2;;;;;;;;-1:-1:-1;;;;;760:22:2;;;;;;;;;;;;;;858:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;858:30:2;;;;7256:1212:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7256:1212:4;;;;;;;;;;;;;;;;;;;;;;;;;;;500:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;500:28:4;;;;2610:390;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2610:390:4;;;;;;5475:1312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5475:1312:4;;;;;;;;;;;3105:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3105:318:4;;;;788:26:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;788:26:2;;;;942:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;942:33:2;;;;;8622:163:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8622:163:4;;;;;981:19:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;981:19:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1885:603:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1885:603:4;;;;;917:19:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:19:2;;;;894:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;894:17:2;;;;;;;;;;;;;;;;;;;;;;;820:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:32:2;;;;3750:1390:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3750:1390:4;;;;;;;;;;;439:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;439:42:4;;;;760:22:2;;;-1:-1:-1;;;;;760:22:2;;:::o;858:30::-;;;-1:-1:-1;;;;;858:30:2;;:::o;7256:1212:4:-;7372:9;7836:11;8005:18;8072:7;7436:13;;;;;;;;;-1:-1:-1;;;;;7436:13:4;-1:-1:-1;;;;;7436:29:4;;:31;;;;;-1:-1:-1;;;7436:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7436:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7436:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7436:31:4;7518:13;;7436:96;;;;;;7481:10;7436:96;;;;7493:4;7436:96;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7436:44:4;;;;;;:96;;;;;:31;;:96;;;;;;;;-1:-1:-1;7436:44:4;:96;;;5:2:-1;;;;30:1;27;20:12;5:2;7436:96:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7436:96:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7436:96:4;:204;;;;;7552:13;;;;;;;;;-1:-1:-1;;;;;7552:13:4;-1:-1:-1;;;;;7552:29:4;;:31;;;;;-1:-1:-1;;;7552:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7552:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7552:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7552:31:4;7592:13;;7626;;7552:88;;;;;;-1:-1:-1;;;;;7592:13:4;;;7552:88;;;;;;;;;;;;;;;;;;:39;;;;;;;:88;;;;;:31;;:88;;;;;;;7592:13;7552:39;:88;;;5:2:-1;;;;30:1;27;20:12;5:2;7552:88:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7552:88:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7552:88:4;7436:204;7425:216;;;;;;;;7651:13;;:47;;;;;;;;;;;;;;-1:-1:-1;;;;;7651:13:4;;;;:28;;:47;;;;;:13;;:47;;;;;;;;:13;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;7651:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7747:13:4;;:46;;;-1:-1:-1;;;;;7747:46:4;;;;;;;;;;;-1:-1:-1;;;;;7747:13:4;;;;-1:-1:-1;7747:27:4;;-1:-1:-1;7747:46:4;;;;;;;;;;;;;;;:13;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;7747:46:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7747:46:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7747:46:4;:79;;;;;;7802:4;7747:79;;;;;;;;;;;;-1:-1:-1;;;;;7747:54:4;;;;;;:79;;;;;:46;;:79;;;;;;;;-1:-1:-1;7747:54:4;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;7747:79:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7747:79:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7850:58:4;;;;;;;;;;;;;;;;;;;;;;;;;;;:4;;:9;;:58;;;;;7747:79;;7850:58;;;;;;;-1:-1:-1;7850:4:4;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;7850:58:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7850:58:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7850:58:4;8026:13;;:31;;;;;;;;7925:26;;;;-1:-1:-1;7850:58:4;;-1:-1:-1;;;;;;8026:13:4;;;;:29;;:31;;;;;7850:58;;8026:31;;;;;;;;:13;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;8026:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8026:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8026:31:4;;-1:-1:-1;8082:1:4;;-1:-1:-1;8067:176:4;8089:12;8085:16;;:1;:16;;;8067:176;;;8124:22;;;;;;;;8120:123;;8172:13;;:30;;;-1:-1:-1;;;;;8172:30:4;;;;;;;;;;;-1:-1:-1;;;;;8172:13:4;;;;:27;;:30;;;;;;;;;;;;;;;:13;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;8172:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8172:30:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8172:30:4;:70;;;;;;8212:10;8172:70;;;;;;;;;;;;-1:-1:-1;;;;;8172:39:4;;;;;;:70;;;;;:30;;:70;;;;;;;;-1:-1:-1;8172:39:4;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;8172:70:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8172:70:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8172:70:4;8164:79;;;;;;;;8103:3;;8067:176;;;8298:13;;;;;;;;;-1:-1:-1;;;;;8298:13:4;-1:-1:-1;;;;;8298:29:4;;:31;;;;;-1:-1:-1;;;8298:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8298:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8298:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8298:31:4;8359:13;;8298:75;;;;;;8339:10;8298:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8298:40:4;;;;;;:75;;;;;:31;;:75;;;;;;;;-1:-1:-1;8298:40:4;:75;;;5:2:-1;;;;30:1;27;20:12;5:2;8298:75:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8298:75:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8298:75:4;8290:84;;;;;;;;8384:77;;;;;;;;;;;;;;;;;;;;;;8406:10;;8384:77;;;;;;;;;;7256:1212;;;;;;;;:::o;500:28::-;;;;:::o;2610:390::-;2711:18;666:7;;2711:18;;-1:-1:-1;;;;;666:7:4;652:10;:21;644:52;;;;;-1:-1:-1;;;;;644:52:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;2676:19;;815:5;;;;:15;;;;;;;;;807:50;;;;;-1:-1:-1;;;;;807:50:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;807:50:4;;;;;;;;;;;;;;;2732:13;;;;;;;;;-1:-1:-1;;;;;2732:13:4;-1:-1:-1;;;;;2732:29:4;;:31;;;;;-1:-1:-1;;;2732:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2732:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2732:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2732:31:4;;-1:-1:-1;2788:1:4;;-1:-1:-1;2773:158:4;2795:12;2791:16;;:1;:16;;;2773:158;;;2834:13;;:30;;;-1:-1:-1;;;;;2834:30:4;;;;;;;;;;;-1:-1:-1;;;;;2834:13:4;;;;:27;;:30;;;;;;;;;;;;;;;:13;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;2834:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2834:30:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2834:30:4;2874:7;;;2883:13;;:30;;;-1:-1:-1;;;;;2883:30:4;;;;;;;;;;;-1:-1:-1;;;;;2834:39:4;;;;;;2874:7;;;;2883:13;;;:27;;:30;;;;;2834;;2883;;;;;;;;;;;:13;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;2883:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2883:30:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2883:30:4;:46;;;;;;2924:4;2883:46;;;;;;-1:-1:-1;;;;;2883:40:4;;;;;;:46;;;;;:30;;:46;;;;;;;;-1:-1:-1;2883:40:4;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;2883:46:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2883:46:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2883:46:4;2834:96;;;-1:-1:-1;;;2834:96:4;;;;;;-1:-1:-1;;;;;2834:96:4;;;;;;;;;;;;;;;;;;;;2883:46;;2834:96;;;;;;;-1:-1:-1;2834:96:4;;;;5:2:-1;;;;30:1;27;20:12;5:2;2834:96:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2834:96:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2834:96:4;2826:105;;;;;;;;2809:3;;;;;2773:158;;;2941:5;:27;;-1:-1:-1;;2941:27:4;2949:19;2941:27;;;2978:15;;;;-1:-1:-1;;2978:15:4;706:1;2610:390;;:::o;5475:1312::-;5623:11;;;5585:19;;815:5;;;;:15;;;;;;;;;807:50;;;;;-1:-1:-1;;;;;807:50:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;807:50:4;;;;;;;;;;;;;;;5731:11;;:66;;;;;;5754:4;5731:66;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5731:11:4;;;;:22;;:66;;;;;;;;;;;;;;;:11;;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;5731:66:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5731:66:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5731:66:4;;-1:-1:-1;5862:33:4;5731:66;5862:13;:33::i;:::-;5850:45;;5914:18;:22;;;;5937:4;5914:28;;;;;-1:-1:-1;;;5914:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5914:28:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5914:28:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5914:28:4;;-1:-1:-1;6008:1:4;5999:10;;:33;;;;;6023:9;6013:6;:19;;5999:33;5991:42;;;;;;;;6127:13;;:46;;;-1:-1:-1;;;;;6127:46:4;;;;;;;;;;;-1:-1:-1;;;;;6127:13:4;;;;:27;;:46;;;;;;;;;;;;;;;:13;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;6127:46:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6127:46:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6127:46:4;:96;;;;;;6187:10;6127:96;;;;6199:4;6127:96;;;;;;;;;;;;-1:-1:-1;;;;;6127:59:4;;;;;;:96;;;;;:46;;:96;;;;;;;;-1:-1:-1;6127:59:4;:96;;;5:2:-1;;;;30:1;27;20:12;5:2;6127:96:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6127:96:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6127:96:4;6119:105;;;;;;;;6263:13;;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;6263:13:4;;;;:29;;:49;;;;;:13;;:49;;;;;;;;:13;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;6263:49:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6263:49:4;;;;6367:13;;;;;;;;;-1:-1:-1;;;;;6367:13:4;-1:-1:-1;;;;;6367:29:4;;:31;;;;;-1:-1:-1;;;6367:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6367:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6367:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6367:31:4;6428:13;;6367:75;;;;;;6408:10;6367:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6367:40:4;;;;;;:75;;;;;:31;;:75;;;;;;;;-1:-1:-1;6367:40:4;:75;;;5:2:-1;;;;30:1;27;20:12;5:2;6367:75:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6367:75:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6367:75:4;6359:84;;;;;;;;6557:1;6531:27;;;6523:36;;;;;;6611:20;:39;;;;;;;;;;;;;;;;;;;;:43;;;;6659:17;6611:67;;;;;-1:-1:-1;;;6611:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6611:67:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6611:67:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6611:67:4;6569:20;:39;;;;;;;;;;;;;;;;;;;;;;:109;;;;6688:92;;;;;;;;;;;;;;;;;;;;;;;;;;;6705:10;;6688:92;;;;;;;;;;5475:1312;;;;;;;;:::o;3105:318::-;3179:9;666:7;;-1:-1:-1;;;;;666:7:4;652:10;:21;644:52;;;;;-1:-1:-1;;;;;644:52:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3211:13;;;;;;;;;-1:-1:-1;;;;;3211:13:4;-1:-1:-1;;;;;3211:29:4;;:31;;;;;-1:-1:-1;;;3211:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3211:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3211:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3211:31:4;3259:13;;3211:62;;;;;;3253:4;3211:62;;;;;;;;;;;;-1:-1:-1;;;;;3211:41:4;;;;;;:62;;;;;:31;;:62;;;;;;;;-1:-1:-1;3211:41:4;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;3211:62:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3211:62:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3211:62:4;3316:13;;:31;;;;;;;;3211:62;;-1:-1:-1;;;;;;3316:13:4;;;;:29;;:31;;;;;3211:62;;3316:31;;;;;;;;:13;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;3316:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3316:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3316:31:4;3357:7;;;3372:13;;3316:70;;;;;;-1:-1:-1;;;;;3357:7:4;;;3316:70;;;;;;;;;;;;;;;;;;:40;;;;;;;:70;;;;;:31;;:70;;;;;;;;;;;;:40;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;3316:70:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3316:70:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3316:70:4;3308:79;;;;;;;;3397:19;;;;;;;;;;;;;;;;;3105:318;:::o;788:26:2:-;;;;:::o;942:33::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;942:33:2;:::o;8622:163:4:-;8763:3;;8717:4;;474:7;;8763:3;;;8744:34;8763:3;8744:22;;:34;;8622:163;-1:-1:-1;;8622:163:4:o;981:19:2:-;;;;;;:::o;1885:603:4:-;666:7;;-1:-1:-1;;;;;666:7:4;652:10;:21;644:52;;;;;-1:-1:-1;;;;;644:52:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1963:20;;815:5;;;;:15;;;;;;;;;807:50;;;;;-1:-1:-1;;;;;807:50:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;807:50:4;;;;;;;;;;;;;;;2107:13;;;;;;;;;-1:-1:-1;;;;;2107:13:4;-1:-1:-1;;;;;2107:29:4;;:31;;;;;-1:-1:-1;;;2107:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2107:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2107:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2107:31:4;2180:13;;2107:87;;;;;;2152:10;2107:87;;;;2164:4;2107:87;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2107:44:4;;;;;;:87;;;;;:31;;:87;;;;;;;;-1:-1:-1;2107:44:4;:87;;;5:2:-1;;;;30:1;27;20:12;5:2;2107:87:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2107:87:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2107:87:4;2098:120;;;;;;;-1:-1:-1;;;;;2098:120:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;2237:13;;;;;;;;;-1:-1:-1;;;;;2237:13:4;-1:-1:-1;;;;;2237:29:4;;:31;;;;;-1:-1:-1;;;2237:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2237:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2237:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2237:31:4;2277:13;;2302;;2237:79;;;;;;-1:-1:-1;;;;;2277:13:4;;;2237:79;;;;;;;;;;;;;;;;;;:39;;;;;;;:79;;;;;:31;;:79;;;;;;;2277:13;2237:39;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;2237:79:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2237:79:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2237:79:4;2228:108;;;;;;;-1:-1:-1;;;;;2228:108:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:13;;:38;;;;;;;;;;;;;;-1:-1:-1;;;;;2346:13:4;;;;:28;;:38;;;;;:13;;:38;;;;;;;;:13;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2346:38:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;2394:7:4;:18;;;-1:-1:-1;2422:5:4;:27;;-1:-1:-1;;2422:27:4;2430:19;2422:27;;;2459:22;;;;;;;;;;;;;;;;;;706:1;1885:603;:::o;917:19:2:-;;;;:::o;894:17::-;;;;;;;;;:::o;820:32::-;;;-1:-1:-1;;;;;820:32:2;;:::o;3750:1390:4:-;3895:9;;;3857:19;;815:5;;;;:15;;;;;;;;;807:50;;;;;-1:-1:-1;;;;;807:50:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;807:50:4;;;;;;;;;;;;;;;3992:11;;:64;;;;;;4013:4;3992:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3992:11:4;;;;:20;;:64;;;;;;;;;;;;;;;:11;;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;3992:64:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3992:64:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3992:64:4;;-1:-1:-1;4122:31:4;3992:64;4122:13;:31::i;:::-;4110:43;;4170:16;:20;;;;4191:4;4170:26;;;;;-1:-1:-1;;;4170:26:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4170:26:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4170:26:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4170:26:4;;-1:-1:-1;4267:1:4;4260:8;;:27;;;;;4280:7;4272:4;:15;;4260:27;4252:36;;;;;;;;4377:13;;;;;;;;;-1:-1:-1;;;;;4377:13:4;-1:-1:-1;;;;;4377:29:4;;:31;;;;;-1:-1:-1;;;4377:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4377:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4377:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4377:31:4;4446:13;;4377:83;;;;;;4422:10;4377:83;;;;4434:4;4377:83;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4377:44:4;;;;;;:83;;;;;:31;;:83;;;;;;;;-1:-1:-1;4377:44:4;:83;;;5:2:-1;;;;30:1;27;20:12;5:2;4377:83:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4377:83:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4377:83:4;:190;;;;;4480:13;;;;;;;;;-1:-1:-1;;;;;4480:13:4;-1:-1:-1;;;;;4480:29:4;;:31;;;;;-1:-1:-1;;;4480:31:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4480:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4480:31:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4480:31:4;4520:13;;4553;;4480:87;;;;;;-1:-1:-1;;;;;4520:13:4;;;4480:87;;;;;;;;;;;;;;;;;;:39;;;;;;;:87;;;;;:31;;:87;;;;;;;4520:13;4480:39;:87;;;5:2:-1;;;;30:1;27;20:12;5:2;4480:87:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4480:87:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4480:87:4;4377:190;4366:202;;;;;;;;4606:13;;:46;;;;;;;;;;;;;;-1:-1:-1;;;;;4606:13:4;;;;:28;;:46;;;;;:13;;:46;;;;;;;;:13;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;4606:46:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;4714:13:4;;:46;;;-1:-1:-1;;;;;4714:46:4;;;;;;;;;;;-1:-1:-1;;;;;4714:13:4;;;;-1:-1:-1;4714:27:4;;-1:-1:-1;4714:46:4;;;;;;;;;;;;;;;:13;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;4714:46:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4714:46:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4714:46:4;:86;;;;;;4770:10;4714:86;;;;;;;;;;;;-1:-1:-1;;;;;4714:55:4;;;;;;:86;;;;;:46;;:86;;;;;;;;-1:-1:-1;4714:55:4;:86;;;5:2:-1;;;;30:1;27;20:12;5:2;4714:86:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4714:86:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4714:86:4;4706:95;;;;;;;;4908:1;4882:27;;;4874:36;;;;;;4962:20;:39;;;;;;;;;;;;;;;;;;;;:43;;;;5010:17;4962:67;;;;;-1:-1:-1;;;4962:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4962:67:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4962:67:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4962:67:4;4920:20;:39;;;;;;;;;;;;;;;;;;;;;;:109;;;;5039:94;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:10;;5039:94;;;;;;;;;;3750:1390;;;;;;;;:::o;439:42::-;474:7;439:42;:::o",
  "source": "pragma solidity ^0.4.15;\n\nimport \"@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol\";\nimport \"@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol\";\nimport \"../ScalarEvent.sol\";\nimport \"./MarketMaker.sol\";\n\n\n/// @title Market factory contract - Allows to create market contracts\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract StandardMarket is Market{\n    using Math for *;\n\n    /*\n     *  Constants\n     */\n    uint24 public constant FEE_RANGE = 1000000; // 100%\n    \n    bytes32 public fundingBranch;\n    /*\n     *  Modifiers\n     */\n    modifier isCreator() {\n        // Only creator is allowed to proceed\n        require(msg.sender == creator, \"sender not creator\");\n        _;\n    }\n\n    modifier atStage(Stages _stage) {\n        // Contract has to be in given stage\n        require(stage == _stage, \"incorrect market stage\");\n        _;\n    }\n\n    /*\n     *  Public functions\n     */\n    /// @dev Constructor validates and sets market properties\n    /// @param _creator Market creator\n    /// @param _eventContract Event contract\n    /// @param _marketMaker Market maker contract\n    /// @param _fee Market fee\n    function StandardMarket(address _creator, ScalarEvent _eventContract, MarketMaker _marketMaker, uint24 _fee)\n        public\n    {\n        // Validate inputs\n        require(address(_eventContract) != 0 && address(_marketMaker) != 0 && _fee < FEE_RANGE);\n        creator = _creator;\n        fundingBranch = _eventContract.collateralBranch();\n        createdAtBlock = block.number;\n        eventContract = _eventContract;\n        netOutcomeTokensSold = new int[](eventContract.getOutcomeCount());\n        fee = _fee;\n        marketMaker = _marketMaker;\n        stage = Stages.MarketCreated;\n    }\n\n    /// @dev Allows to fund the market with collateral tokens converting them into outcome tokens\n    /// @param _funding Funding amount\n    function fund(uint _funding)\n        public\n        isCreator\n        atStage(Stages.MarketCreated)\n    {\n        // Request collateral tokens and allow event contract to transfer them to buy all outcomes\n        require( eventContract.forkonomicToken().transferFrom(msg.sender, this, _funding, fundingBranch), \"transferFrom failed\");\n        require( eventContract.forkonomicToken().approve(eventContract, _funding, fundingBranch), \"approval failed\");\n        eventContract.buyAllOutcomes(_funding);\n        funding = _funding;\n        stage = Stages.MarketFunded;\n        MarketFunding(funding);\n    }\n\n    /// @dev Allows market creator to close the markets by transferring all remaining outcome tokens to the creator\n    function close()\n        public\n        isCreator\n        atStage(Stages.MarketFunded)\n    {\n        uint8 outcomeCount = eventContract.getOutcomeCount();\n        for (uint8 i = 0; i < outcomeCount; i++)\n            require(eventContract.outcomeTokens(i).transfer(creator, eventContract.outcomeTokens(i).balanceOf(this)));\n        stage = Stages.MarketClosed;\n        MarketClosing();\n    }\n\n    /// @dev Allows market creator to withdraw fees generated by trades\n    /// @return Fee amount\n    function withdrawFees()\n        public\n        isCreator\n        returns (uint fees)\n    {\n        fees = eventContract.forkonomicToken().balanceOf(this, fundingBranch);\n        // Transfer fees\n        require(eventContract.forkonomicToken().transfer(creator, fees, fundingBranch));\n        FeeWithdrawal(fees);\n    }\n\n    /// @dev Allows to buy outcome tokens from market maker\n    /// @param outcomeTokenIndex Index of the outcome token to buy\n    /// @param outcomeTokenCount Amount of outcome tokens to buy\n    /// @param maxCost The maximum cost in collateral tokens to pay for outcome tokens\n    /// @return Cost in collateral tokens\n    function buy(uint8 outcomeTokenIndex, uint outcomeTokenCount, uint maxCost)\n        public\n        atStage(Stages.MarketFunded)\n        returns (uint cost)\n    {\n        // Calculate cost to buy outcome tokens\n        uint outcomeTokenCost = marketMaker.calcCost(this, outcomeTokenIndex, outcomeTokenCount);\n        // Calculate fees charged by market\n        uint fees = calcMarketFee(outcomeTokenCost);\n        cost = outcomeTokenCost.add(fees);\n        // Check cost doesn't exceed max cost\n        require(cost > 0 && cost <= maxCost);\n        // Transfer tokens to markets contract and buy all outcomes\n        require(   eventContract.forkonomicToken().transferFrom(msg.sender, this, cost, fundingBranch)\n                && eventContract.forkonomicToken().approve(eventContract, outcomeTokenCost, fundingBranch));\n        // Buy all outcomes\n        eventContract.buyAllOutcomes(outcomeTokenCost);\n        // Transfer outcome tokens to buyer\n        require(eventContract.outcomeTokens(outcomeTokenIndex).transfer(msg.sender, outcomeTokenCount));\n        // Add outcome token count to market maker net balance\n        require(int(outcomeTokenCount) >= 0);\n        netOutcomeTokensSold[outcomeTokenIndex] = netOutcomeTokensSold[outcomeTokenIndex].add(int(outcomeTokenCount));\n        OutcomeTokenPurchase(msg.sender, outcomeTokenIndex, outcomeTokenCount, outcomeTokenCost, fees);\n    }\n\n    /// @dev Allows to sell outcome tokens to market maker\n    /// @param outcomeTokenIndex Index of the outcome token to sell\n    /// @param outcomeTokenCount Amount of outcome tokens to sell\n    /// @param minProfit The minimum profit in collateral tokens to earn for outcome tokens\n    /// @return Profit in collateral tokens\n    function sell(uint8 outcomeTokenIndex, uint outcomeTokenCount, uint minProfit)\n        public\n        atStage(Stages.MarketFunded)\n        returns (uint profit)\n    {\n        // Calculate profit for selling outcome tokens\n        uint outcomeTokenProfit = marketMaker.calcProfit(this, outcomeTokenIndex, outcomeTokenCount);\n        // Calculate fee charged by market\n        uint fees = calcMarketFee(outcomeTokenProfit);\n        profit = outcomeTokenProfit.sub(fees);\n        // Check profit is not too low\n        require(profit > 0 && profit >= minProfit);\n        // Transfer outcome tokens to markets contract to sell all outcomes\n        require(eventContract.outcomeTokens(outcomeTokenIndex).transferFrom(msg.sender, this, outcomeTokenCount));\n        // Sell all outcomes\n        eventContract.sellAllOutcomes(outcomeTokenProfit);\n        // Transfer profit to seller\n        require(eventContract.forkonomicToken().transfer(msg.sender, profit, fundingBranch));\n        // Subtract outcome token count from market maker net balance\n        require(int(outcomeTokenCount) >= 0);\n        netOutcomeTokensSold[outcomeTokenIndex] = netOutcomeTokensSold[outcomeTokenIndex].sub(int(outcomeTokenCount));\n        OutcomeTokenSale(msg.sender, outcomeTokenIndex, outcomeTokenCount, outcomeTokenProfit, fees);\n    }\n\n    /// @dev Buys all outcomes, then sells all shares of selected outcome which were bought, keeping\n    ///      shares of all other outcome tokens.\n    /// @param outcomeTokenIndex Index of the outcome token to short sell\n    /// @param outcomeTokenCount Amount of outcome tokens to short sell\n    /// @param minProfit The minimum profit in collateral tokens to earn for short sold outcome tokens\n    /// @return Cost to short sell outcome in collateral tokens\n    function shortSell(uint8 outcomeTokenIndex, uint outcomeTokenCount, uint minProfit)\n        public\n        returns (uint cost)\n    {\n        // Buy all outcomes\n        require(   eventContract.forkonomicToken().transferFrom(msg.sender, this, outcomeTokenCount, fundingBranch)\n                && eventContract.forkonomicToken().approve(eventContract, outcomeTokenCount, fundingBranch));\n        eventContract.buyAllOutcomes(outcomeTokenCount);\n        // Short sell selected outcome\n        eventContract.outcomeTokens(outcomeTokenIndex).approve(this, outcomeTokenCount);\n        uint profit = this.sell(outcomeTokenIndex, outcomeTokenCount, minProfit);\n        cost = outcomeTokenCount - profit;\n        // Transfer outcome tokens to buyer\n        uint8 outcomeCount = eventContract.getOutcomeCount();\n        for (uint8 i = 0; i < outcomeCount; i++)\n            if (i != outcomeTokenIndex)\n                require(eventContract.outcomeTokens(i).transfer(msg.sender, outcomeTokenCount));\n        // Send change back to buyer\n        require(eventContract.forkonomicToken().transfer(msg.sender, profit, fundingBranch));\n        OutcomeTokenShortSale(msg.sender, outcomeTokenIndex, outcomeTokenCount, cost);\n    }\n\n    /// @dev Calculates fee to be paid to market maker\n    /// @param outcomeTokenCost Cost for buying outcome tokens\n    /// @return Fee for trade\n    function calcMarketFee(uint outcomeTokenCost)\n        public\n        constant\n        returns (uint)\n    {\n        return outcomeTokenCost * fee / FEE_RANGE;\n    }\n}\n",
  "sourcePath": "/home/josojo/reality/tokenized-events/contracts/Market/StandardMarket.sol",
  "ast": {
    "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Market/StandardMarket.sol",
    "exportedSymbols": {
      "StandardMarket": [
        1534
      ]
    },
    "id": 1535,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 922,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:4"
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "id": 923,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 6245,
        "src": "26:69:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "id": 924,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 5289,
        "src": "96:70:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/ScalarEvent.sol",
        "file": "../ScalarEvent.sol",
        "id": 925,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 2434,
        "src": "167:28:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Market/MarketMaker.sol",
        "file": "./MarketMaker.sol",
        "id": 926,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 921,
        "src": "196:27:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 927,
              "name": "Market",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 885,
              "src": "371:6:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Market_$885",
                "typeString": "contract Market"
              }
            },
            "id": 928,
            "nodeType": "InheritanceSpecifier",
            "src": "371:6:4"
          }
        ],
        "contractDependencies": [
          885
        ],
        "contractKind": "contract",
        "documentation": "@title Market factory contract - Allows to create market contracts\n @author Stefan George - <stefan@gnosis.pm>",
        "fullyImplemented": true,
        "id": 1534,
        "linearizedBaseContracts": [
          1534,
          885
        ],
        "name": "StandardMarket",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 930,
            "libraryName": {
              "contractScope": null,
              "id": 929,
              "name": "Math",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3972,
              "src": "389:4:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Math_$3972",
                "typeString": "library Math"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "383:17:4",
            "typeName": null
          },
          {
            "constant": true,
            "id": 933,
            "name": "FEE_RANGE",
            "nodeType": "VariableDeclaration",
            "scope": 1534,
            "src": "439:42:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 931,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "439:6:4",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31303030303030",
              "id": 932,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "474:7:4",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000_by_1",
                "typeString": "int_const 1000000"
              },
              "value": "1000000"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 935,
            "name": "fundingBranch",
            "nodeType": "VariableDeclaration",
            "scope": 1534,
            "src": "500:28:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 934,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "500:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 946,
              "nodeType": "Block",
              "src": "588:126:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 941,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 938,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8541,
                            "src": "652:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 939,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "652:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 940,
                          "name": "creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 865,
                          "src": "666:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "652:21:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73656e646572206e6f742063726561746f72",
                        "id": 942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "675:20:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aec3c24c57d77e3c64ed6a175391acb45630bbc1353239538c2691c1dbf7c5bd",
                          "typeString": "literal_string \"sender not creator\""
                        },
                        "value": "sender not creator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_aec3c24c57d77e3c64ed6a175391acb45630bbc1353239538c2691c1dbf7c5bd",
                          "typeString": "literal_string \"sender not creator\""
                        }
                      ],
                      "id": 937,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "644:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "644:52:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 944,
                  "nodeType": "ExpressionStatement",
                  "src": "644:52:4"
                },
                {
                  "id": 945,
                  "nodeType": "PlaceholderStatement",
                  "src": "706:1:4"
                }
              ]
            },
            "documentation": null,
            "id": 947,
            "name": "isCreator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 936,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "585:2:4"
            },
            "src": "567:147:4",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 959,
              "nodeType": "Block",
              "src": "752:123:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stages_$884",
                          "typeString": "enum Market.Stages"
                        },
                        "id": 954,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 952,
                          "name": "stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 880,
                          "src": "815:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stages_$884",
                            "typeString": "enum Market.Stages"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 953,
                          "name": "_stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 949,
                          "src": "824:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stages_$884",
                            "typeString": "enum Market.Stages"
                          }
                        },
                        "src": "815:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e636f7272656374206d61726b6574207374616765",
                        "id": 955,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "832:24:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1403a8e3b2d243fdb81728e6a7cc2b616aaae711434bec34aa66087f1f421b41",
                          "typeString": "literal_string \"incorrect market stage\""
                        },
                        "value": "incorrect market stage"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1403a8e3b2d243fdb81728e6a7cc2b616aaae711434bec34aa66087f1f421b41",
                          "typeString": "literal_string \"incorrect market stage\""
                        }
                      ],
                      "id": 951,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "807:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "807:50:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 957,
                  "nodeType": "ExpressionStatement",
                  "src": "807:50:4"
                },
                {
                  "id": 958,
                  "nodeType": "PlaceholderStatement",
                  "src": "867:1:4"
                }
              ]
            },
            "documentation": null,
            "id": 960,
            "name": "atStage",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 949,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 960,
                  "src": "737:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Stages_$884",
                    "typeString": "enum Market.Stages"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 948,
                    "name": "Stages",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 884,
                    "src": "737:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "736:15:4"
            },
            "src": "720:155:4",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1031,
              "nodeType": "Block",
              "src": "1276:466:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 986,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 976,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 973,
                                  "name": "_eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 964,
                                  "src": "1329:14:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                ],
                                "id": 972,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1321:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 974,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1321:23:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 975,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1348:1:4",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "1321:28:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 981,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 978,
                                  "name": "_marketMaker",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 966,
                                  "src": "1361:12:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_MarketMaker_$920",
                                    "typeString": "contract MarketMaker"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_MarketMaker_$920",
                                    "typeString": "contract MarketMaker"
                                  }
                                ],
                                "id": 977,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1353:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 979,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1353:21:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 980,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1378:1:4",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "1353:26:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1321:58:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          },
                          "id": 985,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 983,
                            "name": "_fee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 968,
                            "src": "1383:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 984,
                            "name": "FEE_RANGE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 933,
                            "src": "1390:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "src": "1383:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1321:78:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 971,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "1313:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1313:87:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 988,
                  "nodeType": "ExpressionStatement",
                  "src": "1313:87:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 989,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 865,
                      "src": "1410:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 990,
                      "name": "_creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 962,
                      "src": "1420:8:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1410:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 992,
                  "nodeType": "ExpressionStatement",
                  "src": "1410:18:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 993,
                      "name": "fundingBranch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 935,
                      "src": "1438:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 994,
                          "name": "_eventContract",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 964,
                          "src": "1454:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                            "typeString": "contract ScalarEvent"
                          }
                        },
                        "id": 995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "collateralBranch",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 45,
                        "src": "1454:31:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                          "typeString": "function () view external returns (bytes32)"
                        }
                      },
                      "id": 996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1454:33:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1438:49:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 998,
                  "nodeType": "ExpressionStatement",
                  "src": "1438:49:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 999,
                      "name": "createdAtBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 867,
                      "src": "1497:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1000,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8531,
                        "src": "1514:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 1001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1514:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1497:29:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1003,
                  "nodeType": "ExpressionStatement",
                  "src": "1497:29:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1004,
                      "name": "eventContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 869,
                      "src": "1536:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                        "typeString": "contract ScalarEvent"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1005,
                      "name": "_eventContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 964,
                      "src": "1552:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                        "typeString": "contract ScalarEvent"
                      }
                    },
                    "src": "1536:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                      "typeString": "contract ScalarEvent"
                    }
                  },
                  "id": 1007,
                  "nodeType": "ExpressionStatement",
                  "src": "1536:30:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1008,
                      "name": "netOutcomeTokensSold",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 878,
                      "src": "1576:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                        "typeString": "int256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1012,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "1609:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            "id": 1013,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getOutcomeCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2382,
                            "src": "1609:29:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                              "typeString": "function () view external returns (uint8)"
                            }
                          },
                          "id": 1014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1609:31:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 1011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1599:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_$",
                          "typeString": "function (uint256) pure returns (int256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1009,
                            "name": "int",
                            "nodeType": "ElementaryTypeName",
                            "src": "1603:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1010,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "1603:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        }
                      },
                      "id": 1015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1599:42:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_memory",
                        "typeString": "int256[] memory"
                      }
                    },
                    "src": "1576:65:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                      "typeString": "int256[] storage ref"
                    }
                  },
                  "id": 1017,
                  "nodeType": "ExpressionStatement",
                  "src": "1576:65:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1018,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 873,
                      "src": "1651:3:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1019,
                      "name": "_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 968,
                      "src": "1657:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "1651:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "id": 1021,
                  "nodeType": "ExpressionStatement",
                  "src": "1651:10:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1024,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1022,
                      "name": "marketMaker",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 871,
                      "src": "1671:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MarketMaker_$920",
                        "typeString": "contract MarketMaker"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1023,
                      "name": "_marketMaker",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 966,
                      "src": "1685:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MarketMaker_$920",
                        "typeString": "contract MarketMaker"
                      }
                    },
                    "src": "1671:26:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MarketMaker_$920",
                      "typeString": "contract MarketMaker"
                    }
                  },
                  "id": 1025,
                  "nodeType": "ExpressionStatement",
                  "src": "1671:26:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1026,
                      "name": "stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 880,
                      "src": "1707:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1027,
                        "name": "Stages",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 884,
                        "src": "1715:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                          "typeString": "type(enum Market.Stages)"
                        }
                      },
                      "id": 1028,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "MarketCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1715:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "src": "1707:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "id": 1030,
                  "nodeType": "ExpressionStatement",
                  "src": "1707:28:4"
                }
              ]
            },
            "documentation": "@dev Constructor validates and sets market properties\n @param _creator Market creator\n @param _eventContract Event contract\n @param _marketMaker Market maker contract\n @param _fee Market fee",
            "id": 1032,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "StandardMarket",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 962,
                  "name": "_creator",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1172:16:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 961,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1172:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 964,
                  "name": "_eventContract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1190:26:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                    "typeString": "contract ScalarEvent"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 963,
                    "name": "ScalarEvent",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2433,
                    "src": "1190:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                      "typeString": "contract ScalarEvent"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 966,
                  "name": "_marketMaker",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1218:24:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MarketMaker_$920",
                    "typeString": "contract MarketMaker"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 965,
                    "name": "MarketMaker",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 920,
                    "src": "1218:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MarketMaker_$920",
                      "typeString": "contract MarketMaker"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 968,
                  "name": "_fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1244:11:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 967,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1244:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1171:85:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 970,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1276:0:4"
            },
            "scope": 1534,
            "src": "1148:594:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1088,
              "nodeType": "Block",
              "src": "1989:499:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1048,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "2152:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1049,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2152:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1050,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8600,
                            "src": "2164:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1051,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1034,
                            "src": "2170:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1052,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "2180:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1044,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "2107:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1045,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "2107:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2107:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5840,
                          "src": "2107:44:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2107:87:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e7366657246726f6d206661696c6564",
                        "id": 1054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2196:21:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3",
                          "typeString": "literal_string \"transferFrom failed\""
                        },
                        "value": "transferFrom failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3",
                          "typeString": "literal_string \"transferFrom failed\""
                        }
                      ],
                      "id": 1043,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "2098:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2098:120:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1056,
                  "nodeType": "ExpressionStatement",
                  "src": "2098:120:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1062,
                            "name": "eventContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 869,
                            "src": "2277:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                              "typeString": "contract ScalarEvent"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1063,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1034,
                            "src": "2292:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1064,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "2302:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                              "typeString": "contract ScalarEvent"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1058,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "2237:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1059,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "2237:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1060,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2237:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1061,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "approve",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5450,
                          "src": "2237:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2237:79:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "617070726f76616c206661696c6564",
                        "id": 1066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2318:17:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dc5bf56f7778a980bf68a168744f15fc09ca522217760da56d44aee44af65dd8",
                          "typeString": "literal_string \"approval failed\""
                        },
                        "value": "approval failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dc5bf56f7778a980bf68a168744f15fc09ca522217760da56d44aee44af65dd8",
                          "typeString": "literal_string \"approval failed\""
                        }
                      ],
                      "id": 1057,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "2228:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2228:108:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1068,
                  "nodeType": "ExpressionStatement",
                  "src": "2228:108:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1072,
                        "name": "_funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1034,
                        "src": "2375:8:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1069,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "2346:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1071,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "buyAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2274,
                      "src": "2346:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2346:38:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1074,
                  "nodeType": "ExpressionStatement",
                  "src": "2346:38:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1077,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1075,
                      "name": "funding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 875,
                      "src": "2394:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1076,
                      "name": "_funding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1034,
                      "src": "2404:8:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2394:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1078,
                  "nodeType": "ExpressionStatement",
                  "src": "2394:18:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1079,
                      "name": "stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 880,
                      "src": "2422:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1080,
                        "name": "Stages",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 884,
                        "src": "2430:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                          "typeString": "type(enum Market.Stages)"
                        }
                      },
                      "id": 1081,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "MarketFunded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2430:19:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "src": "2422:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "id": 1083,
                  "nodeType": "ExpressionStatement",
                  "src": "2422:27:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1085,
                        "name": "funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 875,
                        "src": "2473:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1084,
                      "name": "MarketFunding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 823,
                      "src": "2459:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 1086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2459:22:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1087,
                  "nodeType": "ExpressionStatement",
                  "src": "2459:22:4"
                }
              ]
            },
            "documentation": "@dev Allows to fund the market with collateral tokens converting them into outcome tokens\n @param _funding Funding amount",
            "id": 1089,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1037,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1036,
                  "name": "isCreator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 947,
                  "src": "1937:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1937:9:4"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1039,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "1963:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketCreated",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1963:20:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1041,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1038,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "1955:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1955:29:4"
              }
            ],
            "name": "fund",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1034,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 1089,
                  "src": "1899:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1033,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1899:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1898:15:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1042,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1989:0:4"
            },
            "scope": 1534,
            "src": "1885:603:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1140,
              "nodeType": "Block",
              "src": "2701:299:4",
              "statements": [
                {
                  "assignments": [
                    1099
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1099,
                      "name": "outcomeCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1141,
                      "src": "2711:18:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 1098,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "2711:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1103,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1100,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "2732:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getOutcomeCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2382,
                      "src": "2732:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                        "typeString": "function () view external returns (uint8)"
                      }
                    },
                    "id": 1102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2732:31:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2711:52:4"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1120,
                              "name": "creator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 865,
                              "src": "2874:7:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1126,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8600,
                                  "src": "2924:4:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                    "typeString": "contract StandardMarket"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                    "typeString": "contract StandardMarket"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1123,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1105,
                                      "src": "2911:1:4",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1121,
                                      "name": "eventContract",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 869,
                                      "src": "2883:13:4",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                        "typeString": "contract ScalarEvent"
                                      }
                                    },
                                    "id": 1122,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "outcomeTokens",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 39,
                                    "src": "2883:27:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                      "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                                    }
                                  },
                                  "id": 1124,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2883:30:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                                    "typeString": "contract OutcomeToken"
                                  }
                                },
                                "id": 1125,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "balanceOf",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2643,
                                "src": "2883:40:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                  "typeString": "function (address) view external returns (uint256)"
                                }
                              },
                              "id": 1127,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2883:46:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1117,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1105,
                                  "src": "2862:1:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1115,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "2834:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1116,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "outcomeTokens",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 39,
                                "src": "2834:27:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                  "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                                }
                              },
                              "id": 1118,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2834:30:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                                "typeString": "contract OutcomeToken"
                              }
                            },
                            "id": 1119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2517,
                            "src": "2834:39:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,uint256) external returns (bool)"
                            }
                          },
                          "id": 1128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2834:96:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 1114,
                        "name": "require",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          8544,
                          8545
                        ],
                        "referencedDeclaration": 8544,
                        "src": "2826:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                          "typeString": "function (bool) pure"
                        }
                      },
                      "id": 1129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2826:105:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 1130,
                    "nodeType": "ExpressionStatement",
                    "src": "2826:105:4"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 1110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1108,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1105,
                      "src": "2791:1:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1109,
                      "name": "outcomeCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1099,
                      "src": "2795:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "2791:16:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1131,
                  "initializationExpression": {
                    "assignments": [
                      1105
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1105,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1141,
                        "src": "2778:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 1104,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2778:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1107,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1106,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2788:1:4",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2778:11:4"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1112,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2809:3:4",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1111,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1105,
                        "src": "2809:1:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 1113,
                    "nodeType": "ExpressionStatement",
                    "src": "2809:3:4"
                  },
                  "nodeType": "ForStatement",
                  "src": "2773:158:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1132,
                      "name": "stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 880,
                      "src": "2941:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1133,
                        "name": "Stages",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 884,
                        "src": "2949:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                          "typeString": "type(enum Market.Stages)"
                        }
                      },
                      "id": 1134,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "MarketClosed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2949:19:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "src": "2941:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "id": 1136,
                  "nodeType": "ExpressionStatement",
                  "src": "2941:27:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1137,
                      "name": "MarketClosing",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 825,
                      "src": "2978:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2978:15:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1139,
                  "nodeType": "ExpressionStatement",
                  "src": "2978:15:4"
                }
              ]
            },
            "documentation": "@dev Allows market creator to close the markets by transferring all remaining outcome tokens to the creator",
            "id": 1141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1092,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1091,
                  "name": "isCreator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 947,
                  "src": "2650:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2650:9:4"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1094,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "2676:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketFunded",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "2676:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1096,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1093,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "2668:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2668:28:4"
              }
            ],
            "name": "close",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1090,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2624:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1097,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2701:0:4"
            },
            "scope": 1534,
            "src": "2610:390:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1173,
              "nodeType": "Block",
              "src": "3194:229:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1148,
                      "name": "fees",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1146,
                      "src": "3204:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1153,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8600,
                          "src": "3253:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_StandardMarket_$1534",
                            "typeString": "contract StandardMarket"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1154,
                          "name": "fundingBranch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 935,
                          "src": "3259:13:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_StandardMarket_$1534",
                            "typeString": "contract StandardMarket"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1149,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "3211:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            "id": 1150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "forkonomicToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41,
                            "src": "3211:29:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                              "typeString": "function () view external returns (contract ForkonomicToken)"
                            }
                          },
                          "id": 1151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3211:31:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                            "typeString": "contract ForkonomicToken"
                          }
                        },
                        "id": 1152,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balanceOf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5589,
                        "src": "3211:41:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (address,bytes32) view external returns (uint256)"
                        }
                      },
                      "id": 1155,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3211:62:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3204:69:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1157,
                  "nodeType": "ExpressionStatement",
                  "src": "3204:69:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1163,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 865,
                            "src": "3357:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1164,
                            "name": "fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1146,
                            "src": "3366:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1165,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "3372:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1159,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "3316:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1160,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "3316:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1161,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3316:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1162,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5705,
                          "src": "3316:40:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3316:70:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1158,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "3308:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3308:79:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1168,
                  "nodeType": "ExpressionStatement",
                  "src": "3308:79:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1170,
                        "name": "fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1146,
                        "src": "3411:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1169,
                      "name": "FeeWithdrawal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 829,
                      "src": "3397:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 1171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3397:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1172,
                  "nodeType": "ExpressionStatement",
                  "src": "3397:19:4"
                }
              ]
            },
            "documentation": "@dev Allows market creator to withdraw fees generated by trades\n @return Fee amount",
            "id": 1174,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1144,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1143,
                  "name": "isCreator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 947,
                  "src": "3152:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3152:9:4"
              }
            ],
            "name": "withdrawFees",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3126:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1146,
                  "name": "fees",
                  "nodeType": "VariableDeclaration",
                  "scope": 1174,
                  "src": "3179:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1145,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3179:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3178:11:4"
            },
            "scope": 1534,
            "src": "3105:318:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1291,
              "nodeType": "Block",
              "src": "3910:1230:4",
              "statements": [
                {
                  "assignments": [
                    1190
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1190,
                      "name": "outcomeTokenCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 1292,
                      "src": "3968:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1189,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3968:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1197,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1193,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "4013:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1194,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1176,
                        "src": "4019:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1195,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1178,
                        "src": "4038:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1191,
                        "name": "marketMaker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "3992:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MarketMaker_$920",
                          "typeString": "contract MarketMaker"
                        }
                      },
                      "id": 1192,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "calcCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 899,
                      "src": "3992:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_contract$_Market_$885_$_t_uint8_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (contract Market,uint8,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 1196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3992:64:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3968:88:4"
                },
                {
                  "assignments": [
                    1199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1199,
                      "name": "fees",
                      "nodeType": "VariableDeclaration",
                      "scope": 1292,
                      "src": "4110:9:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1198,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4110:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1203,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1201,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1190,
                        "src": "4136:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1200,
                      "name": "calcMarketFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1533,
                      "src": "4122:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view returns (uint256)"
                      }
                    },
                    "id": 1202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4122:31:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4110:43:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1204,
                      "name": "cost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1187,
                      "src": "4163:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1207,
                          "name": "fees",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1199,
                          "src": "4191:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1205,
                          "name": "outcomeTokenCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1190,
                          "src": "4170:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1206,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3778,
                        "src": "4170:20:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 1208,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4170:26:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4163:33:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1210,
                  "nodeType": "ExpressionStatement",
                  "src": "4163:33:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1212,
                            "name": "cost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1187,
                            "src": "4260:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1213,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4267:1:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4260:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1217,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1215,
                            "name": "cost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1187,
                            "src": "4272:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1216,
                            "name": "maxCost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1180,
                            "src": "4280:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4272:15:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4260:27:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1211,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4252:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4252:36:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1220,
                  "nodeType": "ExpressionStatement",
                  "src": "4252:36:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1226,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8541,
                                "src": "4422:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1227,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4422:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1228,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8600,
                              "src": "4434:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1229,
                              "name": "cost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1187,
                              "src": "4440:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1230,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "4446:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1222,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "4377:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1223,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "4377:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1224,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4377:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1225,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transferFrom",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5840,
                            "src": "4377:44:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4377:83:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1236,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "4520:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1237,
                              "name": "outcomeTokenCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1190,
                              "src": "4535:16:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1238,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "4553:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1232,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "4480:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1233,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "4480:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1234,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4480:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1235,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "approve",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5450,
                            "src": "4480:39:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1239,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4480:87:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4377:190:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1221,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4366:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4366:202:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1242,
                  "nodeType": "ExpressionStatement",
                  "src": "4366:202:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1246,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1190,
                        "src": "4635:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1243,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "4606:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "buyAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2274,
                      "src": "4606:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4606:46:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1248,
                  "nodeType": "ExpressionStatement",
                  "src": "4606:46:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1255,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "4770:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4770:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1257,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1178,
                            "src": "4782:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1252,
                                "name": "outcomeTokenIndex",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1176,
                                "src": "4742:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1250,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "4714:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1251,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "outcomeTokens",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 39,
                              "src": "4714:27:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                              }
                            },
                            "id": 1253,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4714:46:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 1254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2517,
                          "src": "4714:55:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) external returns (bool)"
                          }
                        },
                        "id": 1258,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4714:86:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1249,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4706:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1259,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4706:95:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1260,
                  "nodeType": "ExpressionStatement",
                  "src": "4706:95:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 1266,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1263,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1178,
                              "src": "4886:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1262,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4882:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1264,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4882:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1265,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4908:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4882:27:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1261,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4874:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1267,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4874:36:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1268,
                  "nodeType": "ExpressionStatement",
                  "src": "4874:36:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1269,
                        "name": "netOutcomeTokensSold",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 878,
                        "src": "4920:20:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                          "typeString": "int256[] storage ref"
                        }
                      },
                      "id": 1271,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1270,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1176,
                        "src": "4941:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4920:39:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1277,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1178,
                              "src": "5010:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1276,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5006:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1278,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5006:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1272,
                            "name": "netOutcomeTokensSold",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 878,
                            "src": "4962:20:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                              "typeString": "int256[] storage ref"
                            }
                          },
                          "id": 1274,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1273,
                            "name": "outcomeTokenIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1176,
                            "src": "4983:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4962:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3929,
                        "src": "4962:43:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                          "typeString": "function (int256,int256) view returns (int256)"
                        }
                      },
                      "id": 1279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4962:67:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "4920:109:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1281,
                  "nodeType": "ExpressionStatement",
                  "src": "4920:109:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1283,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8541,
                          "src": "5060:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1284,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5060:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1285,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1176,
                        "src": "5072:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1286,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1178,
                        "src": "5091:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1287,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1190,
                        "src": "5110:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1288,
                        "name": "fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1199,
                        "src": "5128:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1282,
                      "name": "OutcomeTokenPurchase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 841,
                      "src": "5039:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint8,uint256,uint256,uint256)"
                      }
                    },
                    "id": 1289,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5039:94:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1290,
                  "nodeType": "ExpressionStatement",
                  "src": "5039:94:4"
                }
              ]
            },
            "documentation": "@dev Allows to buy outcome tokens from market maker\n @param outcomeTokenIndex Index of the outcome token to buy\n @param outcomeTokenCount Amount of outcome tokens to buy\n @param maxCost The maximum cost in collateral tokens to pay for outcome tokens\n @return Cost in collateral tokens",
            "id": 1292,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1183,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "3857:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketFunded",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "3857:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1185,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1182,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "3849:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3849:28:4"
              }
            ],
            "name": "buy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1176,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3763:23:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1175,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3763:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1178,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3788:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1177,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3788:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1180,
                  "name": "maxCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3812:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1179,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3812:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3762:63:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1188,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1187,
                  "name": "cost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3895:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1186,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3895:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3894:11:4"
            },
            "scope": 1534,
            "src": "3750:1390:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1400,
              "nodeType": "Block",
              "src": "5640:1147:4",
              "statements": [
                {
                  "assignments": [
                    1308
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1308,
                      "name": "outcomeTokenProfit",
                      "nodeType": "VariableDeclaration",
                      "scope": 1401,
                      "src": "5705:23:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1307,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5705:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1315,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1311,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "5754:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1312,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "5760:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1313,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1296,
                        "src": "5779:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1309,
                        "name": "marketMaker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "5731:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MarketMaker_$920",
                          "typeString": "contract MarketMaker"
                        }
                      },
                      "id": 1310,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "calcProfit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 910,
                      "src": "5731:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_contract$_Market_$885_$_t_uint8_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (contract Market,uint8,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 1314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5731:66:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5705:92:4"
                },
                {
                  "assignments": [
                    1317
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1317,
                      "name": "fees",
                      "nodeType": "VariableDeclaration",
                      "scope": 1401,
                      "src": "5850:9:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1316,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5850:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1321,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1319,
                        "name": "outcomeTokenProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1308,
                        "src": "5876:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1318,
                      "name": "calcMarketFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1533,
                      "src": "5862:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view returns (uint256)"
                      }
                    },
                    "id": 1320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5862:33:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5850:45:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1322,
                      "name": "profit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1305,
                      "src": "5905:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1325,
                          "name": "fees",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1317,
                          "src": "5937:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1323,
                          "name": "outcomeTokenProfit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1308,
                          "src": "5914:18:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1324,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3799,
                        "src": "5914:22:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 1326,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5914:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5905:37:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1328,
                  "nodeType": "ExpressionStatement",
                  "src": "5905:37:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1330,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1305,
                            "src": "5999:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1331,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6008:1:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5999:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1335,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1333,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1305,
                            "src": "6013:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1334,
                            "name": "minProfit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1298,
                            "src": "6023:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6013:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5999:33:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1329,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "5991:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5991:42:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1338,
                  "nodeType": "ExpressionStatement",
                  "src": "5991:42:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1345,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "6187:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1346,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6187:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1347,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8600,
                            "src": "6199:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1348,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1296,
                            "src": "6205:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1342,
                                "name": "outcomeTokenIndex",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1294,
                                "src": "6155:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1340,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "6127:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1341,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "outcomeTokens",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 39,
                              "src": "6127:27:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                              }
                            },
                            "id": 1343,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6127:46:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 1344,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2587,
                          "src": "6127:59:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256) external returns (bool)"
                          }
                        },
                        "id": 1349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6127:96:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1339,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "6119:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6119:105:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1351,
                  "nodeType": "ExpressionStatement",
                  "src": "6119:105:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1355,
                        "name": "outcomeTokenProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1308,
                        "src": "6293:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1352,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "6263:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sellAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2318,
                      "src": "6263:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6263:49:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1357,
                  "nodeType": "ExpressionStatement",
                  "src": "6263:49:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1363,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "6408:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6408:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1365,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1305,
                            "src": "6420:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1366,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "6428:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1359,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "6367:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1360,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "6367:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1361,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6367:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5705,
                          "src": "6367:40:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6367:75:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1358,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "6359:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1368,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6359:84:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1369,
                  "nodeType": "ExpressionStatement",
                  "src": "6359:84:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 1375,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1372,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1296,
                              "src": "6535:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1371,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6531:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1373,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6531:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6557:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6531:27:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1370,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "6523:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6523:36:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1377,
                  "nodeType": "ExpressionStatement",
                  "src": "6523:36:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1389,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1378,
                        "name": "netOutcomeTokensSold",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 878,
                        "src": "6569:20:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                          "typeString": "int256[] storage ref"
                        }
                      },
                      "id": 1380,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1379,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "6590:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6569:39:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1386,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1296,
                              "src": "6659:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1385,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6655:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1387,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6655:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1381,
                            "name": "netOutcomeTokensSold",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 878,
                            "src": "6611:20:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                              "typeString": "int256[] storage ref"
                            }
                          },
                          "id": 1383,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1382,
                            "name": "outcomeTokenIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1294,
                            "src": "6632:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6611:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3950,
                        "src": "6611:43:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                          "typeString": "function (int256,int256) view returns (int256)"
                        }
                      },
                      "id": 1388,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6611:67:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "6569:109:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1390,
                  "nodeType": "ExpressionStatement",
                  "src": "6569:109:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1392,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8541,
                          "src": "6705:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6705:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1394,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "6717:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1395,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1296,
                        "src": "6736:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1396,
                        "name": "outcomeTokenProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1308,
                        "src": "6755:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1397,
                        "name": "fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1317,
                        "src": "6775:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1391,
                      "name": "OutcomeTokenSale",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 853,
                      "src": "6688:16:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint8,uint256,uint256,uint256)"
                      }
                    },
                    "id": 1398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6688:92:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1399,
                  "nodeType": "ExpressionStatement",
                  "src": "6688:92:4"
                }
              ]
            },
            "documentation": "@dev Allows to sell outcome tokens to market maker\n @param outcomeTokenIndex Index of the outcome token to sell\n @param outcomeTokenCount Amount of outcome tokens to sell\n @param minProfit The minimum profit in collateral tokens to earn for outcome tokens\n @return Profit in collateral tokens",
            "id": 1401,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1301,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "5585:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketFunded",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "5585:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1303,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1300,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "5577:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5577:28:4"
              }
            ],
            "name": "sell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1294,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5489:23:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1293,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5489:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1296,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5514:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1295,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5514:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1298,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5538:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1297,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5538:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5488:65:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1305,
                  "name": "profit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5623:11:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1304,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5623:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5622:13:4"
            },
            "scope": 1534,
            "src": "5475:1312:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1518,
              "nodeType": "Block",
              "src": "7387:1081:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1431,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1417,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8541,
                                "src": "7481:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1418,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7481:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1419,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8600,
                              "src": "7493:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1420,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1405,
                              "src": "7499:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1421,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "7518:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1413,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "7436:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1414,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "7436:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1415,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7436:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transferFrom",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5840,
                            "src": "7436:44:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7436:96:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1427,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "7592:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1428,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1405,
                              "src": "7607:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1429,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "7626:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1423,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "7552:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1424,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "7552:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1425,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7552:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1426,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "approve",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5450,
                            "src": "7552:39:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7552:88:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7436:204:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1412,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "7425:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7425:216:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1433,
                  "nodeType": "ExpressionStatement",
                  "src": "7425:216:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1437,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7680:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1434,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "7651:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1436,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "buyAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2274,
                      "src": "7651:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7651:47:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1439,
                  "nodeType": "ExpressionStatement",
                  "src": "7651:47:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1446,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "7802:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1447,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7808:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1443,
                            "name": "outcomeTokenIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1403,
                            "src": "7775:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1440,
                            "name": "eventContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 869,
                            "src": "7747:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                              "typeString": "contract ScalarEvent"
                            }
                          },
                          "id": 1442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "outcomeTokens",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 39,
                          "src": "7747:27:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                            "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                          }
                        },
                        "id": 1444,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7747:46:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 1445,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "approve",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2615,
                      "src": "7747:54:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 1448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7747:79:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1449,
                  "nodeType": "ExpressionStatement",
                  "src": "7747:79:4"
                },
                {
                  "assignments": [
                    1451
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1451,
                      "name": "profit",
                      "nodeType": "VariableDeclaration",
                      "scope": 1519,
                      "src": "7836:11:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1450,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7836:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1458,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1454,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1403,
                        "src": "7860:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1455,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7879:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1456,
                        "name": "minProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1407,
                        "src": "7898:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1452,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "7850:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      "id": 1453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sell",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1401,
                      "src": "7850:9:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint8,uint256,uint256) external returns (uint256)"
                      }
                    },
                    "id": 1457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7850:58:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7836:72:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1459,
                      "name": "cost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1410,
                      "src": "7918:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1460,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7925:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1461,
                        "name": "profit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1451,
                        "src": "7945:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "7925:26:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7918:33:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "7918:33:4"
                },
                {
                  "assignments": [
                    1466
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1466,
                      "name": "outcomeCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1519,
                      "src": "8005:18:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 1465,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "8005:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1470,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1467,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "8026:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1468,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getOutcomeCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2382,
                      "src": "8026:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                        "typeString": "function () view external returns (uint8)"
                      }
                    },
                    "id": 1469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8026:31:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8005:52:4"
                },
                {
                  "body": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 1483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1481,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1472,
                        "src": "8124:1:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1482,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1403,
                        "src": "8129:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "8124:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 1496,
                    "nodeType": "IfStatement",
                    "src": "8120:123:4",
                    "trueBody": {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1490,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8541,
                                  "src": "8212:3:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 1491,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "8212:10:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1492,
                                "name": "outcomeTokenCount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1405,
                                "src": "8224:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1487,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1472,
                                    "src": "8200:1:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1485,
                                    "name": "eventContract",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 869,
                                    "src": "8172:13:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                      "typeString": "contract ScalarEvent"
                                    }
                                  },
                                  "id": 1486,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "outcomeTokens",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 39,
                                  "src": "8172:27:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                    "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                                  }
                                },
                                "id": 1488,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8172:30:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                                  "typeString": "contract OutcomeToken"
                                }
                              },
                              "id": 1489,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2517,
                              "src": "8172:39:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                "typeString": "function (address,uint256) external returns (bool)"
                              }
                            },
                            "id": 1493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8172:70:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 1484,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            8544,
                            8545
                          ],
                          "referencedDeclaration": 8544,
                          "src": "8164:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                            "typeString": "function (bool) pure"
                          }
                        },
                        "id": 1494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8164:79:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1495,
                      "nodeType": "ExpressionStatement",
                      "src": "8164:79:4"
                    }
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 1477,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1475,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1472,
                      "src": "8085:1:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1476,
                      "name": "outcomeCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1466,
                      "src": "8089:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "8085:16:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1497,
                  "initializationExpression": {
                    "assignments": [
                      1472
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1472,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1519,
                        "src": "8072:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 1471,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "8072:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1474,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8082:1:4",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8072:11:4"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8103:3:4",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1478,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1472,
                        "src": "8103:1:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 1480,
                    "nodeType": "ExpressionStatement",
                    "src": "8103:3:4"
                  },
                  "nodeType": "ForStatement",
                  "src": "8067:176:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1503,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "8339:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1504,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "8339:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1505,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1451,
                            "src": "8351:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1506,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "8359:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1499,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "8298:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1500,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "8298:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1501,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8298:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1502,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5705,
                          "src": "8298:40:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1507,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8298:75:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1498,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "8290:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8290:84:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1509,
                  "nodeType": "ExpressionStatement",
                  "src": "8290:84:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1511,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8541,
                          "src": "8406:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1512,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8406:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1513,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1403,
                        "src": "8418:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1514,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "8437:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1515,
                        "name": "cost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1410,
                        "src": "8456:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1510,
                      "name": "OutcomeTokenShortSale",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 863,
                      "src": "8384:21:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint8,uint256,uint256)"
                      }
                    },
                    "id": 1516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8384:77:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1517,
                  "nodeType": "ExpressionStatement",
                  "src": "8384:77:4"
                }
              ]
            },
            "documentation": "@dev Buys all outcomes, then sells all shares of selected outcome which were bought, keeping\n      shares of all other outcome tokens.\n @param outcomeTokenIndex Index of the outcome token to short sell\n @param outcomeTokenCount Amount of outcome tokens to short sell\n @param minProfit The minimum profit in collateral tokens to earn for short sold outcome tokens\n @return Cost to short sell outcome in collateral tokens",
            "id": 1519,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "shortSell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1403,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7275:23:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1402,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7275:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1405,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7300:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1404,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7300:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1407,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7324:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1406,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7324:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7274:65:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1410,
                  "name": "cost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7372:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1409,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7372:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7371:11:4"
            },
            "scope": 1534,
            "src": "7256:1212:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1532,
              "nodeType": "Block",
              "src": "8727:58:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1528,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1526,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1521,
                        "src": "8744:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1527,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 873,
                        "src": "8763:3:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "src": "8744:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1529,
                      "name": "FEE_RANGE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 933,
                      "src": "8769:9:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "8744:34:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1525,
                  "id": 1531,
                  "nodeType": "Return",
                  "src": "8737:41:4"
                }
              ]
            },
            "documentation": "@dev Calculates fee to be paid to market maker\n @param outcomeTokenCost Cost for buying outcome tokens\n @return Fee for trade",
            "id": 1533,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "calcMarketFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1521,
                  "name": "outcomeTokenCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1533,
                  "src": "8645:21:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1520,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8645:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8644:23:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1525,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1524,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1533,
                  "src": "8717:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1523,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8717:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8716:6:4"
            },
            "scope": 1534,
            "src": "8622:163:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1535,
        "src": "344:8443:4"
      }
    ],
    "src": "0:8788:4"
  },
  "legacyAST": {
    "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Market/StandardMarket.sol",
    "exportedSymbols": {
      "StandardMarket": [
        1534
      ]
    },
    "id": 1535,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 922,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:4"
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol",
        "id": 923,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 6245,
        "src": "26:69:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "file": "@josojo/forkonomics-contracts/contracts/ForkonomicSystem.sol",
        "id": 924,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 5289,
        "src": "96:70:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/ScalarEvent.sol",
        "file": "../ScalarEvent.sol",
        "id": 925,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 2434,
        "src": "167:28:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/josojo/reality/tokenized-events/contracts/Market/MarketMaker.sol",
        "file": "./MarketMaker.sol",
        "id": 926,
        "nodeType": "ImportDirective",
        "scope": 1535,
        "sourceUnit": 921,
        "src": "196:27:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 927,
              "name": "Market",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 885,
              "src": "371:6:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Market_$885",
                "typeString": "contract Market"
              }
            },
            "id": 928,
            "nodeType": "InheritanceSpecifier",
            "src": "371:6:4"
          }
        ],
        "contractDependencies": [
          885
        ],
        "contractKind": "contract",
        "documentation": "@title Market factory contract - Allows to create market contracts\n @author Stefan George - <stefan@gnosis.pm>",
        "fullyImplemented": true,
        "id": 1534,
        "linearizedBaseContracts": [
          1534,
          885
        ],
        "name": "StandardMarket",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 930,
            "libraryName": {
              "contractScope": null,
              "id": 929,
              "name": "Math",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3972,
              "src": "389:4:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Math_$3972",
                "typeString": "library Math"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "383:17:4",
            "typeName": null
          },
          {
            "constant": true,
            "id": 933,
            "name": "FEE_RANGE",
            "nodeType": "VariableDeclaration",
            "scope": 1534,
            "src": "439:42:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 931,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "439:6:4",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31303030303030",
              "id": 932,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "474:7:4",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000_by_1",
                "typeString": "int_const 1000000"
              },
              "value": "1000000"
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 935,
            "name": "fundingBranch",
            "nodeType": "VariableDeclaration",
            "scope": 1534,
            "src": "500:28:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 934,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "500:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 946,
              "nodeType": "Block",
              "src": "588:126:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 941,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 938,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8541,
                            "src": "652:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 939,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "652:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 940,
                          "name": "creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 865,
                          "src": "666:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "652:21:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73656e646572206e6f742063726561746f72",
                        "id": 942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "675:20:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aec3c24c57d77e3c64ed6a175391acb45630bbc1353239538c2691c1dbf7c5bd",
                          "typeString": "literal_string \"sender not creator\""
                        },
                        "value": "sender not creator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_aec3c24c57d77e3c64ed6a175391acb45630bbc1353239538c2691c1dbf7c5bd",
                          "typeString": "literal_string \"sender not creator\""
                        }
                      ],
                      "id": 937,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "644:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "644:52:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 944,
                  "nodeType": "ExpressionStatement",
                  "src": "644:52:4"
                },
                {
                  "id": 945,
                  "nodeType": "PlaceholderStatement",
                  "src": "706:1:4"
                }
              ]
            },
            "documentation": null,
            "id": 947,
            "name": "isCreator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 936,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "585:2:4"
            },
            "src": "567:147:4",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 959,
              "nodeType": "Block",
              "src": "752:123:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stages_$884",
                          "typeString": "enum Market.Stages"
                        },
                        "id": 954,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 952,
                          "name": "stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 880,
                          "src": "815:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stages_$884",
                            "typeString": "enum Market.Stages"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 953,
                          "name": "_stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 949,
                          "src": "824:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stages_$884",
                            "typeString": "enum Market.Stages"
                          }
                        },
                        "src": "815:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e636f7272656374206d61726b6574207374616765",
                        "id": 955,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "832:24:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1403a8e3b2d243fdb81728e6a7cc2b616aaae711434bec34aa66087f1f421b41",
                          "typeString": "literal_string \"incorrect market stage\""
                        },
                        "value": "incorrect market stage"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1403a8e3b2d243fdb81728e6a7cc2b616aaae711434bec34aa66087f1f421b41",
                          "typeString": "literal_string \"incorrect market stage\""
                        }
                      ],
                      "id": 951,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "807:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "807:50:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 957,
                  "nodeType": "ExpressionStatement",
                  "src": "807:50:4"
                },
                {
                  "id": 958,
                  "nodeType": "PlaceholderStatement",
                  "src": "867:1:4"
                }
              ]
            },
            "documentation": null,
            "id": 960,
            "name": "atStage",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 949,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 960,
                  "src": "737:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Stages_$884",
                    "typeString": "enum Market.Stages"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 948,
                    "name": "Stages",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 884,
                    "src": "737:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "736:15:4"
            },
            "src": "720:155:4",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1031,
              "nodeType": "Block",
              "src": "1276:466:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 986,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 976,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 973,
                                  "name": "_eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 964,
                                  "src": "1329:14:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                ],
                                "id": 972,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1321:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 974,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1321:23:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 975,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1348:1:4",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "1321:28:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 981,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 978,
                                  "name": "_marketMaker",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 966,
                                  "src": "1361:12:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_MarketMaker_$920",
                                    "typeString": "contract MarketMaker"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_MarketMaker_$920",
                                    "typeString": "contract MarketMaker"
                                  }
                                ],
                                "id": 977,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1353:7:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 979,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1353:21:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 980,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1378:1:4",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "1353:26:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1321:58:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          },
                          "id": 985,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 983,
                            "name": "_fee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 968,
                            "src": "1383:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 984,
                            "name": "FEE_RANGE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 933,
                            "src": "1390:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "src": "1383:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1321:78:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 971,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "1313:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1313:87:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 988,
                  "nodeType": "ExpressionStatement",
                  "src": "1313:87:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 989,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 865,
                      "src": "1410:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 990,
                      "name": "_creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 962,
                      "src": "1420:8:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1410:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 992,
                  "nodeType": "ExpressionStatement",
                  "src": "1410:18:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 993,
                      "name": "fundingBranch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 935,
                      "src": "1438:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 994,
                          "name": "_eventContract",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 964,
                          "src": "1454:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                            "typeString": "contract ScalarEvent"
                          }
                        },
                        "id": 995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "collateralBranch",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 45,
                        "src": "1454:31:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                          "typeString": "function () view external returns (bytes32)"
                        }
                      },
                      "id": 996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1454:33:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1438:49:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 998,
                  "nodeType": "ExpressionStatement",
                  "src": "1438:49:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 999,
                      "name": "createdAtBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 867,
                      "src": "1497:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1000,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8531,
                        "src": "1514:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 1001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1514:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1497:29:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1003,
                  "nodeType": "ExpressionStatement",
                  "src": "1497:29:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1004,
                      "name": "eventContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 869,
                      "src": "1536:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                        "typeString": "contract ScalarEvent"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1005,
                      "name": "_eventContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 964,
                      "src": "1552:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                        "typeString": "contract ScalarEvent"
                      }
                    },
                    "src": "1536:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                      "typeString": "contract ScalarEvent"
                    }
                  },
                  "id": 1007,
                  "nodeType": "ExpressionStatement",
                  "src": "1536:30:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1008,
                      "name": "netOutcomeTokensSold",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 878,
                      "src": "1576:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                        "typeString": "int256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1012,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "1609:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            "id": 1013,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getOutcomeCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2382,
                            "src": "1609:29:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                              "typeString": "function () view external returns (uint8)"
                            }
                          },
                          "id": 1014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1609:31:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 1011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1599:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_$",
                          "typeString": "function (uint256) pure returns (int256[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1009,
                            "name": "int",
                            "nodeType": "ElementaryTypeName",
                            "src": "1603:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1010,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "1603:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        }
                      },
                      "id": 1015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1599:42:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_memory",
                        "typeString": "int256[] memory"
                      }
                    },
                    "src": "1576:65:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                      "typeString": "int256[] storage ref"
                    }
                  },
                  "id": 1017,
                  "nodeType": "ExpressionStatement",
                  "src": "1576:65:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1018,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 873,
                      "src": "1651:3:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1019,
                      "name": "_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 968,
                      "src": "1657:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "1651:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "id": 1021,
                  "nodeType": "ExpressionStatement",
                  "src": "1651:10:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1024,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1022,
                      "name": "marketMaker",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 871,
                      "src": "1671:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MarketMaker_$920",
                        "typeString": "contract MarketMaker"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1023,
                      "name": "_marketMaker",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 966,
                      "src": "1685:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MarketMaker_$920",
                        "typeString": "contract MarketMaker"
                      }
                    },
                    "src": "1671:26:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MarketMaker_$920",
                      "typeString": "contract MarketMaker"
                    }
                  },
                  "id": 1025,
                  "nodeType": "ExpressionStatement",
                  "src": "1671:26:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1026,
                      "name": "stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 880,
                      "src": "1707:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1027,
                        "name": "Stages",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 884,
                        "src": "1715:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                          "typeString": "type(enum Market.Stages)"
                        }
                      },
                      "id": 1028,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "MarketCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1715:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "src": "1707:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "id": 1030,
                  "nodeType": "ExpressionStatement",
                  "src": "1707:28:4"
                }
              ]
            },
            "documentation": "@dev Constructor validates and sets market properties\n @param _creator Market creator\n @param _eventContract Event contract\n @param _marketMaker Market maker contract\n @param _fee Market fee",
            "id": 1032,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "StandardMarket",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 962,
                  "name": "_creator",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1172:16:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 961,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1172:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 964,
                  "name": "_eventContract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1190:26:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                    "typeString": "contract ScalarEvent"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 963,
                    "name": "ScalarEvent",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2433,
                    "src": "1190:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                      "typeString": "contract ScalarEvent"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 966,
                  "name": "_marketMaker",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1218:24:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MarketMaker_$920",
                    "typeString": "contract MarketMaker"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 965,
                    "name": "MarketMaker",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 920,
                    "src": "1218:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MarketMaker_$920",
                      "typeString": "contract MarketMaker"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 968,
                  "name": "_fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 1032,
                  "src": "1244:11:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 967,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1244:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1171:85:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 970,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1276:0:4"
            },
            "scope": 1534,
            "src": "1148:594:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1088,
              "nodeType": "Block",
              "src": "1989:499:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1048,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "2152:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1049,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2152:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1050,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8600,
                            "src": "2164:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1051,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1034,
                            "src": "2170:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1052,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "2180:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1044,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "2107:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1045,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "2107:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2107:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5840,
                          "src": "2107:44:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2107:87:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7472616e7366657246726f6d206661696c6564",
                        "id": 1054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2196:21:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3",
                          "typeString": "literal_string \"transferFrom failed\""
                        },
                        "value": "transferFrom failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ab0f731885d207443b1e545c1c7e7ed7ac9b6ea503774981a1bcc8ac01b461c3",
                          "typeString": "literal_string \"transferFrom failed\""
                        }
                      ],
                      "id": 1043,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "2098:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2098:120:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1056,
                  "nodeType": "ExpressionStatement",
                  "src": "2098:120:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1062,
                            "name": "eventContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 869,
                            "src": "2277:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                              "typeString": "contract ScalarEvent"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1063,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1034,
                            "src": "2292:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1064,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "2302:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                              "typeString": "contract ScalarEvent"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1058,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "2237:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1059,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "2237:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1060,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2237:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1061,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "approve",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5450,
                          "src": "2237:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2237:79:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "617070726f76616c206661696c6564",
                        "id": 1066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2318:17:4",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dc5bf56f7778a980bf68a168744f15fc09ca522217760da56d44aee44af65dd8",
                          "typeString": "literal_string \"approval failed\""
                        },
                        "value": "approval failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dc5bf56f7778a980bf68a168744f15fc09ca522217760da56d44aee44af65dd8",
                          "typeString": "literal_string \"approval failed\""
                        }
                      ],
                      "id": 1057,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8545,
                      "src": "2228:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2228:108:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1068,
                  "nodeType": "ExpressionStatement",
                  "src": "2228:108:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1072,
                        "name": "_funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1034,
                        "src": "2375:8:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1069,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "2346:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1071,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "buyAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2274,
                      "src": "2346:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2346:38:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1074,
                  "nodeType": "ExpressionStatement",
                  "src": "2346:38:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1077,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1075,
                      "name": "funding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 875,
                      "src": "2394:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1076,
                      "name": "_funding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1034,
                      "src": "2404:8:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2394:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1078,
                  "nodeType": "ExpressionStatement",
                  "src": "2394:18:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1079,
                      "name": "stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 880,
                      "src": "2422:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1080,
                        "name": "Stages",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 884,
                        "src": "2430:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                          "typeString": "type(enum Market.Stages)"
                        }
                      },
                      "id": 1081,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "MarketFunded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2430:19:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "src": "2422:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "id": 1083,
                  "nodeType": "ExpressionStatement",
                  "src": "2422:27:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1085,
                        "name": "funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 875,
                        "src": "2473:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1084,
                      "name": "MarketFunding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 823,
                      "src": "2459:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 1086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2459:22:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1087,
                  "nodeType": "ExpressionStatement",
                  "src": "2459:22:4"
                }
              ]
            },
            "documentation": "@dev Allows to fund the market with collateral tokens converting them into outcome tokens\n @param _funding Funding amount",
            "id": 1089,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1037,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1036,
                  "name": "isCreator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 947,
                  "src": "1937:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1937:9:4"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1039,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "1963:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketCreated",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1963:20:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1041,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1038,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "1955:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1955:29:4"
              }
            ],
            "name": "fund",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1034,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 1089,
                  "src": "1899:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1033,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1899:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1898:15:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1042,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1989:0:4"
            },
            "scope": 1534,
            "src": "1885:603:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1140,
              "nodeType": "Block",
              "src": "2701:299:4",
              "statements": [
                {
                  "assignments": [
                    1099
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1099,
                      "name": "outcomeCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1141,
                      "src": "2711:18:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 1098,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "2711:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1103,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1100,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "2732:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getOutcomeCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2382,
                      "src": "2732:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                        "typeString": "function () view external returns (uint8)"
                      }
                    },
                    "id": 1102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2732:31:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2711:52:4"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1120,
                              "name": "creator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 865,
                              "src": "2874:7:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1126,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8600,
                                  "src": "2924:4:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                    "typeString": "contract StandardMarket"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                    "typeString": "contract StandardMarket"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1123,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1105,
                                      "src": "2911:1:4",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1121,
                                      "name": "eventContract",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 869,
                                      "src": "2883:13:4",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                        "typeString": "contract ScalarEvent"
                                      }
                                    },
                                    "id": 1122,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "outcomeTokens",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 39,
                                    "src": "2883:27:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                      "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                                    }
                                  },
                                  "id": 1124,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2883:30:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                                    "typeString": "contract OutcomeToken"
                                  }
                                },
                                "id": 1125,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "balanceOf",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2643,
                                "src": "2883:40:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                  "typeString": "function (address) view external returns (uint256)"
                                }
                              },
                              "id": 1127,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2883:46:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1117,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1105,
                                  "src": "2862:1:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1115,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "2834:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1116,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "outcomeTokens",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 39,
                                "src": "2834:27:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                  "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                                }
                              },
                              "id": 1118,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2834:30:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                                "typeString": "contract OutcomeToken"
                              }
                            },
                            "id": 1119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2517,
                            "src": "2834:39:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,uint256) external returns (bool)"
                            }
                          },
                          "id": 1128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2834:96:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 1114,
                        "name": "require",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          8544,
                          8545
                        ],
                        "referencedDeclaration": 8544,
                        "src": "2826:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                          "typeString": "function (bool) pure"
                        }
                      },
                      "id": 1129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2826:105:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 1130,
                    "nodeType": "ExpressionStatement",
                    "src": "2826:105:4"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 1110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1108,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1105,
                      "src": "2791:1:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1109,
                      "name": "outcomeCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1099,
                      "src": "2795:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "2791:16:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1131,
                  "initializationExpression": {
                    "assignments": [
                      1105
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1105,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1141,
                        "src": "2778:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 1104,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2778:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1107,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1106,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2788:1:4",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2778:11:4"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1112,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2809:3:4",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1111,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1105,
                        "src": "2809:1:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 1113,
                    "nodeType": "ExpressionStatement",
                    "src": "2809:3:4"
                  },
                  "nodeType": "ForStatement",
                  "src": "2773:158:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1132,
                      "name": "stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 880,
                      "src": "2941:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1133,
                        "name": "Stages",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 884,
                        "src": "2949:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                          "typeString": "type(enum Market.Stages)"
                        }
                      },
                      "id": 1134,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "MarketClosed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2949:19:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stages_$884",
                        "typeString": "enum Market.Stages"
                      }
                    },
                    "src": "2941:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  },
                  "id": 1136,
                  "nodeType": "ExpressionStatement",
                  "src": "2941:27:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1137,
                      "name": "MarketClosing",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 825,
                      "src": "2978:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2978:15:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1139,
                  "nodeType": "ExpressionStatement",
                  "src": "2978:15:4"
                }
              ]
            },
            "documentation": "@dev Allows market creator to close the markets by transferring all remaining outcome tokens to the creator",
            "id": 1141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1092,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1091,
                  "name": "isCreator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 947,
                  "src": "2650:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2650:9:4"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1094,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "2676:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketFunded",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "2676:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1096,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1093,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "2668:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2668:28:4"
              }
            ],
            "name": "close",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1090,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2624:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1097,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2701:0:4"
            },
            "scope": 1534,
            "src": "2610:390:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1173,
              "nodeType": "Block",
              "src": "3194:229:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1148,
                      "name": "fees",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1146,
                      "src": "3204:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1153,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8600,
                          "src": "3253:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_StandardMarket_$1534",
                            "typeString": "contract StandardMarket"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1154,
                          "name": "fundingBranch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 935,
                          "src": "3259:13:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_StandardMarket_$1534",
                            "typeString": "contract StandardMarket"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1149,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "3211:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            "id": 1150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "forkonomicToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41,
                            "src": "3211:29:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                              "typeString": "function () view external returns (contract ForkonomicToken)"
                            }
                          },
                          "id": 1151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3211:31:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                            "typeString": "contract ForkonomicToken"
                          }
                        },
                        "id": 1152,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balanceOf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5589,
                        "src": "3211:41:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (address,bytes32) view external returns (uint256)"
                        }
                      },
                      "id": 1155,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3211:62:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3204:69:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1157,
                  "nodeType": "ExpressionStatement",
                  "src": "3204:69:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1163,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 865,
                            "src": "3357:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1164,
                            "name": "fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1146,
                            "src": "3366:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1165,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "3372:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1159,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "3316:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1160,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "3316:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1161,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3316:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1162,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5705,
                          "src": "3316:40:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3316:70:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1158,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "3308:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3308:79:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1168,
                  "nodeType": "ExpressionStatement",
                  "src": "3308:79:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1170,
                        "name": "fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1146,
                        "src": "3411:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1169,
                      "name": "FeeWithdrawal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 829,
                      "src": "3397:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 1171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3397:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1172,
                  "nodeType": "ExpressionStatement",
                  "src": "3397:19:4"
                }
              ]
            },
            "documentation": "@dev Allows market creator to withdraw fees generated by trades\n @return Fee amount",
            "id": 1174,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1144,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1143,
                  "name": "isCreator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 947,
                  "src": "3152:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3152:9:4"
              }
            ],
            "name": "withdrawFees",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3126:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1146,
                  "name": "fees",
                  "nodeType": "VariableDeclaration",
                  "scope": 1174,
                  "src": "3179:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1145,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3179:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3178:11:4"
            },
            "scope": 1534,
            "src": "3105:318:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1291,
              "nodeType": "Block",
              "src": "3910:1230:4",
              "statements": [
                {
                  "assignments": [
                    1190
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1190,
                      "name": "outcomeTokenCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 1292,
                      "src": "3968:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1189,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3968:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1197,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1193,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "4013:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1194,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1176,
                        "src": "4019:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1195,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1178,
                        "src": "4038:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1191,
                        "name": "marketMaker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "3992:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MarketMaker_$920",
                          "typeString": "contract MarketMaker"
                        }
                      },
                      "id": 1192,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "calcCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 899,
                      "src": "3992:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_contract$_Market_$885_$_t_uint8_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (contract Market,uint8,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 1196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3992:64:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3968:88:4"
                },
                {
                  "assignments": [
                    1199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1199,
                      "name": "fees",
                      "nodeType": "VariableDeclaration",
                      "scope": 1292,
                      "src": "4110:9:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1198,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4110:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1203,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1201,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1190,
                        "src": "4136:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1200,
                      "name": "calcMarketFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1533,
                      "src": "4122:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view returns (uint256)"
                      }
                    },
                    "id": 1202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4122:31:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4110:43:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1204,
                      "name": "cost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1187,
                      "src": "4163:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1207,
                          "name": "fees",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1199,
                          "src": "4191:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1205,
                          "name": "outcomeTokenCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1190,
                          "src": "4170:16:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1206,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3778,
                        "src": "4170:20:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 1208,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4170:26:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4163:33:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1210,
                  "nodeType": "ExpressionStatement",
                  "src": "4163:33:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1212,
                            "name": "cost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1187,
                            "src": "4260:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1213,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4267:1:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4260:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1217,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1215,
                            "name": "cost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1187,
                            "src": "4272:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1216,
                            "name": "maxCost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1180,
                            "src": "4280:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4272:15:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4260:27:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1211,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4252:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4252:36:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1220,
                  "nodeType": "ExpressionStatement",
                  "src": "4252:36:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1226,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8541,
                                "src": "4422:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1227,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4422:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1228,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8600,
                              "src": "4434:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1229,
                              "name": "cost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1187,
                              "src": "4440:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1230,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "4446:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1222,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "4377:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1223,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "4377:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1224,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4377:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1225,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transferFrom",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5840,
                            "src": "4377:44:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4377:83:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1236,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "4520:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1237,
                              "name": "outcomeTokenCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1190,
                              "src": "4535:16:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1238,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "4553:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1232,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "4480:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1233,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "4480:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1234,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4480:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1235,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "approve",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5450,
                            "src": "4480:39:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1239,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4480:87:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4377:190:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1221,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4366:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4366:202:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1242,
                  "nodeType": "ExpressionStatement",
                  "src": "4366:202:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1246,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1190,
                        "src": "4635:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1243,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "4606:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "buyAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2274,
                      "src": "4606:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4606:46:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1248,
                  "nodeType": "ExpressionStatement",
                  "src": "4606:46:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1255,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "4770:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4770:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1257,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1178,
                            "src": "4782:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1252,
                                "name": "outcomeTokenIndex",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1176,
                                "src": "4742:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1250,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "4714:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1251,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "outcomeTokens",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 39,
                              "src": "4714:27:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                              }
                            },
                            "id": 1253,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4714:46:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 1254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2517,
                          "src": "4714:55:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) external returns (bool)"
                          }
                        },
                        "id": 1258,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4714:86:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1249,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4706:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1259,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4706:95:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1260,
                  "nodeType": "ExpressionStatement",
                  "src": "4706:95:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 1266,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1263,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1178,
                              "src": "4886:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1262,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4882:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1264,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4882:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1265,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4908:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4882:27:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1261,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "4874:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1267,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4874:36:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1268,
                  "nodeType": "ExpressionStatement",
                  "src": "4874:36:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1269,
                        "name": "netOutcomeTokensSold",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 878,
                        "src": "4920:20:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                          "typeString": "int256[] storage ref"
                        }
                      },
                      "id": 1271,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1270,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1176,
                        "src": "4941:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4920:39:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1277,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1178,
                              "src": "5010:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1276,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5006:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1278,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5006:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1272,
                            "name": "netOutcomeTokensSold",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 878,
                            "src": "4962:20:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                              "typeString": "int256[] storage ref"
                            }
                          },
                          "id": 1274,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1273,
                            "name": "outcomeTokenIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1176,
                            "src": "4983:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4962:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3929,
                        "src": "4962:43:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                          "typeString": "function (int256,int256) view returns (int256)"
                        }
                      },
                      "id": 1279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4962:67:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "4920:109:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1281,
                  "nodeType": "ExpressionStatement",
                  "src": "4920:109:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1283,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8541,
                          "src": "5060:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1284,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5060:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1285,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1176,
                        "src": "5072:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1286,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1178,
                        "src": "5091:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1287,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1190,
                        "src": "5110:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1288,
                        "name": "fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1199,
                        "src": "5128:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1282,
                      "name": "OutcomeTokenPurchase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 841,
                      "src": "5039:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint8,uint256,uint256,uint256)"
                      }
                    },
                    "id": 1289,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5039:94:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1290,
                  "nodeType": "ExpressionStatement",
                  "src": "5039:94:4"
                }
              ]
            },
            "documentation": "@dev Allows to buy outcome tokens from market maker\n @param outcomeTokenIndex Index of the outcome token to buy\n @param outcomeTokenCount Amount of outcome tokens to buy\n @param maxCost The maximum cost in collateral tokens to pay for outcome tokens\n @return Cost in collateral tokens",
            "id": 1292,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1183,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "3857:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketFunded",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "3857:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1185,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1182,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "3849:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3849:28:4"
              }
            ],
            "name": "buy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1176,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3763:23:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1175,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3763:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1178,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3788:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1177,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3788:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1180,
                  "name": "maxCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3812:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1179,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3812:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3762:63:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1188,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1187,
                  "name": "cost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1292,
                  "src": "3895:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1186,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3895:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3894:11:4"
            },
            "scope": 1534,
            "src": "3750:1390:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1400,
              "nodeType": "Block",
              "src": "5640:1147:4",
              "statements": [
                {
                  "assignments": [
                    1308
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1308,
                      "name": "outcomeTokenProfit",
                      "nodeType": "VariableDeclaration",
                      "scope": 1401,
                      "src": "5705:23:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1307,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5705:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1315,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1311,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "5754:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1312,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "5760:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1313,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1296,
                        "src": "5779:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1309,
                        "name": "marketMaker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 871,
                        "src": "5731:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MarketMaker_$920",
                          "typeString": "contract MarketMaker"
                        }
                      },
                      "id": 1310,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "calcProfit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 910,
                      "src": "5731:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_contract$_Market_$885_$_t_uint8_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (contract Market,uint8,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 1314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5731:66:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5705:92:4"
                },
                {
                  "assignments": [
                    1317
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1317,
                      "name": "fees",
                      "nodeType": "VariableDeclaration",
                      "scope": 1401,
                      "src": "5850:9:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1316,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5850:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1321,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1319,
                        "name": "outcomeTokenProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1308,
                        "src": "5876:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1318,
                      "name": "calcMarketFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1533,
                      "src": "5862:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view returns (uint256)"
                      }
                    },
                    "id": 1320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5862:33:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5850:45:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1322,
                      "name": "profit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1305,
                      "src": "5905:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1325,
                          "name": "fees",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1317,
                          "src": "5937:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1323,
                          "name": "outcomeTokenProfit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1308,
                          "src": "5914:18:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1324,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3799,
                        "src": "5914:22:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 1326,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5914:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5905:37:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1328,
                  "nodeType": "ExpressionStatement",
                  "src": "5905:37:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1330,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1305,
                            "src": "5999:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1331,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6008:1:4",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5999:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1335,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1333,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1305,
                            "src": "6013:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1334,
                            "name": "minProfit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1298,
                            "src": "6023:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6013:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5999:33:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1329,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "5991:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5991:42:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1338,
                  "nodeType": "ExpressionStatement",
                  "src": "5991:42:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1345,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "6187:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1346,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6187:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1347,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8600,
                            "src": "6199:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1348,
                            "name": "outcomeTokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1296,
                            "src": "6205:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_contract$_StandardMarket_$1534",
                              "typeString": "contract StandardMarket"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1342,
                                "name": "outcomeTokenIndex",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1294,
                                "src": "6155:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1340,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "6127:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1341,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "outcomeTokens",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 39,
                              "src": "6127:27:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                              }
                            },
                            "id": 1343,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6127:46:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                              "typeString": "contract OutcomeToken"
                            }
                          },
                          "id": 1344,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2587,
                          "src": "6127:59:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256) external returns (bool)"
                          }
                        },
                        "id": 1349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6127:96:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1339,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "6119:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6119:105:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1351,
                  "nodeType": "ExpressionStatement",
                  "src": "6119:105:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1355,
                        "name": "outcomeTokenProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1308,
                        "src": "6293:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1352,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "6263:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sellAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2318,
                      "src": "6263:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6263:49:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1357,
                  "nodeType": "ExpressionStatement",
                  "src": "6263:49:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1363,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "6408:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6408:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1365,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1305,
                            "src": "6420:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1366,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "6428:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1359,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "6367:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1360,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "6367:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1361,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6367:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5705,
                          "src": "6367:40:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6367:75:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1358,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "6359:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1368,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6359:84:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1369,
                  "nodeType": "ExpressionStatement",
                  "src": "6359:84:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 1375,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1372,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1296,
                              "src": "6535:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1371,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6531:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1373,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6531:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6557:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6531:27:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1370,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "6523:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6523:36:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1377,
                  "nodeType": "ExpressionStatement",
                  "src": "6523:36:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1389,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1378,
                        "name": "netOutcomeTokensSold",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 878,
                        "src": "6569:20:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                          "typeString": "int256[] storage ref"
                        }
                      },
                      "id": 1380,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1379,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "6590:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6569:39:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1386,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1296,
                              "src": "6659:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1385,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6655:3:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": "int"
                          },
                          "id": 1387,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6655:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1381,
                            "name": "netOutcomeTokensSold",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 878,
                            "src": "6611:20:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int256_$dyn_storage",
                              "typeString": "int256[] storage ref"
                            }
                          },
                          "id": 1383,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1382,
                            "name": "outcomeTokenIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1294,
                            "src": "6632:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6611:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3950,
                        "src": "6611:43:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                          "typeString": "function (int256,int256) view returns (int256)"
                        }
                      },
                      "id": 1388,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6611:67:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "6569:109:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1390,
                  "nodeType": "ExpressionStatement",
                  "src": "6569:109:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1392,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8541,
                          "src": "6705:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6705:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1394,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "6717:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1395,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1296,
                        "src": "6736:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1396,
                        "name": "outcomeTokenProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1308,
                        "src": "6755:18:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1397,
                        "name": "fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1317,
                        "src": "6775:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1391,
                      "name": "OutcomeTokenSale",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 853,
                      "src": "6688:16:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint8,uint256,uint256,uint256)"
                      }
                    },
                    "id": 1398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6688:92:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1399,
                  "nodeType": "ExpressionStatement",
                  "src": "6688:92:4"
                }
              ]
            },
            "documentation": "@dev Allows to sell outcome tokens to market maker\n @param outcomeTokenIndex Index of the outcome token to sell\n @param outcomeTokenCount Amount of outcome tokens to sell\n @param minProfit The minimum profit in collateral tokens to earn for outcome tokens\n @return Profit in collateral tokens",
            "id": 1401,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1301,
                      "name": "Stages",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 884,
                      "src": "5585:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stages_$884_$",
                        "typeString": "type(enum Market.Stages)"
                      }
                    },
                    "id": 1302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "MarketFunded",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "5585:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stages_$884",
                      "typeString": "enum Market.Stages"
                    }
                  }
                ],
                "id": 1303,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1300,
                  "name": "atStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 960,
                  "src": "5577:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stages_$884_$",
                    "typeString": "modifier (enum Market.Stages)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5577:28:4"
              }
            ],
            "name": "sell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1294,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5489:23:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1293,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5489:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1296,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5514:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1295,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5514:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1298,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5538:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1297,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5538:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5488:65:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1305,
                  "name": "profit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1401,
                  "src": "5623:11:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1304,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5623:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5622:13:4"
            },
            "scope": 1534,
            "src": "5475:1312:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1518,
              "nodeType": "Block",
              "src": "7387:1081:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1431,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1417,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8541,
                                "src": "7481:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1418,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7481:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1419,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8600,
                              "src": "7493:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1420,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1405,
                              "src": "7499:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1421,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "7518:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_StandardMarket_$1534",
                                "typeString": "contract StandardMarket"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1413,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "7436:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1414,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "7436:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1415,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7436:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transferFrom",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5840,
                            "src": "7436:44:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7436:96:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1427,
                              "name": "eventContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 869,
                              "src": "7592:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1428,
                              "name": "outcomeTokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1405,
                              "src": "7607:17:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1429,
                              "name": "fundingBranch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 935,
                              "src": "7626:13:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                "typeString": "contract ScalarEvent"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1423,
                                  "name": "eventContract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 869,
                                  "src": "7552:13:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                    "typeString": "contract ScalarEvent"
                                  }
                                },
                                "id": 1424,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "forkonomicToken",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41,
                                "src": "7552:29:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                  "typeString": "function () view external returns (contract ForkonomicToken)"
                                }
                              },
                              "id": 1425,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7552:31:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                                "typeString": "contract ForkonomicToken"
                              }
                            },
                            "id": 1426,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "approve",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5450,
                            "src": "7552:39:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (address,uint256,bytes32) external returns (bool)"
                            }
                          },
                          "id": 1430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7552:88:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7436:204:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1412,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "7425:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7425:216:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1433,
                  "nodeType": "ExpressionStatement",
                  "src": "7425:216:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1437,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7680:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1434,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "7651:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1436,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "buyAllOutcomes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2274,
                      "src": "7651:28:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7651:47:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1439,
                  "nodeType": "ExpressionStatement",
                  "src": "7651:47:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1446,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "7802:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1447,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7808:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1443,
                            "name": "outcomeTokenIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1403,
                            "src": "7775:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1440,
                            "name": "eventContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 869,
                            "src": "7747:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                              "typeString": "contract ScalarEvent"
                            }
                          },
                          "id": 1442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "outcomeTokens",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 39,
                          "src": "7747:27:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                            "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                          }
                        },
                        "id": 1444,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7747:46:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                          "typeString": "contract OutcomeToken"
                        }
                      },
                      "id": 1445,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "approve",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2615,
                      "src": "7747:54:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 1448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7747:79:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1449,
                  "nodeType": "ExpressionStatement",
                  "src": "7747:79:4"
                },
                {
                  "assignments": [
                    1451
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1451,
                      "name": "profit",
                      "nodeType": "VariableDeclaration",
                      "scope": 1519,
                      "src": "7836:11:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1450,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7836:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1458,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1454,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1403,
                        "src": "7860:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1455,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7879:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1456,
                        "name": "minProfit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1407,
                        "src": "7898:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1452,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8600,
                        "src": "7850:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StandardMarket_$1534",
                          "typeString": "contract StandardMarket"
                        }
                      },
                      "id": 1453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sell",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1401,
                      "src": "7850:9:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint8,uint256,uint256) external returns (uint256)"
                      }
                    },
                    "id": 1457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7850:58:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7836:72:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1459,
                      "name": "cost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1410,
                      "src": "7918:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1460,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "7925:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1461,
                        "name": "profit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1451,
                        "src": "7945:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "7925:26:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7918:33:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "7918:33:4"
                },
                {
                  "assignments": [
                    1466
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1466,
                      "name": "outcomeCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1519,
                      "src": "8005:18:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 1465,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "8005:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1470,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1467,
                        "name": "eventContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 869,
                        "src": "8026:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                          "typeString": "contract ScalarEvent"
                        }
                      },
                      "id": 1468,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getOutcomeCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2382,
                      "src": "8026:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                        "typeString": "function () view external returns (uint8)"
                      }
                    },
                    "id": 1469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8026:31:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8005:52:4"
                },
                {
                  "body": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 1483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1481,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1472,
                        "src": "8124:1:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1482,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1403,
                        "src": "8129:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "8124:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 1496,
                    "nodeType": "IfStatement",
                    "src": "8120:123:4",
                    "trueBody": {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1490,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8541,
                                  "src": "8212:3:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 1491,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "8212:10:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1492,
                                "name": "outcomeTokenCount",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1405,
                                "src": "8224:17:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1487,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1472,
                                    "src": "8200:1:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1485,
                                    "name": "eventContract",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 869,
                                    "src": "8172:13:4",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                      "typeString": "contract ScalarEvent"
                                    }
                                  },
                                  "id": 1486,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "outcomeTokens",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 39,
                                  "src": "8172:27:4",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_OutcomeToken_$1718_$",
                                    "typeString": "function (uint256) view external returns (contract OutcomeToken)"
                                  }
                                },
                                "id": 1488,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8172:30:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_OutcomeToken_$1718",
                                  "typeString": "contract OutcomeToken"
                                }
                              },
                              "id": 1489,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2517,
                              "src": "8172:39:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                "typeString": "function (address,uint256) external returns (bool)"
                              }
                            },
                            "id": 1493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8172:70:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 1484,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            8544,
                            8545
                          ],
                          "referencedDeclaration": 8544,
                          "src": "8164:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                            "typeString": "function (bool) pure"
                          }
                        },
                        "id": 1494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8164:79:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 1495,
                      "nodeType": "ExpressionStatement",
                      "src": "8164:79:4"
                    }
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 1477,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1475,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1472,
                      "src": "8085:1:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1476,
                      "name": "outcomeCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1466,
                      "src": "8089:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "8085:16:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1497,
                  "initializationExpression": {
                    "assignments": [
                      1472
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1472,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1519,
                        "src": "8072:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 1471,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "8072:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1474,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8082:1:4",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8072:11:4"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8103:3:4",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1478,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1472,
                        "src": "8103:1:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 1480,
                    "nodeType": "ExpressionStatement",
                    "src": "8103:3:4"
                  },
                  "nodeType": "ForStatement",
                  "src": "8067:176:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1503,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8541,
                              "src": "8339:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1504,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "8339:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1505,
                            "name": "profit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1451,
                            "src": "8351:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1506,
                            "name": "fundingBranch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "8359:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1499,
                                "name": "eventContract",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 869,
                                "src": "8298:13:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ScalarEvent_$2433",
                                  "typeString": "contract ScalarEvent"
                                }
                              },
                              "id": 1500,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "forkonomicToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41,
                              "src": "8298:29:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_ForkonomicToken_$6244_$",
                                "typeString": "function () view external returns (contract ForkonomicToken)"
                              }
                            },
                            "id": 1501,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8298:31:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicToken_$6244",
                              "typeString": "contract ForkonomicToken"
                            }
                          },
                          "id": 1502,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transfer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5705,
                          "src": "8298:40:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (address,uint256,bytes32) external returns (bool)"
                          }
                        },
                        "id": 1507,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8298:75:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1498,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        8544,
                        8545
                      ],
                      "referencedDeclaration": 8544,
                      "src": "8290:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8290:84:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1509,
                  "nodeType": "ExpressionStatement",
                  "src": "8290:84:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1511,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8541,
                          "src": "8406:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1512,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8406:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1513,
                        "name": "outcomeTokenIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1403,
                        "src": "8418:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1514,
                        "name": "outcomeTokenCount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1405,
                        "src": "8437:17:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1515,
                        "name": "cost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1410,
                        "src": "8456:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1510,
                      "name": "OutcomeTokenShortSale",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 863,
                      "src": "8384:21:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint8_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint8,uint256,uint256)"
                      }
                    },
                    "id": 1516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8384:77:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1517,
                  "nodeType": "ExpressionStatement",
                  "src": "8384:77:4"
                }
              ]
            },
            "documentation": "@dev Buys all outcomes, then sells all shares of selected outcome which were bought, keeping\n      shares of all other outcome tokens.\n @param outcomeTokenIndex Index of the outcome token to short sell\n @param outcomeTokenCount Amount of outcome tokens to short sell\n @param minProfit The minimum profit in collateral tokens to earn for short sold outcome tokens\n @return Cost to short sell outcome in collateral tokens",
            "id": 1519,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "shortSell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1403,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7275:23:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1402,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7275:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1405,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7300:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1404,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7300:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1407,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7324:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1406,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7324:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7274:65:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1410,
                  "name": "cost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1519,
                  "src": "7372:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1409,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7372:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7371:11:4"
            },
            "scope": 1534,
            "src": "7256:1212:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1532,
              "nodeType": "Block",
              "src": "8727:58:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1528,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1526,
                        "name": "outcomeTokenCost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1521,
                        "src": "8744:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1527,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 873,
                        "src": "8763:3:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "src": "8744:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1529,
                      "name": "FEE_RANGE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 933,
                      "src": "8769:9:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "8744:34:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1525,
                  "id": 1531,
                  "nodeType": "Return",
                  "src": "8737:41:4"
                }
              ]
            },
            "documentation": "@dev Calculates fee to be paid to market maker\n @param outcomeTokenCost Cost for buying outcome tokens\n @return Fee for trade",
            "id": 1533,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "calcMarketFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1521,
                  "name": "outcomeTokenCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 1533,
                  "src": "8645:21:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1520,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8645:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8644:23:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1525,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1524,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1533,
                  "src": "8717:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1523,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8717:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8716:6:4"
            },
            "scope": 1534,
            "src": "8622:163:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1535,
        "src": "344:8443:4"
      }
    ],
    "src": "0:8788:4"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "1541950306998": {
      "events": {},
      "links": {
        "Math": "0x07A01280043D8794199890B92827167842D7F8D2"
      },
      "address": "0x33099f63DA887D1826eE2d7FD3F6F1A6d0818aCA",
      "transactionHash": "0xea4899255bb610904b927a19b1f6e784ca4d8738b6ad0cd0f285e5389cf8acae"
    }
  },
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-11T16:31:32.593Z"
}