{
  "contractName": "DaoFundingManager",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_configKey",
          "type": "bytes32"
        }
      ],
      "name": "getAddressConfig",
      "outputs": [
        {
          "name": "_configValue",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "key",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "get_contract",
      "outputs": [
        {
          "name": "_contract",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentTimeInQuarter",
      "outputs": [
        {
          "name": "_currentT",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isMainPhase",
      "outputs": [
        {
          "name": "_isMainPhase",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isLockingPhase",
      "outputs": [
        {
          "name": "_isLockingPhase",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentQuarterNumber",
      "outputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "FUNDING_SOURCE",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "isParticipant",
      "outputs": [
        {
          "name": "_is",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_configKey",
          "type": "bytes32"
        }
      ],
      "name": "getBytesConfig",
      "outputs": [
        {
          "name": "_configValue",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_configKey",
          "type": "bytes32"
        }
      ],
      "name": "getUintConfig",
      "outputs": [
        {
          "name": "_configValue",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isDaoNotReplaced",
      "outputs": [
        {
          "name": "_isNotReplaced",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "isProposalPaused",
      "outputs": [
        {
          "name": "_isPausedOrStopped",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "isModerator",
      "outputs": [
        {
          "name": "_is",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_resolver",
          "type": "address"
        },
        {
          "name": "_fundingSource",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_votingRound",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_funding",
          "type": "uint256"
        }
      ],
      "name": "ClaimFunding",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_fundingSource",
          "type": "address"
        }
      ],
      "name": "setFundingSource",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "claimFunding",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_receiver",
          "type": "address"
        },
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "refundCollateral",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_destinationForDaoFunds",
          "type": "address"
        }
      ],
      "name": "moveFundsToNewDao",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f906000191690553480156200113457600080fd5b506040516040806200389783398101806040528101908080519060200190929190805190602001909291905050506200117f601e5483620011d4640100000000026401000000009004565b15156200118b57600080fd5b80607060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062001465565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200123c57600080fd5b505af115801562001251573d6000803e3d6000fd5b505050506040513d60208110156200126857600080fd5b81019080805190602001909291905050509050600015158115151415620014595730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200140657600080fd5b505af11580156200141b573d6000803e3d6000fd5b505050506040513d60208110156200143257600080fd5b810190808051906020019092919050505015156200144f57600080fd5b600191506200145e565b600091505b5092915050565b61242280620014756000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146101b05780631d8ccd04146102075780633943380c146102785780633f83acff146102ab578063560a25ea1461031c57806368533060146103475780637bf6b37e146103765780637d6fed80146103b15780637e71332b146103e05780637f6a26b6146104495780638b43ba9314610474578063929066f5146104cb57806393ddad08146105265780639f5c069514610573578063b1e2b9dd146105b6578063c72deb9a146105fb578063d70d93581461063e578063db4ecbc11461066d578063f94f0f33146106c4578063fa6f39361461070d575b607060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101a35750610174601454610768565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156101ae57600080fd5b005b3480156101bc57600080fd5b506101c5610844565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021357600080fd5b506102366004803603810190808035600019169060200190929190505050610869565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028457600080fd5b5061028d61092b565b60405180826000191660001916815260200191505060405180910390f35b3480156102b757600080fd5b506102da6004803603810190808035600019169060200190929190505050610768565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032857600080fd5b50610331610931565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b5061035c610941565b604051808215151515815260200191505060405180910390f35b34801561038257600080fd5b506103af60048036038101908080356000191690602001909291908035906020019092919050505061096d565b005b3480156103bd57600080fd5b506103c6611145565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b5061042f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050611160565b604051808215151515815260200191505060405180910390f35b34801561045557600080fd5b5061045e6111c3565b6040518082815260200191505060405180910390f35b34801561048057600080fd5b506104896111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d757600080fd5b5061050c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b604051808215151515815260200191505060405180910390f35b34801561053257600080fd5b5061055560048036038101908080356000191690602001909291905050506113da565b60405180826000191660001916815260200191505060405180910390f35b34801561057f57600080fd5b506105b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061149c565b005b3480156105c257600080fd5b506105e560048036038101908080356000191690602001909291905050506115dc565b6040518082815260200191505060405180910390f35b34801561060757600080fd5b5061063c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169e565b005b34801561064a57600080fd5b5061065361171b565b604051808215151515815260200191505060405180910390f35b34801561067957600080fd5b506106826117c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d057600080fd5b506106f360048036038101908080356000191690602001909291905050506117ef565b604051808215151515815260200191505060405180910390f35b34801561071957600080fd5b5061074e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611944565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561080257600080fd5b505af1158015610816573d6000803e3d6000fd5b505050506040513d602081101561082c57600080fd5b81019080805190602001909291905050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610873611c17565b73ffffffffffffffffffffffffffffffffffffffff1663e6b39eab836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156108e957600080fd5b505af11580156108fd573d6000803e3d6000fd5b505050506040513d602081101561091357600080fd5b81019080805190602001909291905050509050919050565b60015481565b600061093c42611c29565b905090565b600061094b61171b565b8015610968575061095d6038546115dc565b610965610931565b10155b905090565b6000610977611d12565b73ffffffffffffffffffffffffffffffffffffffff16634a9aedc4336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a1157600080fd5b505af1158015610a25573d6000803e3d6000fd5b505050506040513d6020811015610a3b57600080fd5b81019080805190602001909291905050501515610ac0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f6e6f206b7963000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610ac983611d24565b1515610b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f6e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b610b46836117ef565b151515610bbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f70726f706f73616c20697320706175736564000000000000000000000000000081525060200191505060405180910390fd5b610bc3611e14565b73ffffffffffffffffffffffffffffffffffffffff166341a7158984846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b505050506040513d6020811015610c6b57600080fd5b8101908080519060200190929190505050151515610cf1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d696c6573746f6e6520616c72656164792066756e646564000000000000000081525060200191505060405180910390fd5b610cf9611e14565b73ffffffffffffffffffffffffffffffffffffffff16630bcaa45184846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b505050506040513d6020811015610da157600080fd5b81019080805190602001909291905050501515610e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f726573756c74206e6f742070617373000000000000000000000000000000000081525060200191505060405180910390fd5b610e2e611e14565b73ffffffffffffffffffffffffffffffffffffffff166385f5276f84846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610eac57600080fd5b505af1158015610ec0573d6000803e3d6000fd5b505050506040513d6020811015610ed657600080fd5b81019080805190602001909291905050501515610f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f726573756c74206e6f7420636c61696d6564000000000000000000000000000081525060200191505060405180910390fd5b610f63611e14565b73ffffffffffffffffffffffffffffffffffffffff16633a85b82284846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610fe157600080fd5b505af1158015610ff5573d6000803e3d6000fd5b505050506040513d602081101561100b57600080fd5b81019080805190602001909291905050509050611026611e14565b73ffffffffffffffffffffffffffffffffffffffff166327a9bb0e84846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611102573d6000803e3d6000fd5b508183600019167f8d1b0df4570782153fa0f8007e693260546917a0bf0f213cd60711d69d7377f5836040518082815260200191505060405180910390a3505050565b60006111526038546115dc565b61115a610931565b10905090565b60006111a460606040519081016040528060145460001916600019168152602001601854600019166000191681526020016003546000191660001916815250611e26565b15156111af57600080fd5b6111b98383611f9d565b6001905092915050565b60006111ce426120a6565b905090565b607060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112036111c3565b61120b6121a9565b73ffffffffffffffffffffffffffffffffffffffff1663cefc2bff846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156112a557600080fd5b505af11580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b81019080805190602001909291905050501480156113d357506112f36035546115dc565b6112fb6121bb565b73ffffffffffffffffffffffffffffffffffffffff1663cd094a27846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561139557600080fd5b505af11580156113a9573d6000803e3d6000fd5b505050506040513d60208110156113bf57600080fd5b810190808051906020019092919050505010155b9050919050565b60006113e4611c17565b73ffffffffffffffffffffffffffffffffffffffff1663c0a8405d836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561145a57600080fd5b505af115801561146e573d6000803e3d6000fd5b505050506040513d602081101561148457600080fd5b81019080805190602001909291905050509050919050565b603360009054906101000a900460ff1660ff166114b7611d12565b73ffffffffffffffffffffffffffffffffffffffff1663c31d02b2336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b505050506040513d602081101561157b57600080fd5b810190808051906020019092919050505014151561159857600080fd5b80607060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006115e6611c17565b73ffffffffffffffffffffffffffffffffffffffff1663734c1168836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561165c57600080fd5b505af1158015611670573d6000803e3d6000fd5b505050506040513d602081101561168657600080fd5b81019080805190602001909291905050509050919050565b60006116ab6014546121cd565b15156116b657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163190508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611716573d6000803e3d6000fd5b505050565b60006117256122d7565b73ffffffffffffffffffffffffffffffffffffffff16638bc865fd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561178857600080fd5b505af115801561179c573d6000803e3d6000fd5b505050506040513d60208110156117b257600080fd5b810190808051906020019092919050505015905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117f9611e14565b73ffffffffffffffffffffffffffffffffffffffff1663d8d50179836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505061014060405180830381600087803b15801561187057600080fd5b505af1158015611884573d6000803e3d6000fd5b505050506040513d61014081101561189b57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192939495969798509091929394959697509091929394959650909192939495509091929394509091929350909192509091505080915050919050565b600061194e6111c3565b6119566121a9565b73ffffffffffffffffffffffffffffffffffffffff1663cefc2bff846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156119f057600080fd5b505af1158015611a04573d6000803e3d6000fd5b505050506040513d6020811015611a1a57600080fd5b8101908080519060200190929190505050148015611b1e5750611a3e6036546115dc565b611a466121bb565b73ffffffffffffffffffffffffffffffffffffffff1663cd094a27846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611ae057600080fd5b505af1158015611af4573d6000803e3d6000fd5b505050506040513d6020811015611b0a57600080fd5b810190808051906020019092919050505010155b8015611c105750611b306037546115dc565b611b386122e9565b73ffffffffffffffffffffffffffffffffffffffff16639c89a0e2846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611bd257600080fd5b505af1158015611be6573d6000803e3d6000fd5b505050506040513d6020811015611bfc57600080fd5b810190808051906020019092919050505010155b9050919050565b6000611c24602b54610768565b905090565b6000611c336122fb565b1515611c3e57600080fd5b611c496039546115dc565b611d01611c546122d7565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cb757600080fd5b505af1158015611ccb573d6000803e3d6000fd5b505050506040513d6020811015611ce157600080fd5b8101908080519060200190929190505050846123ab90919063ffffffff16565b811515611d0a57fe5b069050919050565b6000611d1f602854610768565b905090565b6000611d2e611e14565b73ffffffffffffffffffffffffffffffffffffffff16635b712eb6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611da457600080fd5b505af1158015611db8573d6000803e3d6000fd5b505050506040513d6020811015611dce57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000611e21602554610768565b905090565b600080600060039150600090505b81811015611f96576000600102600019168482600381101515611e5357fe5b6020020151600019161415611e6757611f89565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff8583600381101515611eb257fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611f1157600080fd5b505af1158015611f25573d6000803e3d6000fd5b505050506040513d6020811015611f3b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611f885760019250611f96565b5b8080600101915050611e34565b5050919050565b6000611fa7611e14565b73ffffffffffffffffffffffffffffffffffffffff1663eb82718a836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561201d57600080fd5b505af1158015612031573d6000803e3d6000fd5b505050506040513d602081101561204757600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120a0573d6000803e3d6000fd5b50505050565b60006120b06122fb565b15156120bb57600080fd5b6121a260016121946120ce6039546115dc565b6121866120d96122d7565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d602081101561216657600080fd5b8101908080519060200190929190505050876123ab90919063ffffffff16565b6123c490919063ffffffff16565b6123da90919063ffffffff16565b9050919050565b60006121b6602d54610768565b905090565b60006121c8602c54610768565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b505050506040513d602081101561229157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006122e4602754610768565b905090565b60006122f6602954610768565b905090565b6000806123066122d7565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561236957600080fd5b505af115801561237d573d6000803e3d6000fd5b505050506040513d602081101561239357600080fd5b81019080805190602001909291905050501415905090565b60008282111515156123b957fe5b818303905092915050565b600081838115156123d157fe5b04905092915050565b600081830190508281101515156123ed57fe5b809050929150505600a165627a7a72305820f77a3456583f66105c3e69ee3c1624082d1e8313b5c3037190ec9a0f8cabdb6f0029",
  "deployedBytecode": "0x608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146101b05780631d8ccd04146102075780633943380c146102785780633f83acff146102ab578063560a25ea1461031c57806368533060146103475780637bf6b37e146103765780637d6fed80146103b15780637e71332b146103e05780637f6a26b6146104495780638b43ba9314610474578063929066f5146104cb57806393ddad08146105265780639f5c069514610573578063b1e2b9dd146105b6578063c72deb9a146105fb578063d70d93581461063e578063db4ecbc11461066d578063f94f0f33146106c4578063fa6f39361461070d575b607060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806101a35750610174601454610768565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156101ae57600080fd5b005b3480156101bc57600080fd5b506101c5610844565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021357600080fd5b506102366004803603810190808035600019169060200190929190505050610869565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028457600080fd5b5061028d61092b565b60405180826000191660001916815260200191505060405180910390f35b3480156102b757600080fd5b506102da6004803603810190808035600019169060200190929190505050610768565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032857600080fd5b50610331610931565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b5061035c610941565b604051808215151515815260200191505060405180910390f35b34801561038257600080fd5b506103af60048036038101908080356000191690602001909291908035906020019092919050505061096d565b005b3480156103bd57600080fd5b506103c6611145565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b5061042f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050611160565b604051808215151515815260200191505060405180910390f35b34801561045557600080fd5b5061045e6111c3565b6040518082815260200191505060405180910390f35b34801561048057600080fd5b506104896111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d757600080fd5b5061050c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b604051808215151515815260200191505060405180910390f35b34801561053257600080fd5b5061055560048036038101908080356000191690602001909291905050506113da565b60405180826000191660001916815260200191505060405180910390f35b34801561057f57600080fd5b506105b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061149c565b005b3480156105c257600080fd5b506105e560048036038101908080356000191690602001909291905050506115dc565b6040518082815260200191505060405180910390f35b34801561060757600080fd5b5061063c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169e565b005b34801561064a57600080fd5b5061065361171b565b604051808215151515815260200191505060405180910390f35b34801561067957600080fd5b506106826117c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d057600080fd5b506106f360048036038101908080356000191690602001909291905050506117ef565b604051808215151515815260200191505060405180910390f35b34801561071957600080fd5b5061074e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611944565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561080257600080fd5b505af1158015610816573d6000803e3d6000fd5b505050506040513d602081101561082c57600080fd5b81019080805190602001909291905050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610873611c17565b73ffffffffffffffffffffffffffffffffffffffff1663e6b39eab836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156108e957600080fd5b505af11580156108fd573d6000803e3d6000fd5b505050506040513d602081101561091357600080fd5b81019080805190602001909291905050509050919050565b60015481565b600061093c42611c29565b905090565b600061094b61171b565b8015610968575061095d6038546115dc565b610965610931565b10155b905090565b6000610977611d12565b73ffffffffffffffffffffffffffffffffffffffff16634a9aedc4336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a1157600080fd5b505af1158015610a25573d6000803e3d6000fd5b505050506040513d6020811015610a3b57600080fd5b81019080805190602001909291905050501515610ac0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f6e6f206b7963000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610ac983611d24565b1515610b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f6e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b610b46836117ef565b151515610bbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f70726f706f73616c20697320706175736564000000000000000000000000000081525060200191505060405180910390fd5b610bc3611e14565b73ffffffffffffffffffffffffffffffffffffffff166341a7158984846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b505050506040513d6020811015610c6b57600080fd5b8101908080519060200190929190505050151515610cf1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d696c6573746f6e6520616c72656164792066756e646564000000000000000081525060200191505060405180910390fd5b610cf9611e14565b73ffffffffffffffffffffffffffffffffffffffff16630bcaa45184846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b505050506040513d6020811015610da157600080fd5b81019080805190602001909291905050501515610e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f726573756c74206e6f742070617373000000000000000000000000000000000081525060200191505060405180910390fd5b610e2e611e14565b73ffffffffffffffffffffffffffffffffffffffff166385f5276f84846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610eac57600080fd5b505af1158015610ec0573d6000803e3d6000fd5b505050506040513d6020811015610ed657600080fd5b81019080805190602001909291905050501515610f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f726573756c74206e6f7420636c61696d6564000000000000000000000000000081525060200191505060405180910390fd5b610f63611e14565b73ffffffffffffffffffffffffffffffffffffffff16633a85b82284846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b158015610fe157600080fd5b505af1158015610ff5573d6000803e3d6000fd5b505050506040513d602081101561100b57600080fd5b81019080805190602001909291905050509050611026611e14565b73ffffffffffffffffffffffffffffffffffffffff166327a9bb0e84846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611102573d6000803e3d6000fd5b508183600019167f8d1b0df4570782153fa0f8007e693260546917a0bf0f213cd60711d69d7377f5836040518082815260200191505060405180910390a3505050565b60006111526038546115dc565b61115a610931565b10905090565b60006111a460606040519081016040528060145460001916600019168152602001601854600019166000191681526020016003546000191660001916815250611e26565b15156111af57600080fd5b6111b98383611f9d565b6001905092915050565b60006111ce426120a6565b905090565b607060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112036111c3565b61120b6121a9565b73ffffffffffffffffffffffffffffffffffffffff1663cefc2bff846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156112a557600080fd5b505af11580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b81019080805190602001909291905050501480156113d357506112f36035546115dc565b6112fb6121bb565b73ffffffffffffffffffffffffffffffffffffffff1663cd094a27846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561139557600080fd5b505af11580156113a9573d6000803e3d6000fd5b505050506040513d60208110156113bf57600080fd5b810190808051906020019092919050505010155b9050919050565b60006113e4611c17565b73ffffffffffffffffffffffffffffffffffffffff1663c0a8405d836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561145a57600080fd5b505af115801561146e573d6000803e3d6000fd5b505050506040513d602081101561148457600080fd5b81019080805190602001909291905050509050919050565b603360009054906101000a900460ff1660ff166114b7611d12565b73ffffffffffffffffffffffffffffffffffffffff1663c31d02b2336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b505050506040513d602081101561157b57600080fd5b810190808051906020019092919050505014151561159857600080fd5b80607060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006115e6611c17565b73ffffffffffffffffffffffffffffffffffffffff1663734c1168836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561165c57600080fd5b505af1158015611670573d6000803e3d6000fd5b505050506040513d602081101561168657600080fd5b81019080805190602001909291905050509050919050565b60006116ab6014546121cd565b15156116b657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163190508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611716573d6000803e3d6000fd5b505050565b60006117256122d7565b73ffffffffffffffffffffffffffffffffffffffff16638bc865fd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561178857600080fd5b505af115801561179c573d6000803e3d6000fd5b505050506040513d60208110156117b257600080fd5b810190808051906020019092919050505015905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117f9611e14565b73ffffffffffffffffffffffffffffffffffffffff1663d8d50179836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505061014060405180830381600087803b15801561187057600080fd5b505af1158015611884573d6000803e3d6000fd5b505050506040513d61014081101561189b57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192939495969798509091929394959697509091929394959650909192939495509091929394509091929350909192509091505080915050919050565b600061194e6111c3565b6119566121a9565b73ffffffffffffffffffffffffffffffffffffffff1663cefc2bff846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156119f057600080fd5b505af1158015611a04573d6000803e3d6000fd5b505050506040513d6020811015611a1a57600080fd5b8101908080519060200190929190505050148015611b1e5750611a3e6036546115dc565b611a466121bb565b73ffffffffffffffffffffffffffffffffffffffff1663cd094a27846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611ae057600080fd5b505af1158015611af4573d6000803e3d6000fd5b505050506040513d6020811015611b0a57600080fd5b810190808051906020019092919050505010155b8015611c105750611b306037546115dc565b611b386122e9565b73ffffffffffffffffffffffffffffffffffffffff16639c89a0e2846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611bd257600080fd5b505af1158015611be6573d6000803e3d6000fd5b505050506040513d6020811015611bfc57600080fd5b810190808051906020019092919050505010155b9050919050565b6000611c24602b54610768565b905090565b6000611c336122fb565b1515611c3e57600080fd5b611c496039546115dc565b611d01611c546122d7565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cb757600080fd5b505af1158015611ccb573d6000803e3d6000fd5b505050506040513d6020811015611ce157600080fd5b8101908080519060200190929190505050846123ab90919063ffffffff16565b811515611d0a57fe5b069050919050565b6000611d1f602854610768565b905090565b6000611d2e611e14565b73ffffffffffffffffffffffffffffffffffffffff16635b712eb6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611da457600080fd5b505af1158015611db8573d6000803e3d6000fd5b505050506040513d6020811015611dce57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000611e21602554610768565b905090565b600080600060039150600090505b81811015611f96576000600102600019168482600381101515611e5357fe5b6020020151600019161415611e6757611f89565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff8583600381101515611eb257fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611f1157600080fd5b505af1158015611f25573d6000803e3d6000fd5b505050506040513d6020811015611f3b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611f885760019250611f96565b5b8080600101915050611e34565b5050919050565b6000611fa7611e14565b73ffffffffffffffffffffffffffffffffffffffff1663eb82718a836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561201d57600080fd5b505af1158015612031573d6000803e3d6000fd5b505050506040513d602081101561204757600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120a0573d6000803e3d6000fd5b50505050565b60006120b06122fb565b15156120bb57600080fd5b6121a260016121946120ce6039546115dc565b6121866120d96122d7565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d602081101561216657600080fd5b8101908080519060200190929190505050876123ab90919063ffffffff16565b6123c490919063ffffffff16565b6123da90919063ffffffff16565b9050919050565b60006121b6602d54610768565b905090565b60006121c8602c54610768565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b505050506040513d602081101561229157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006122e4602754610768565b905090565b60006122f6602954610768565b905090565b6000806123066122d7565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561236957600080fd5b505af115801561237d573d6000803e3d6000fd5b505050506040513d602081101561239357600080fd5b81019080805190602001909291905050501415905090565b60008282111515156123b957fe5b818303905092915050565b600081838115156123d157fe5b04905092915050565b600081830190508281101515156123ed57fe5b809050929150505600a165627a7a72305820f77a3456583f66105c3e69ee3c1624082d1e8313b5c3037190ec9a0f8cabdb6f0029",
  "sourceMap": "148:3705:9:-;;;177:3:3;169:12;;147:34;;;;;;;219:3;187:36;;;;;;;;;;;;;;;;;;;;230:65;;;;;;;;301:53;;;;;;;;360:61;;;;;;;;427:57;;;;;;;;490:55;;;;;;;;551:59;;;;;;;;643:1;617:27;;677:1;650:28;;713:1;684:30;;758:1;721:38;;800:1;765:36;;843:1;807:37;;851:52;;;;;;;;909:66;;;;;;;;981:80;;;;;;;;1097:28;;;;;;;;1131:62;;;;;;;;1199:56;;;;;;;;1261:42;;;;;;;;1309:56;;;;;;;;1371:65;;;;;;;;1442:46;;;;;;;;1494:60;;;;;;;;1560:66;;;;;;;;1632:40;;;;;;;;1678:60;;;;;;;;1744:54;;;;;;;;1804:52;;;;;;;;1888:46;;;;;;;;1940:54;;;;;;;;2000:60;;;;;;;;2066:66;;;;;;;;2164:44;;;;;;;;2214:60;;;;;;;;2280;;;;;;;;2346:62;;;;;;;;2414:58;;;;;;;;2478:60;;;;;;;;2544:58;;;;;;;;2608:56;;;;;;;;2670:60;;;;;;;;2736:70;;;;;;;;2812:78;;;;;;;;2897:36;;;;;;;;2939;;;;;;;;2981:40;;;;;;;;3047:1;3028:20;;;;;;;;;;;;;;;;;;;;3077:1;3054:24;;;;;;;;;;;;;;;;;;;;3103:1;3084:20;;;;;;;;;;;;;;;;;;;;3135:1;3110:26;;;;;;;;;;;;;;;;;;;;3170:7;3143:34;;3184:57;;;;;;;;3247:62;;;;;;;;3315:76;;;;;;;;3398:64;;;;;;;;3468:52;;;;;;;;3526:58;;;;;;;;3590:56;;;;;;;;3652:67;;;;;;;;3725:65;;;;;;;;3797:84;;;;;;;;3887:88;;;;;;;;3981:87;;;;;;;;4074:91;;;;;;;;4171:84;;;;;;;;4261:88;;;;;;;;4355:87;;;;;;;;4448:91;;;;;;;;4545:87;;;;;;;;4638:91;;;;;;;;4736:62;;;;;;;;4804:66;;;;;;;;4876:64;;;;;;;;4946:68;;;;;;;;5021:51;;;;;;;;5078:76;;;;;;;;5160:75;;;;;;;;5242:65;;;;;;;;5313:79;;;;;;;;5398:89;;;;;;;;5494:68;;;;;;;;5568:56;;;;;;;;5630:72;;;;;;;;5740:91;;;;;;;;5838:72;;;;;;;;5916:76;;;;;;;;5999:78;;;;;;;;6083:76;;;;;;;;6166:73;;;;;;;;6245:77;;;;;;;;6329;;;;;;;;6412:81;;;;;;;;6500:79;;;;;;;;6585:75;;;;;;;;6667:74;;;;;;;;6747;;;;;;;;6828:83;;;;;;;;6917:86;;;;;;;;7009;;;;;;;;7102:67;;;;;;;;7175;;;;;;;;7249:63;;;;;;;;7319:77;;;;;;;;7403:66;;;;;;;;7476:71;;;;;;;;7554:72;;;;;;;;7632:78;;;;;;;;7716:82;;;;;;;;7805:62;;;;;;;;7873:68;;;;;;;;333:174:9;8:9:-1;5:2;;;30:1;27;20:12;5:2;333:174:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:45;418:28;;448:9;413:4;;;:45;;;:::i;:::-;405:54;;;;;;;;486:14;469;;:31;;;;;;;;;;;;;;;;;;333:174;;148:3705;;1530:450:67;1617:13;1640:15;1675:9;1658:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:44:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:44:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1658:44:67;;;;;;;;;;;;;;;;1640:62;;1726:5;1712:19;;:10;:19;;;1708:268;;;1768:4;1741:16;;:32;;;;;;;;;;;;;;;;;;1792:9;1781:8;;:20;;;;;;;;;;;;;;;;;;1815:4;1809:3;:10;;;;;;;1852:8;;;;;;;;;;;1835:49;;;1885:3;;1890:16;;;;;;;;;;;1835:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1835:72:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1835:72:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1835:72:67;;;;;;;;;;;;;;;;1827:81;;;;;;;;1927:4;1916:15;;1708:268;;;1964:5;1953:16;;1708:268;1530:450;;;;;:::o;148:3705:9:-;;;;;;;",
  "deployedSourceMap": "148:3705:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3761:14;;;;;;;;;;;3747:28;;:10;:28;;;3746:88;;;;3807:26;3820:12;;3807;:26::i;:::-;3793:40;;:10;:40;;;3746:88;3725:119;;;;;;;;148:3705;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;6247:195:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6247:195:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:18:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:179:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4809:147:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4809:147:2;;;;;;;;;;;;;;;;;;;;;;;1759:239;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1759:239:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1374:875:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1374:875:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1283:201:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1283:201:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2505:297:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2505:297:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3130:159:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3130:159:2;;;;;;;;;;;;;;;;;;;;;;;195:29:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;195:29:9;;;;;;;;;;;;;;;;;;;;;;;;;;;6728:311:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6728:311:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6448:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6448:191:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;901:135:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;901:135:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;7327:189:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7327:189:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3208:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3208:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;834:173:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;834:173:2;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;605:208:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:208:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7126:431;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7126:431:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179:67;2470:17;2526:8;;;;;;;;;;;2509:39;;;2549:4;2509:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:45:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:45:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:45:67;;;;;;;;;;;;;;;;2497:57;;2380:179;;;:::o;237:23::-;;;;;;;;;;;;;:::o;6247:195:1:-;6338:20;6389:19;:17;:19::i;:::-;:34;;;6424:10;6389:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6389:46:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6389:46:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6389:46:1;;;;;;;;;;;;;;;;6374:61;;6247:195;;;:::o;264:18:67:-;;;;:::o;4809:147:2:-;4886:17;4931:18;4945:3;4931:13;:18::i;:::-;4919:30;;4809:147;:::o;1759:239::-;1827:17;1887:18;:16;:18::i;:::-;:104;;;;;1947:44;1961:29;;1947:13;:44::i;:::-;1921:22;:20;:22::i;:::-;:70;;1887:104;1860:131;;1759:239;:::o;1374:875:9:-;2006:16;1470:18;:16;:18::i;:::-;:34;;;1505:10;1470:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1470:46:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1470:46:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1470:46:9;;;;;;;;;;;;;;;;1462:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1545:27;1560:11;1545:14;:27::i;:::-;1537:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1658:29;1675:11;1658:16;:29::i;:::-;1657:30;1649:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:12;:10;:12::i;:::-;:34;;;1765:11;1778:6;1730:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1730:55:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1730:55:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1730:55:9;;;;;;;;;;;;;;;;1729:56;1721:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1833:12;:10;:12::i;:::-;:37;;;1871:11;1884:6;1833:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1833:58:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1833:58:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1833:58:9;;;;;;;;;;;;;;;;1825:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1929:12;:10;:12::i;:::-;:22;;;1952:11;1965:6;1929:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1929:43:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1929:43:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1929:43:9;;;;;;;;;;;;;;;;1921:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2025:12;:10;:12::i;:::-;:34;;;2060:11;2073:6;2025:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2025:55:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2025:55:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2025:55:9;;;;;;;;;;;;;;;;2006:74;;2091:12;:10;:12::i;:::-;:31;;;2123:11;2136:6;2091:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:52:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2091:52:9;;;;2154:10;:19;;:29;2174:8;2154:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2154:29:9;2225:6;2212:11;2199:43;;;;2233:8;2199:43;;;;;;;;;;;;;;;;;;1374:875;;;:::o;1283:201:2:-;1354:20;1433:44;1447:29;;1433:13;:44::i;:::-;1408:22;:20;:22::i;:::-;:69;1390:87;;1283:201;:::o;2505:297:9:-;2603:13;2640:71;;;;;;;;;;2656:12;;2640:71;;;;;;;;;;2670:26;;2640:71;;;;;;;;;;2698:11;;2640:71;;;;;;;;;:14;:71::i;:::-;2632:80;;;;;;;;2722:48;2747:9;2758:11;2722:24;:48::i;:::-;2791:4;2780:15;;2505:297;;;;:::o;3130:159:2:-;3206:22;3261:21;3278:3;3261:16;:21::i;:::-;3244:38;;3130:159;:::o;195:29:9:-;;;;;;;;;;;;;:::o;6728:311:1:-;6811:8;6908:22;:20;:22::i;:::-;6854:19;:17;:19::i;:::-;:43;;;6898:5;6854:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6854:50:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6854:50:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6854:50:1;;;;;;;;;;;;;;;;:76;6853:179;;;;;6991:40;7005:25;;6991:13;:40::i;:::-;6948:17;:15;:17::i;:::-;:32;;;6981:5;6948:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6948:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6948:39:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6948:39:1;;;;;;;;;;;;;;;;:83;;6853:179;6835:197;;6728:311;;;:::o;6448:191::-;6537:20;6588:19;:17;:19::i;:::-;:32;;;6621:10;6588:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6588:44:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6588:44:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6588:44:1;;;;;;;;;;;;;;;;6573:59;;6448:191;;;:::o;901:135:9:-;337:10:7;;;;;;;;;;;285:62;;:18;:16;:18::i;:::-;:36;;;322:10;285:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;285:48:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;285:48:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;285:48:7;;;;;;;;;;;;;;;;:62;277:71;;;;;;;;1015:14:9;998;;:31;;;;;;;;;;;;;;;;;;901:135;:::o;7327:189:2:-;7415:20;7466:19;:17;:19::i;:::-;:31;;;7498:10;7466:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7466:43:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7466:43:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7466:43:2;;;;;;;;;;;;;;;;7451:58;;7327:189;;;:::o;3208:248:9:-;3339:25;3305:23;3315:12;;3305:9;:23::i;:::-;3297:32;;;;;;;;3375:4;3367:21;;;3339:49;;3398:23;:32;;:51;3431:17;3398:51;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3398:51:9;3208:248;;:::o;834:173:2:-;907:19;960;:17;:19::i;:::-;:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;960:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;960:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;960:40:2;;;;;;;;;;;;;;;;959:41;942:58;;834:173;:::o;344:31:67:-;;;;;;;;;;;;;:::o;605:208:1:-;697:23;768:12;:10;:12::i;:::-;:25;;;794:11;768:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:38:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;768:38:1;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;768:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;736:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:208;;;:::o;7126:431::-;7207:8;7304:22;:20;:22::i;:::-;7250:19;:17;:19::i;:::-;:43;;;7294:5;7250:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7250:50:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7250:50:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7250:50:1;;;;;;;;;;;;;;;;:76;7249:186;;;;;7387:47;7401:32;;7387:13;:47::i;:::-;7344:17;:15;:17::i;:::-;:32;;;7377:5;7344:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7344:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7344:39:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7344:39:1;;;;;;;;;;;;;;;;:90;;7249:186;:301;;;;;7495:54;7509:39;;7495:13;:54::i;:::-;7452:18;:16;:18::i;:::-;:32;;;7485:5;7452:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7452:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7452:39:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7452:39:1;;;;;;;;;;;;;;;;:97;;7249:301;7231:319;;7126:431;;;:::o;5464:198:2:-;5540:27;5613:41;5626:27;;5613:12;:41::i;:::-;5583:72;;5464:198;:::o;3928:332::-;4013:22;4059:26;:24;:26::i;:::-;4051:35;;;;;;;;4215:38;4229:23;;4215:13;:38::i;:::-;4148:52;4158:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4158:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4158:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4158:41:2;;;;;;;;;;;;;;;;4148:5;:9;;:52;;;;:::i;:::-;:105;;;;;;;;4119:134;;3928:332;;;:::o;899:201:7:-;974:28;1049:43;1062:29;;1049:12;:43::i;:::-;1018:75;;899:201;:::o;974:213:1:-;1066:20;1134:12;:10;:12::i;:::-;:33;;;1168:11;1134:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1134:46:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1134:46:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1134:46:1;;;;;;;;;;;;;;;;1120:60;;:10;:60;;;1102:78;;974:213;;;:::o;5865:170:2:-;5934:20;5993:34;6006:20;;5993:12;:34::i;:::-;5970:58;;5865:170;:::o;881:350:67:-;951:12;971:10;1012:9;984:17;971:30;;1024:1;1012:13;;1007:220;1031:2;1027:1;:6;1007:220;;;1077:3;1069:12;;1052:29;;;:10;1063:1;1052:13;;;;;;;;;;;;;:29;;;;1048:43;;;1083:8;;1048:43;1134:8;;;;;;;;;;;1117:39;;;1157:10;1168:1;1157:13;;;;;;;;;;;;;1117:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1117:54:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1117:54:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1117:54:67;;;;;;;;;;;;;;;;1103:68;;:10;:68;;;1099:122;;;1193:4;1183:14;;1207:5;;1099:122;1007:220;1035:3;;;;;;;1007:220;;;881:350;;;;;:::o;2808:241:9:-;2913:25;2941:12;:10;:12::i;:::-;:41;;;2983:11;2941:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2941:54:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2941:54:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2941:54:9;;;;;;;;;;;;;;;;2913:82;;3005:9;:18;;:37;3024:17;3005:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3005:37:9;2808:241;;;:::o;3435:320:2:-;3523:14;3561:26;:24;:26::i;:::-;3553:35;;;;;;;;3619:129;3746:1;3619:109;3689:38;3703:23;;3689:13;:38::i;:::-;3619:52;3629:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3629:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3629:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3629:41:2;;;;;;;;;;;;;;;;3619:5;:9;;:52;;;;:::i;:::-;:69;;:109;;;;:::i;:::-;:126;;:129;;;;:::i;:::-;3598:150;;3435:320;;;:::o;6881:199::-;6957:27;7030:42;7043:28;;7030:12;:42::i;:::-;7000:73;;6881:199;:::o;5668:191::-;5742:25;5811:40;5824:26;;5811:12;:40::i;:::-;5783:69;;5668:191;:::o;610:160:67:-;671:12;732:8;;;;;;;;;;;715:39;;;755:9;715:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;715:50:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;715:50:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;715:50:67;;;;;;;;;;;;;;;;701:64;;:10;:64;;;691:74;;610:160;;;:::o;6270:199:2:-;6346:27;6419:42;6432:28;;6419:12;:42::i;:::-;6389:73;;6270:199;:::o;6680:195::-;6755:26;6826:41;6839:27;;6826:12;:41::i;:::-;6797:71;;6680:195;:::o;4409:172::-;4492:11;4573:1;4528:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4528:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4528:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4528:41:2;;;;;;;;;;;;;;;;:46;;4519:55;;4409:172;:::o;1060:116:84:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;1238:128::-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"../common/DaoCommon.sol\";\nimport \"./Dao.sol\";\n\n\n/**\n@title Contract to manage DAO funds\n@author Digix Holdings\n*/\ncontract DaoFundingManager is DaoCommon {\n\n    address public FUNDING_SOURCE;\n\n    event ClaimFunding(bytes32 indexed _proposalId, uint256 indexed _votingRound, uint256 _funding);\n\n    constructor(address _resolver, address _fundingSource) public {\n        require(init(CONTRACT_DAO_FUNDING_MANAGER, _resolver));\n        FUNDING_SOURCE = _fundingSource;\n    }\n\n    function dao()\n        internal\n        view\n        returns (Dao _contract)\n    {\n        _contract = Dao(get_contract(CONTRACT_DAO));\n    }\n\n    /**\n    @notice Function to set the source of DigixDAO funding\n    @dev only this source address will be able to fund the DaoFundingManager contract, along with CONTRACT_DAO\n    @param _fundingSource address of the funding source\n    */\n    function setFundingSource(address _fundingSource)\n        public\n        if_root()\n    {\n        FUNDING_SOURCE = _fundingSource;\n    }\n\n    /**\n    @notice Call function to claim the ETH funding for a certain milestone\n    @dev Note that the proposer can do this anytime, even in the locking phase\n    @param _proposalId ID of the proposal\n    @param _index Index of the proposal voting round that they got passed, which is also the same as the milestone index\n    */\n    function claimFunding(bytes32 _proposalId, uint256 _index)\n        public\n    {\n        require(identity_storage().is_kyc_approved(msg.sender), \"no kyc\");\n        require(isFromProposer(_proposalId), \"not proposer\");\n\n        // proposal should not be paused/stopped\n        require(!isProposalPaused(_proposalId), \"proposal is paused\");\n\n        require(!daoStorage().readIfMilestoneFunded(_proposalId, _index), \"milestone already funded\");\n\n        require(daoStorage().readProposalVotingResult(_proposalId, _index), \"result not pass\");\n        require(daoStorage().isClaimed(_proposalId, _index), \"result not claimed\");\n\n        uint256 _funding = daoStorage().readProposalMilestone(_proposalId, _index);\n\n        daoStorage().setMilestoneFunded(_proposalId, _index);\n\n        msg.sender.transfer(_funding);\n\n        emit ClaimFunding(_proposalId, _index, _funding);\n    }\n\n    /**\n    @notice Function to refund the collateral to _receiver\n    @dev Can only be called from the Dao contract\n    @param _receiver The receiver of the funds\n    @return {\n      \"_success\": \"Boolean, true if refund was successful\"\n    }\n    */\n    function refundCollateral(address _receiver, bytes32 _proposalId)\n        public\n        returns (bool _success)\n    {\n        require(sender_is_from([CONTRACT_DAO, CONTRACT_DAO_VOTING_CLAIMS, EMPTY_BYTES]));\n        refundCollateralInternal(_receiver, _proposalId);\n        _success = true;\n    }\n\n    function refundCollateralInternal(address _receiver, bytes32 _proposalId)\n        internal\n    {\n        uint256 _collateralAmount = daoStorage().readProposalCollateralAmount(_proposalId);\n        _receiver.transfer(_collateralAmount);\n    }\n\n    /**\n    @notice Function to move funds to a new DAO\n    @param _destinationForDaoFunds Ethereum contract address of the new DaoFundingManager\n    */\n    function moveFundsToNewDao(address _destinationForDaoFunds)\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n        uint256 _remainingBalance = address(this).balance;\n        _destinationForDaoFunds.transfer(_remainingBalance);\n    }\n\n    /**\n    @notice Payable fallback function to receive ETH funds from DigixDAO crowdsale contract\n    @dev this contract can only receive funds from FUNDING_SOURCE address or CONTRACT_DAO (when proposal is created)\n    */\n    function () external payable {\n        require(\n            (msg.sender == FUNDING_SOURCE) ||\n            (msg.sender == get_contract(CONTRACT_DAO))\n        );\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/interactive/DaoFundingManager.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/interactive/DaoFundingManager.sol",
    "exportedSymbols": {
      "DaoFundingManager": [
        3190
      ]
    },
    "id": 3191,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2941,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:9"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommon.sol",
        "file": "../common/DaoCommon.sol",
        "id": 2942,
        "nodeType": "ImportDirective",
        "scope": 3191,
        "sourceUnit": 885,
        "src": "26:33:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/interactive/Dao.sol",
        "file": "./Dao.sol",
        "id": 2943,
        "nodeType": "ImportDirective",
        "scope": 3191,
        "sourceUnit": 2940,
        "src": "60:19:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2944,
              "name": "DaoCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 884,
              "src": "178:9:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoCommon_$884",
                "typeString": "contract DaoCommon"
              }
            },
            "id": 2945,
            "nodeType": "InheritanceSpecifier",
            "src": "178:9:9"
          }
        ],
        "contractDependencies": [
          884,
          1282,
          1629,
          1868,
          1960,
          18628
        ],
        "contractKind": "contract",
        "documentation": "@title Contract to manage DAO funds\n@author Digix Holdings",
        "fullyImplemented": true,
        "id": 3190,
        "linearizedBaseContracts": [
          3190,
          884,
          1282,
          1960,
          1868,
          1629,
          18628
        ],
        "name": "DaoFundingManager",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2947,
            "name": "FUNDING_SOURCE",
            "nodeType": "VariableDeclaration",
            "scope": 3190,
            "src": "195:29:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2946,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "195:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2955,
            "name": "ClaimFunding",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2949,
                  "indexed": true,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "250:27:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2948,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2951,
                  "indexed": true,
                  "name": "_votingRound",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "279:28:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2950,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "279:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2953,
                  "indexed": false,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "309:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2952,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "309:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "249:77:9"
            },
            "src": "231:96:9"
          },
          {
            "body": {
              "id": 2973,
              "nodeType": "Block",
              "src": "395:112:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2964,
                            "name": "CONTRACT_DAO_FUNDING_MANAGER",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "418:28:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2965,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2957,
                            "src": "448:9:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 2963,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "413:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 2966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "413:45:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2962,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "405:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2967,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "405:54:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2968,
                  "nodeType": "ExpressionStatement",
                  "src": "405:54:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2969,
                      "name": "FUNDING_SOURCE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2947,
                      "src": "469:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2970,
                      "name": "_fundingSource",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2959,
                      "src": "486:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "469:31:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2972,
                  "nodeType": "ExpressionStatement",
                  "src": "469:31:9"
                }
              ]
            },
            "documentation": null,
            "id": 2974,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2957,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 2974,
                  "src": "345:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2956,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "345:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2959,
                  "name": "_fundingSource",
                  "nodeType": "VariableDeclaration",
                  "scope": 2974,
                  "src": "364:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2958,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "364:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "344:43:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2961,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "395:0:9"
            },
            "scope": 3190,
            "src": "333:174:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2987,
              "nodeType": "Block",
              "src": "594:60:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2979,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2977,
                      "src": "604:9:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Dao_$2939",
                        "typeString": "contract Dao"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2982,
                              "name": "CONTRACT_DAO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1346,
                              "src": "633:12:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2981,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "620:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "620:26:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2980,
                        "name": "Dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2939,
                        "src": "616:3:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Dao_$2939_$",
                          "typeString": "type(contract Dao)"
                        }
                      },
                      "id": 2984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "616:31:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Dao_$2939",
                        "typeString": "contract Dao"
                      }
                    },
                    "src": "604:43:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Dao_$2939",
                      "typeString": "contract Dao"
                    }
                  },
                  "id": 2986,
                  "nodeType": "ExpressionStatement",
                  "src": "604:43:9"
                }
              ]
            },
            "documentation": null,
            "id": 2988,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "dao",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2975,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "525:2:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2978,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2977,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 2988,
                  "src": "575:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Dao_$2939",
                    "typeString": "contract Dao"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 2976,
                    "name": "Dao",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2939,
                    "src": "575:3:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Dao_$2939",
                      "typeString": "contract Dao"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "574:15:9"
            },
            "scope": 3190,
            "src": "513:141:9",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2999,
              "nodeType": "Block",
              "src": "988:48:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2995,
                      "name": "FUNDING_SOURCE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2947,
                      "src": "998:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2996,
                      "name": "_fundingSource",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2990,
                      "src": "1015:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "998:31:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "998:31:9"
                }
              ]
            },
            "documentation": "@notice Function to set the source of DigixDAO funding\n@dev only this source address will be able to fund the DaoFundingManager contract, along with CONTRACT_DAO\n@param _fundingSource address of the funding source",
            "id": 3000,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 2993,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2992,
                  "name": "if_root",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1889,
                  "src": "974:7:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "974:9:9"
              }
            ],
            "name": "setFundingSource",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2990,
                  "name": "_fundingSource",
                  "nodeType": "VariableDeclaration",
                  "scope": 3000,
                  "src": "927:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2989,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "926:24:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "988:0:9"
            },
            "scope": 3190,
            "src": "901:135:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3093,
              "nodeType": "Block",
              "src": "1452:797:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3011,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26182,
                              "src": "1505:3:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3012,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1505:10:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 3008,
                              "name": "identity_storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1959,
                              "src": "1470:16:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoIdentityStorage_$14083_$",
                                "typeString": "function () view returns (contract DaoIdentityStorage)"
                              }
                            },
                            "id": 3009,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1470:18:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoIdentityStorage_$14083",
                              "typeString": "contract DaoIdentityStorage"
                            }
                          },
                          "id": 3010,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_kyc_approved",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14082,
                          "src": "1470:34:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 3013,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1470:46:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f206b7963",
                        "id": 3014,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1518:8:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2d231808dfed627d6a67ce2ce452a0ac9d6a64ee12ea4fa53ebfe7c269063473",
                          "typeString": "literal_string \"no kyc\""
                        },
                        "value": "no kyc"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2d231808dfed627d6a67ce2ce452a0ac9d6a64ee12ea4fa53ebfe7c269063473",
                          "typeString": "literal_string \"no kyc\""
                        }
                      ],
                      "id": 3007,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1462:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3015,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1462:65:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3016,
                  "nodeType": "ExpressionStatement",
                  "src": "1462:65:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3019,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3002,
                            "src": "1560:11:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 3018,
                          "name": "isFromProposer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 101,
                          "src": "1545:14:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 3020,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1545:27:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f742070726f706f736572",
                        "id": 3021,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1574:14:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_53bcb86603a85f45a1f15a1b19273b62632d0892644eb35b488d68d4ba6f76dc",
                          "typeString": "literal_string \"not proposer\""
                        },
                        "value": "not proposer"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_53bcb86603a85f45a1f15a1b19273b62632d0892644eb35b488d68d4ba6f76dc",
                          "typeString": "literal_string \"not proposer\""
                        }
                      ],
                      "id": 3017,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1537:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1537:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3023,
                  "nodeType": "ExpressionStatement",
                  "src": "1537:52:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1657:30:9",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3026,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3002,
                              "src": "1675:11:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3025,
                            "name": "isProposalPaused",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 82,
                            "src": "1658:16:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (bytes32) view returns (bool)"
                            }
                          },
                          "id": 3027,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1658:29:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "70726f706f73616c20697320706175736564",
                        "id": 3029,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1689:20:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ff973f6db426e83b4a17cd492bff97ceac49cf8a2652f0ed3a09ec0f5c4066c0",
                          "typeString": "literal_string \"proposal is paused\""
                        },
                        "value": "proposal is paused"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ff973f6db426e83b4a17cd492bff97ceac49cf8a2652f0ed3a09ec0f5c4066c0",
                          "typeString": "literal_string \"proposal is paused\""
                        }
                      ],
                      "id": 3024,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1649:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1649:61:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3031,
                  "nodeType": "ExpressionStatement",
                  "src": "1649:61:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1729:56:9",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3036,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3002,
                              "src": "1765:11:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3037,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3004,
                              "src": "1778:6:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 3033,
                                "name": "daoStorage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1181,
                                "src": "1730:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                  "typeString": "function () view returns (contract DaoStorage)"
                                }
                              },
                              "id": 3034,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1730:12:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_DaoStorage_$17874",
                                "typeString": "contract DaoStorage"
                              }
                            },
                            "id": 3035,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "readIfMilestoneFunded",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16982,
                            "src": "1730:34:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (bytes32,uint256) view external returns (bool)"
                            }
                          },
                          "id": 3038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1730:55:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d696c6573746f6e6520616c72656164792066756e646564",
                        "id": 3040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1787:26:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f12822050246b8dd01796406d29099eba4625842d948fa3904e2fd83ed6161ac",
                          "typeString": "literal_string \"milestone already funded\""
                        },
                        "value": "milestone already funded"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f12822050246b8dd01796406d29099eba4625842d948fa3904e2fd83ed6161ac",
                          "typeString": "literal_string \"milestone already funded\""
                        }
                      ],
                      "id": 3032,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1721:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1721:93:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3042,
                  "nodeType": "ExpressionStatement",
                  "src": "1721:93:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3047,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3002,
                            "src": "1871:11:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3048,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3004,
                            "src": "1884:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 3044,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1181,
                              "src": "1833:10:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 3045,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1833:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 3046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readProposalVotingResult",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16294,
                          "src": "1833:37:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256) view external returns (bool)"
                          }
                        },
                        "id": 3049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1833:58:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "726573756c74206e6f742070617373",
                        "id": 3050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1893:17:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_016c9f4010486507715d7e776b34363972f96a4044d285dfc9354eee42a77a6d",
                          "typeString": "literal_string \"result not pass\""
                        },
                        "value": "result not pass"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_016c9f4010486507715d7e776b34363972f96a4044d285dfc9354eee42a77a6d",
                          "typeString": "literal_string \"result not pass\""
                        }
                      ],
                      "id": 3043,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1825:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3051,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1825:86:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3052,
                  "nodeType": "ExpressionStatement",
                  "src": "1825:86:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3057,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3002,
                            "src": "1952:11:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3058,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3004,
                            "src": "1965:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 3054,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1181,
                              "src": "1929:10:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 3055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1929:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 3056,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isClaimed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16890,
                          "src": "1929:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256) view external returns (bool)"
                          }
                        },
                        "id": 3059,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1929:43:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "726573756c74206e6f7420636c61696d6564",
                        "id": 3060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1974:20:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_bb549dfd8e850d0a564e1647b9739a047b06356e75e8944ac33a54914127b337",
                          "typeString": "literal_string \"result not claimed\""
                        },
                        "value": "result not claimed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_bb549dfd8e850d0a564e1647b9739a047b06356e75e8944ac33a54914127b337",
                          "typeString": "literal_string \"result not claimed\""
                        }
                      ],
                      "id": 3053,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1921:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1921:74:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "1921:74:9"
                },
                {
                  "assignments": [
                    3064
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3064,
                      "name": "_funding",
                      "nodeType": "VariableDeclaration",
                      "scope": 3094,
                      "src": "2006:16:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3063,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2006:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3071,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3068,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3002,
                        "src": "2060:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3069,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3004,
                        "src": "2073:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 3065,
                          "name": "daoStorage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1181,
                          "src": "2025:10:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                            "typeString": "function () view returns (contract DaoStorage)"
                          }
                        },
                        "id": 3066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2025:12:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DaoStorage_$17874",
                          "typeString": "contract DaoStorage"
                        }
                      },
                      "id": 3067,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readProposalMilestone",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16756,
                      "src": "2025:34:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (bytes32,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 3070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2025:55:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2006:74:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3075,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3002,
                        "src": "2123:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3076,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3004,
                        "src": "2136:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 3072,
                          "name": "daoStorage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1181,
                          "src": "2091:10:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                            "typeString": "function () view returns (contract DaoStorage)"
                          }
                        },
                        "id": 3073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2091:12:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DaoStorage_$17874",
                          "typeString": "contract DaoStorage"
                        }
                      },
                      "id": 3074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setMilestoneFunded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 17873,
                      "src": "2091:31:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256) external"
                      }
                    },
                    "id": 3077,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2091:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3078,
                  "nodeType": "ExpressionStatement",
                  "src": "2091:52:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3084,
                        "name": "_funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3064,
                        "src": "2174:8:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3079,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26182,
                          "src": "2154:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2154:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3083,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2154:19:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2154:29:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3086,
                  "nodeType": "ExpressionStatement",
                  "src": "2154:29:9"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3088,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3002,
                        "src": "2212:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3089,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3004,
                        "src": "2225:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3090,
                        "name": "_funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3064,
                        "src": "2233:8:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3087,
                      "name": "ClaimFunding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2955,
                      "src": "2199:12:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256)"
                      }
                    },
                    "id": 3091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2199:43:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3092,
                  "nodeType": "EmitStatement",
                  "src": "2194:48:9"
                }
              ]
            },
            "documentation": "@notice Call function to claim the ETH funding for a certain milestone\n@dev Note that the proposer can do this anytime, even in the locking phase\n@param _proposalId ID of the proposal\n@param _index Index of the proposal voting round that they got passed, which is also the same as the milestone index",
            "id": 3094,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "claimFunding",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3002,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3094,
                  "src": "1396:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3001,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1396:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3004,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3094,
                  "src": "1417:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3003,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1417:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1395:37:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3006,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1452:0:9"
            },
            "scope": 3190,
            "src": "1374:875:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3121,
              "nodeType": "Block",
              "src": "2622:180:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 3105,
                                "name": "CONTRACT_DAO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1346,
                                "src": "2656:12:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3106,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "2670:26:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3107,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "2698:11:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 3108,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2655:55:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 3104,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "2640:14:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 3109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2640:71:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3103,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2632:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2632:80:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3111,
                  "nodeType": "ExpressionStatement",
                  "src": "2632:80:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3113,
                        "name": "_receiver",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3096,
                        "src": "2747:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3114,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3098,
                        "src": "2758:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3112,
                      "name": "refundCollateralInternal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3144,
                      "src": "2722:24:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 3115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2722:48:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3116,
                  "nodeType": "ExpressionStatement",
                  "src": "2722:48:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3117,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3101,
                      "src": "2780:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3118,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2791:4:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2780:15:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3120,
                  "nodeType": "ExpressionStatement",
                  "src": "2780:15:9"
                }
              ]
            },
            "documentation": "@notice Function to refund the collateral to _receiver\n@dev Can only be called from the Dao contract\n@param _receiver The receiver of the funds\n@return {\n\"_success\": \"Boolean, true if refund was successful\"\n}",
            "id": 3122,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "refundCollateral",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3096,
                  "name": "_receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 3122,
                  "src": "2531:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3095,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2531:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3098,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3122,
                  "src": "2550:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3097,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2550:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2530:40:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3102,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3101,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 3122,
                  "src": "2603:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3100,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2603:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2602:15:9"
            },
            "scope": 3190,
            "src": "2505:297:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3143,
              "nodeType": "Block",
              "src": "2903:146:9",
              "statements": [
                {
                  "assignments": [
                    3130
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3130,
                      "name": "_collateralAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 3144,
                      "src": "2913:25:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3129,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2913:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3136,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3134,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3126,
                        "src": "2983:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 3131,
                          "name": "daoStorage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1181,
                          "src": "2941:10:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                            "typeString": "function () view returns (contract DaoStorage)"
                          }
                        },
                        "id": 3132,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2941:12:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DaoStorage_$17874",
                          "typeString": "contract DaoStorage"
                        }
                      },
                      "id": 3133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readProposalCollateralAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16925,
                      "src": "2941:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view external returns (uint256)"
                      }
                    },
                    "id": 3135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2941:54:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2913:82:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3140,
                        "name": "_collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3130,
                        "src": "3024:17:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3137,
                        "name": "_receiver",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3124,
                        "src": "3005:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3005:18:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3005:37:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3142,
                  "nodeType": "ExpressionStatement",
                  "src": "3005:37:9"
                }
              ]
            },
            "documentation": null,
            "id": 3144,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "refundCollateralInternal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3124,
                  "name": "_receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "2842:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3123,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2842:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3126,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "2861:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3125,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2861:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2841:40:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3128,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2903:0:9"
            },
            "scope": 3190,
            "src": "2808:241:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3168,
              "nodeType": "Block",
              "src": "3287:169:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3151,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "3315:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 3150,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "3305:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 3152,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3305:23:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3149,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3297:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3297:32:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3154,
                  "nodeType": "ExpressionStatement",
                  "src": "3297:32:9"
                },
                {
                  "assignments": [
                    3156
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3156,
                      "name": "_remainingBalance",
                      "nodeType": "VariableDeclaration",
                      "scope": 3169,
                      "src": "3339:25:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3155,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3339:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3161,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3158,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26267,
                          "src": "3375:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoFundingManager_$3190",
                            "typeString": "contract DaoFundingManager"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_DaoFundingManager_$3190",
                            "typeString": "contract DaoFundingManager"
                          }
                        ],
                        "id": 3157,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3367:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 3159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3367:13:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 3160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "balance",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "3367:21:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3339:49:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3165,
                        "name": "_remainingBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3156,
                        "src": "3431:17:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3162,
                        "name": "_destinationForDaoFunds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3146,
                        "src": "3398:23:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3164,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3398:32:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3398:51:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3167,
                  "nodeType": "ExpressionStatement",
                  "src": "3398:51:9"
                }
              ]
            },
            "documentation": "@notice Function to move funds to a new DAO\n@param _destinationForDaoFunds Ethereum contract address of the new DaoFundingManager",
            "id": 3169,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "moveFundsToNewDao",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3146,
                  "name": "_destinationForDaoFunds",
                  "nodeType": "VariableDeclaration",
                  "scope": 3169,
                  "src": "3235:31:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3235:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3234:33:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3148,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3287:0:9"
            },
            "scope": 3190,
            "src": "3208:248:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3188,
              "nodeType": "Block",
              "src": "3715:136:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 3176,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3173,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26182,
                                  "src": "3747:3:9",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3174,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "3747:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3175,
                                "name": "FUNDING_SOURCE",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2947,
                                "src": "3761:14:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "3747:28:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3177,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3746:30:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 3183,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3178,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26182,
                                  "src": "3793:3:9",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3179,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "3793:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3181,
                                    "name": "CONTRACT_DAO",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1346,
                                    "src": "3820:12:9",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 3180,
                                  "name": "get_contract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 18627,
                                  "src": "3807:12:9",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                    "typeString": "function (bytes32) view returns (address)"
                                  }
                                },
                                "id": 3182,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3807:26:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "3793:40:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3184,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3792:42:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3746:88:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3172,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3725:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3725:119:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3187,
                  "nodeType": "ExpressionStatement",
                  "src": "3725:119:9"
                }
              ]
            },
            "documentation": "@notice Payable fallback function to receive ETH funds from DigixDAO crowdsale contract\n@dev this contract can only receive funds from FUNDING_SOURCE address or CONTRACT_DAO (when proposal is created)",
            "id": 3189,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3170,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3695:2:9"
            },
            "payable": true,
            "returnParameters": {
              "id": 3171,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3715:0:9"
            },
            "scope": 3190,
            "src": "3686:165:9",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 3191,
        "src": "148:3705:9"
      }
    ],
    "src": "0:3854:9"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/interactive/DaoFundingManager.sol",
    "exportedSymbols": {
      "DaoFundingManager": [
        3190
      ]
    },
    "id": 3191,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2941,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:9"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommon.sol",
        "file": "../common/DaoCommon.sol",
        "id": 2942,
        "nodeType": "ImportDirective",
        "scope": 3191,
        "sourceUnit": 885,
        "src": "26:33:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/interactive/Dao.sol",
        "file": "./Dao.sol",
        "id": 2943,
        "nodeType": "ImportDirective",
        "scope": 3191,
        "sourceUnit": 2940,
        "src": "60:19:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2944,
              "name": "DaoCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 884,
              "src": "178:9:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoCommon_$884",
                "typeString": "contract DaoCommon"
              }
            },
            "id": 2945,
            "nodeType": "InheritanceSpecifier",
            "src": "178:9:9"
          }
        ],
        "contractDependencies": [
          884,
          1282,
          1629,
          1868,
          1960,
          18628
        ],
        "contractKind": "contract",
        "documentation": "@title Contract to manage DAO funds\n@author Digix Holdings",
        "fullyImplemented": true,
        "id": 3190,
        "linearizedBaseContracts": [
          3190,
          884,
          1282,
          1960,
          1868,
          1629,
          18628
        ],
        "name": "DaoFundingManager",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2947,
            "name": "FUNDING_SOURCE",
            "nodeType": "VariableDeclaration",
            "scope": 3190,
            "src": "195:29:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2946,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "195:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2955,
            "name": "ClaimFunding",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2949,
                  "indexed": true,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "250:27:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2948,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2951,
                  "indexed": true,
                  "name": "_votingRound",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "279:28:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2950,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "279:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2953,
                  "indexed": false,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "309:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2952,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "309:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "249:77:9"
            },
            "src": "231:96:9"
          },
          {
            "body": {
              "id": 2973,
              "nodeType": "Block",
              "src": "395:112:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2964,
                            "name": "CONTRACT_DAO_FUNDING_MANAGER",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "418:28:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2965,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2957,
                            "src": "448:9:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 2963,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "413:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 2966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "413:45:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2962,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "405:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2967,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "405:54:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2968,
                  "nodeType": "ExpressionStatement",
                  "src": "405:54:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2969,
                      "name": "FUNDING_SOURCE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2947,
                      "src": "469:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2970,
                      "name": "_fundingSource",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2959,
                      "src": "486:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "469:31:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2972,
                  "nodeType": "ExpressionStatement",
                  "src": "469:31:9"
                }
              ]
            },
            "documentation": null,
            "id": 2974,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2957,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 2974,
                  "src": "345:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2956,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "345:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2959,
                  "name": "_fundingSource",
                  "nodeType": "VariableDeclaration",
                  "scope": 2974,
                  "src": "364:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2958,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "364:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "344:43:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2961,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "395:0:9"
            },
            "scope": 3190,
            "src": "333:174:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2987,
              "nodeType": "Block",
              "src": "594:60:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2979,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2977,
                      "src": "604:9:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Dao_$2939",
                        "typeString": "contract Dao"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2982,
                              "name": "CONTRACT_DAO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1346,
                              "src": "633:12:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2981,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "620:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "620:26:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2980,
                        "name": "Dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2939,
                        "src": "616:3:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Dao_$2939_$",
                          "typeString": "type(contract Dao)"
                        }
                      },
                      "id": 2984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "616:31:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Dao_$2939",
                        "typeString": "contract Dao"
                      }
                    },
                    "src": "604:43:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Dao_$2939",
                      "typeString": "contract Dao"
                    }
                  },
                  "id": 2986,
                  "nodeType": "ExpressionStatement",
                  "src": "604:43:9"
                }
              ]
            },
            "documentation": null,
            "id": 2988,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "dao",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2975,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "525:2:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2978,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2977,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 2988,
                  "src": "575:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Dao_$2939",
                    "typeString": "contract Dao"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 2976,
                    "name": "Dao",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2939,
                    "src": "575:3:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Dao_$2939",
                      "typeString": "contract Dao"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "574:15:9"
            },
            "scope": 3190,
            "src": "513:141:9",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2999,
              "nodeType": "Block",
              "src": "988:48:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2995,
                      "name": "FUNDING_SOURCE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2947,
                      "src": "998:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2996,
                      "name": "_fundingSource",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2990,
                      "src": "1015:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "998:31:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "998:31:9"
                }
              ]
            },
            "documentation": "@notice Function to set the source of DigixDAO funding\n@dev only this source address will be able to fund the DaoFundingManager contract, along with CONTRACT_DAO\n@param _fundingSource address of the funding source",
            "id": 3000,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 2993,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2992,
                  "name": "if_root",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1889,
                  "src": "974:7:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "974:9:9"
              }
            ],
            "name": "setFundingSource",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2990,
                  "name": "_fundingSource",
                  "nodeType": "VariableDeclaration",
                  "scope": 3000,
                  "src": "927:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2989,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "926:24:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2994,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "988:0:9"
            },
            "scope": 3190,
            "src": "901:135:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3093,
              "nodeType": "Block",
              "src": "1452:797:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3011,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26182,
                              "src": "1505:3:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3012,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1505:10:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 3008,
                              "name": "identity_storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1959,
                              "src": "1470:16:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoIdentityStorage_$14083_$",
                                "typeString": "function () view returns (contract DaoIdentityStorage)"
                              }
                            },
                            "id": 3009,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1470:18:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoIdentityStorage_$14083",
                              "typeString": "contract DaoIdentityStorage"
                            }
                          },
                          "id": 3010,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_kyc_approved",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14082,
                          "src": "1470:34:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 3013,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1470:46:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f206b7963",
                        "id": 3014,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1518:8:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2d231808dfed627d6a67ce2ce452a0ac9d6a64ee12ea4fa53ebfe7c269063473",
                          "typeString": "literal_string \"no kyc\""
                        },
                        "value": "no kyc"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2d231808dfed627d6a67ce2ce452a0ac9d6a64ee12ea4fa53ebfe7c269063473",
                          "typeString": "literal_string \"no kyc\""
                        }
                      ],
                      "id": 3007,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1462:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3015,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1462:65:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3016,
                  "nodeType": "ExpressionStatement",
                  "src": "1462:65:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3019,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3002,
                            "src": "1560:11:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 3018,
                          "name": "isFromProposer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 101,
                          "src": "1545:14:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 3020,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1545:27:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f742070726f706f736572",
                        "id": 3021,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1574:14:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_53bcb86603a85f45a1f15a1b19273b62632d0892644eb35b488d68d4ba6f76dc",
                          "typeString": "literal_string \"not proposer\""
                        },
                        "value": "not proposer"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_53bcb86603a85f45a1f15a1b19273b62632d0892644eb35b488d68d4ba6f76dc",
                          "typeString": "literal_string \"not proposer\""
                        }
                      ],
                      "id": 3017,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1537:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1537:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3023,
                  "nodeType": "ExpressionStatement",
                  "src": "1537:52:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1657:30:9",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3026,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3002,
                              "src": "1675:11:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3025,
                            "name": "isProposalPaused",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 82,
                            "src": "1658:16:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (bytes32) view returns (bool)"
                            }
                          },
                          "id": 3027,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1658:29:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "70726f706f73616c20697320706175736564",
                        "id": 3029,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1689:20:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ff973f6db426e83b4a17cd492bff97ceac49cf8a2652f0ed3a09ec0f5c4066c0",
                          "typeString": "literal_string \"proposal is paused\""
                        },
                        "value": "proposal is paused"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ff973f6db426e83b4a17cd492bff97ceac49cf8a2652f0ed3a09ec0f5c4066c0",
                          "typeString": "literal_string \"proposal is paused\""
                        }
                      ],
                      "id": 3024,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1649:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1649:61:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3031,
                  "nodeType": "ExpressionStatement",
                  "src": "1649:61:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1729:56:9",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3036,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3002,
                              "src": "1765:11:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3037,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3004,
                              "src": "1778:6:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 3033,
                                "name": "daoStorage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1181,
                                "src": "1730:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                  "typeString": "function () view returns (contract DaoStorage)"
                                }
                              },
                              "id": 3034,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1730:12:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_DaoStorage_$17874",
                                "typeString": "contract DaoStorage"
                              }
                            },
                            "id": 3035,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "readIfMilestoneFunded",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16982,
                            "src": "1730:34:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (bytes32,uint256) view external returns (bool)"
                            }
                          },
                          "id": 3038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1730:55:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d696c6573746f6e6520616c72656164792066756e646564",
                        "id": 3040,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1787:26:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f12822050246b8dd01796406d29099eba4625842d948fa3904e2fd83ed6161ac",
                          "typeString": "literal_string \"milestone already funded\""
                        },
                        "value": "milestone already funded"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f12822050246b8dd01796406d29099eba4625842d948fa3904e2fd83ed6161ac",
                          "typeString": "literal_string \"milestone already funded\""
                        }
                      ],
                      "id": 3032,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1721:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1721:93:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3042,
                  "nodeType": "ExpressionStatement",
                  "src": "1721:93:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3047,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3002,
                            "src": "1871:11:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3048,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3004,
                            "src": "1884:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 3044,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1181,
                              "src": "1833:10:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 3045,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1833:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 3046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readProposalVotingResult",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16294,
                          "src": "1833:37:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256) view external returns (bool)"
                          }
                        },
                        "id": 3049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1833:58:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "726573756c74206e6f742070617373",
                        "id": 3050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1893:17:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_016c9f4010486507715d7e776b34363972f96a4044d285dfc9354eee42a77a6d",
                          "typeString": "literal_string \"result not pass\""
                        },
                        "value": "result not pass"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_016c9f4010486507715d7e776b34363972f96a4044d285dfc9354eee42a77a6d",
                          "typeString": "literal_string \"result not pass\""
                        }
                      ],
                      "id": 3043,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1825:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3051,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1825:86:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3052,
                  "nodeType": "ExpressionStatement",
                  "src": "1825:86:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3057,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3002,
                            "src": "1952:11:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3058,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3004,
                            "src": "1965:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 3054,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1181,
                              "src": "1929:10:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 3055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1929:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 3056,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isClaimed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16890,
                          "src": "1929:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256) view external returns (bool)"
                          }
                        },
                        "id": 3059,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1929:43:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "726573756c74206e6f7420636c61696d6564",
                        "id": 3060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1974:20:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_bb549dfd8e850d0a564e1647b9739a047b06356e75e8944ac33a54914127b337",
                          "typeString": "literal_string \"result not claimed\""
                        },
                        "value": "result not claimed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_bb549dfd8e850d0a564e1647b9739a047b06356e75e8944ac33a54914127b337",
                          "typeString": "literal_string \"result not claimed\""
                        }
                      ],
                      "id": 3053,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "1921:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1921:74:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "1921:74:9"
                },
                {
                  "assignments": [
                    3064
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3064,
                      "name": "_funding",
                      "nodeType": "VariableDeclaration",
                      "scope": 3094,
                      "src": "2006:16:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3063,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2006:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3071,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3068,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3002,
                        "src": "2060:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3069,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3004,
                        "src": "2073:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 3065,
                          "name": "daoStorage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1181,
                          "src": "2025:10:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                            "typeString": "function () view returns (contract DaoStorage)"
                          }
                        },
                        "id": 3066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2025:12:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DaoStorage_$17874",
                          "typeString": "contract DaoStorage"
                        }
                      },
                      "id": 3067,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readProposalMilestone",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16756,
                      "src": "2025:34:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (bytes32,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 3070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2025:55:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2006:74:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3075,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3002,
                        "src": "2123:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3076,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3004,
                        "src": "2136:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 3072,
                          "name": "daoStorage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1181,
                          "src": "2091:10:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                            "typeString": "function () view returns (contract DaoStorage)"
                          }
                        },
                        "id": 3073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2091:12:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DaoStorage_$17874",
                          "typeString": "contract DaoStorage"
                        }
                      },
                      "id": 3074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setMilestoneFunded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 17873,
                      "src": "2091:31:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256) external"
                      }
                    },
                    "id": 3077,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2091:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3078,
                  "nodeType": "ExpressionStatement",
                  "src": "2091:52:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3084,
                        "name": "_funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3064,
                        "src": "2174:8:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3079,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26182,
                          "src": "2154:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2154:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3083,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2154:19:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2154:29:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3086,
                  "nodeType": "ExpressionStatement",
                  "src": "2154:29:9"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3088,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3002,
                        "src": "2212:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3089,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3004,
                        "src": "2225:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3090,
                        "name": "_funding",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3064,
                        "src": "2233:8:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3087,
                      "name": "ClaimFunding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2955,
                      "src": "2199:12:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256)"
                      }
                    },
                    "id": 3091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2199:43:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3092,
                  "nodeType": "EmitStatement",
                  "src": "2194:48:9"
                }
              ]
            },
            "documentation": "@notice Call function to claim the ETH funding for a certain milestone\n@dev Note that the proposer can do this anytime, even in the locking phase\n@param _proposalId ID of the proposal\n@param _index Index of the proposal voting round that they got passed, which is also the same as the milestone index",
            "id": 3094,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "claimFunding",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3002,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3094,
                  "src": "1396:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3001,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1396:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3004,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3094,
                  "src": "1417:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3003,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1417:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1395:37:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3006,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1452:0:9"
            },
            "scope": 3190,
            "src": "1374:875:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3121,
              "nodeType": "Block",
              "src": "2622:180:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 3105,
                                "name": "CONTRACT_DAO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1346,
                                "src": "2656:12:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3106,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "2670:26:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 3107,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "2698:11:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 3108,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2655:55:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 3104,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "2640:14:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 3109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2640:71:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3103,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2632:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2632:80:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3111,
                  "nodeType": "ExpressionStatement",
                  "src": "2632:80:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3113,
                        "name": "_receiver",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3096,
                        "src": "2747:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3114,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3098,
                        "src": "2758:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3112,
                      "name": "refundCollateralInternal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3144,
                      "src": "2722:24:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 3115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2722:48:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3116,
                  "nodeType": "ExpressionStatement",
                  "src": "2722:48:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3117,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3101,
                      "src": "2780:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3118,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2791:4:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2780:15:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3120,
                  "nodeType": "ExpressionStatement",
                  "src": "2780:15:9"
                }
              ]
            },
            "documentation": "@notice Function to refund the collateral to _receiver\n@dev Can only be called from the Dao contract\n@param _receiver The receiver of the funds\n@return {\n\"_success\": \"Boolean, true if refund was successful\"\n}",
            "id": 3122,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "refundCollateral",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3096,
                  "name": "_receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 3122,
                  "src": "2531:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3095,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2531:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3098,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3122,
                  "src": "2550:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3097,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2550:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2530:40:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3102,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3101,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 3122,
                  "src": "2603:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3100,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2603:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2602:15:9"
            },
            "scope": 3190,
            "src": "2505:297:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3143,
              "nodeType": "Block",
              "src": "2903:146:9",
              "statements": [
                {
                  "assignments": [
                    3130
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3130,
                      "name": "_collateralAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 3144,
                      "src": "2913:25:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3129,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2913:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3136,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3134,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3126,
                        "src": "2983:11:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 3131,
                          "name": "daoStorage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1181,
                          "src": "2941:10:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                            "typeString": "function () view returns (contract DaoStorage)"
                          }
                        },
                        "id": 3132,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2941:12:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DaoStorage_$17874",
                          "typeString": "contract DaoStorage"
                        }
                      },
                      "id": 3133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readProposalCollateralAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16925,
                      "src": "2941:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view external returns (uint256)"
                      }
                    },
                    "id": 3135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2941:54:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2913:82:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3140,
                        "name": "_collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3130,
                        "src": "3024:17:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3137,
                        "name": "_receiver",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3124,
                        "src": "3005:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3005:18:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3005:37:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3142,
                  "nodeType": "ExpressionStatement",
                  "src": "3005:37:9"
                }
              ]
            },
            "documentation": null,
            "id": 3144,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "refundCollateralInternal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3124,
                  "name": "_receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "2842:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3123,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2842:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3126,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3144,
                  "src": "2861:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3125,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2861:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2841:40:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3128,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2903:0:9"
            },
            "scope": 3190,
            "src": "2808:241:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3168,
              "nodeType": "Block",
              "src": "3287:169:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3151,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "3315:12:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 3150,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "3305:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 3152,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3305:23:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3149,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3297:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3297:32:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3154,
                  "nodeType": "ExpressionStatement",
                  "src": "3297:32:9"
                },
                {
                  "assignments": [
                    3156
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3156,
                      "name": "_remainingBalance",
                      "nodeType": "VariableDeclaration",
                      "scope": 3169,
                      "src": "3339:25:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3155,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3339:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3161,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3158,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26267,
                          "src": "3375:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoFundingManager_$3190",
                            "typeString": "contract DaoFundingManager"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_DaoFundingManager_$3190",
                            "typeString": "contract DaoFundingManager"
                          }
                        ],
                        "id": 3157,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3367:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 3159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3367:13:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 3160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "balance",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "3367:21:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3339:49:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3165,
                        "name": "_remainingBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3156,
                        "src": "3431:17:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3162,
                        "name": "_destinationForDaoFunds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3146,
                        "src": "3398:23:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3164,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3398:32:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3398:51:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3167,
                  "nodeType": "ExpressionStatement",
                  "src": "3398:51:9"
                }
              ]
            },
            "documentation": "@notice Function to move funds to a new DAO\n@param _destinationForDaoFunds Ethereum contract address of the new DaoFundingManager",
            "id": 3169,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "moveFundsToNewDao",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3147,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3146,
                  "name": "_destinationForDaoFunds",
                  "nodeType": "VariableDeclaration",
                  "scope": 3169,
                  "src": "3235:31:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3235:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3234:33:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 3148,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3287:0:9"
            },
            "scope": 3190,
            "src": "3208:248:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3188,
              "nodeType": "Block",
              "src": "3715:136:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 3176,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3173,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26182,
                                  "src": "3747:3:9",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3174,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "3747:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3175,
                                "name": "FUNDING_SOURCE",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2947,
                                "src": "3761:14:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "3747:28:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3177,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3746:30:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 3183,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3178,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26182,
                                  "src": "3793:3:9",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3179,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "3793:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3181,
                                    "name": "CONTRACT_DAO",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1346,
                                    "src": "3820:12:9",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 3180,
                                  "name": "get_contract",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 18627,
                                  "src": "3807:12:9",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                    "typeString": "function (bytes32) view returns (address)"
                                  }
                                },
                                "id": 3182,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3807:26:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "3793:40:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 3184,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3792:42:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3746:88:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3172,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3725:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3725:119:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3187,
                  "nodeType": "ExpressionStatement",
                  "src": "3725:119:9"
                }
              ]
            },
            "documentation": "@notice Payable fallback function to receive ETH funds from DigixDAO crowdsale contract\n@dev this contract can only receive funds from FUNDING_SOURCE address or CONTRACT_DAO (when proposal is created)",
            "id": 3189,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3170,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3695:2:9"
            },
            "payable": true,
            "returnParameters": {
              "id": 3171,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3715:0:9"
            },
            "scope": 3190,
            "src": "3686:165:9",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 3191,
        "src": "148:3705:9"
      }
    ],
    "src": "0:3854:9"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {},
      "address": "0xda0cd8f81fbc1b58362c785b2227be44a7cedb50",
      "transactionHash": "0x656ac8c437651f41f41ff03f3f69c372f326405dc377396173a4efcf8502d240"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:49.667Z"
}