{
  "contractName": "PublicSalePoD",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getBalanceOfWei",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "resetWeiBalance",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "status",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEndTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTokenPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "finalize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "wallet",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCapOfWei",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getBalanceOfToken",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPoDEnded",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCapOfToken",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPoDStarted",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "tokenMultiplier",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_wallet",
          "type": "address"
        },
        {
          "name": "_tokenDecimals",
          "type": "uint8"
        },
        {
          "name": "_startTimeOfPoD",
          "type": "uint256"
        },
        {
          "name": "_capOfToken",
          "type": "uint256"
        },
        {
          "name": "_capOfWei",
          "type": "uint256"
        }
      ],
      "name": "init",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getStartTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "donate",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "period",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Donated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "time",
          "type": "uint256"
        }
      ],
      "name": "Ended",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x606060405234156200001057600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548160ff021916908360028111156200007057fe5b0217905550600060078190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606060405190810160405280603481526020017f5075626c696353616c65506f4420737472617465677920746f6b656e2070726981526020017f6365203d20636170546f6b656e2f636170576569000000000000000000000000815250600190805190602001906200013292919062000187565b506040805190810160405280600581526020017f302e392e33000000000000000000000000000000000000000000000000000000815250600290805190602001906200018092919062000187565b5062000236565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ca57805160ff1916838001178555620001fb565b82800160010185558215620001fb579182015b82811115620001fa578251825591602001919060010190620001dd565b5b5090506200020a91906200020e565b5090565b6200023391905b808211156200022f57600081600090555060010162000215565b5090565b90565b6110fe80620002466000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461012857806309fc93c1146101b6578063112ed3f514610203578063200d2ed214610254578063439f5ac21461028b5780634b94f50e146102b45780634bb278f3146102dd578063521eb273146102f257806354fd4d50146103475780636ccce7a8146103d557806383786f8c146103fe5780638da5cb5b1461044b5780638f85f92c146104a057806397722acf146104cd5780639b3dfce0146104f6578063ba3f5a1214610523578063c7d365b01461054c578063c828371e146105c4578063ed88c68e146105ed578063ef78d4fd1461060f578063f2fde38b14610638575b610125610671565b50005b341561013357600080fd5b61013b6107dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017b578082015181840152602081019050610160565b50505050905090810190601f1680156101a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c157600080fd5b6101ed600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061087a565b6040518082815260200191505060405180910390f35b341561020e57600080fd5b61023a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108c3565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b6102676109a1565b6040518082600281111561027757fe5b60ff16815260200191505060405180910390f35b341561029657600080fd5b61029e6109b4565b6040518082815260200191505060405180910390f35b34156102bf57600080fd5b6102c76109be565b6040518082815260200191505060405180910390f35b34156102e857600080fd5b6102f06109c8565b005b34156102fd57600080fd5b610305610a86565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561035257600080fd5b61035a610aac565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039a57808201518184015260208101905061037f565b50505050905090810190601f1680156103c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e057600080fd5b6103e8610b4a565b6040518082815260200191505060405180910390f35b341561040957600080fd5b610435600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b54565b6040518082815260200191505060405180910390f35b341561045657600080fd5b61045e610bae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104ab57600080fd5b6104b3610bd3565b604051808215151515815260200191505060405180910390f35b34156104d857600080fd5b6104e0610c13565b6040518082815260200191505060405180910390f35b341561050157600080fd5b610509610c1d565b604051808215151515815260200191505060405180910390f35b341561052e57600080fd5b610536610c5e565b6040518082815260200191505060405180910390f35b341561055757600080fd5b6105aa600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff16906020019091908035906020019091908035906020019091908035906020019091905050610c64565b604051808215151515815260200191505060405180910390f35b34156105cf57600080fd5b6105d7610dd3565b6040518082815260200191505060405180910390f35b6105f5610671565b604051808215151515815260200191505060405180910390f35b341561061a57600080fd5b610622610ddd565b6040518082815260200191505060405180910390f35b341561064357600080fd5b61066f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610de3565b005b60006001600281111561068057fe5b600b60009054906101000a900460ff16600281111561069b57fe5b1415156106a757600080fd5b60045442101515156106b857600080fd5b6412a05f20003a111515156106cc57600080fd5b6000341115156106db57600080fd5b6106e433610f38565b151561074f57426005819055506002600b60006101000a81548160ff0219169083600281111561071057fe5b02179055507f601095663bda08ac0f932087ef2eb08e42e4bcd1927f3a8d9500f6ad2c5aef906005546040518082815260200191505060405180910390a15b6107643460075461109b90919063ffffffff16565b6007819055507f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e5433334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108725780601f1061084757610100808354040283529160200191610872565b820191906000526020600020905b81548152906001019060200180831161085557829003601f168201915b505050505081565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092057600080fd5b60028081111561092c57fe5b600b60009054906101000a900460ff16600281111561094757fe5b14151561095357600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050919050565b600b60009054906101000a900460ff1681565b6000600554905090565b6000600654905090565b600160028111156109d557fe5b600b60009054906101000a900460ff1660028111156109f057fe5b1415156109fc57600080fd5b610a13600d5460045461109b90919063ffffffff16565b42111515610a2057600080fd5b426005819055506002600b60006101000a81548160ff02191690836002811115610a4657fe5b02179055507f601095663bda08ac0f932087ef2eb08e42e4bcd1927f3a8d9500f6ad2c5aef906005546040518082815260200191505060405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b425780601f10610b1757610100808354040283529160200191610b42565b820191906000526020600020905b815481529060010190602001808311610b2557829003601f168201915b505050505081565b6000600954905090565b6000600654600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c5402811515610ba657fe5b049050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280811115610be157fe5b600b60009054906101000a900460ff166002811115610bfc57fe5b1415610c0b5760019050610c10565b600090505b90565b6000600854905090565b600060016002811115610c2c57fe5b600b60009054906101000a900460ff166002811115610c4757fe5b1415610c565760019050610c5b565b600090505b90565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc157600080fd5b60006002811115610cce57fe5b600b60009054906101000a900460ff166002811115610ce957fe5b141515610cf557600080fd5b60008673ffffffffffffffffffffffffffffffffffffffff1614151515610d1b57600080fd5b8360048190555085600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460ff16600a0a600c819055508260088190555081600981905550600854600954600c5402811515610d9157fe5b0460068190555062093a80600d819055506001600b60006101000a81548160ff02191690836002811115610dc157fe5b02179055506001905095945050505050565b6000600454905090565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e3e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e7a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610f52600d5460045461109b90919063ffffffff16565b4211151515610f6057600080fd5b610f776007546009546110b990919063ffffffff16565b9050803411151515610f8857600080fd5b610fda34600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109b90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561107f57600080fd5b803414156110905760009150611095565b600191505b50919050565b60008082840190508381101515156110af57fe5b8091505092915050565b60008282111515156110c757fe5b8183039050929150505600a165627a7a72305820127bbeb477620ff2adb2338777e5054f8bf4eef34652030d80b5d06aeaf346640029",
  "deployedBytecode": "0x60606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461012857806309fc93c1146101b6578063112ed3f514610203578063200d2ed214610254578063439f5ac21461028b5780634b94f50e146102b45780634bb278f3146102dd578063521eb273146102f257806354fd4d50146103475780636ccce7a8146103d557806383786f8c146103fe5780638da5cb5b1461044b5780638f85f92c146104a057806397722acf146104cd5780639b3dfce0146104f6578063ba3f5a1214610523578063c7d365b01461054c578063c828371e146105c4578063ed88c68e146105ed578063ef78d4fd1461060f578063f2fde38b14610638575b610125610671565b50005b341561013357600080fd5b61013b6107dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017b578082015181840152602081019050610160565b50505050905090810190601f1680156101a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c157600080fd5b6101ed600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061087a565b6040518082815260200191505060405180910390f35b341561020e57600080fd5b61023a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108c3565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b6102676109a1565b6040518082600281111561027757fe5b60ff16815260200191505060405180910390f35b341561029657600080fd5b61029e6109b4565b6040518082815260200191505060405180910390f35b34156102bf57600080fd5b6102c76109be565b6040518082815260200191505060405180910390f35b34156102e857600080fd5b6102f06109c8565b005b34156102fd57600080fd5b610305610a86565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561035257600080fd5b61035a610aac565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039a57808201518184015260208101905061037f565b50505050905090810190601f1680156103c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e057600080fd5b6103e8610b4a565b6040518082815260200191505060405180910390f35b341561040957600080fd5b610435600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b54565b6040518082815260200191505060405180910390f35b341561045657600080fd5b61045e610bae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104ab57600080fd5b6104b3610bd3565b604051808215151515815260200191505060405180910390f35b34156104d857600080fd5b6104e0610c13565b6040518082815260200191505060405180910390f35b341561050157600080fd5b610509610c1d565b604051808215151515815260200191505060405180910390f35b341561052e57600080fd5b610536610c5e565b6040518082815260200191505060405180910390f35b341561055757600080fd5b6105aa600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff16906020019091908035906020019091908035906020019091908035906020019091905050610c64565b604051808215151515815260200191505060405180910390f35b34156105cf57600080fd5b6105d7610dd3565b6040518082815260200191505060405180910390f35b6105f5610671565b604051808215151515815260200191505060405180910390f35b341561061a57600080fd5b610622610ddd565b6040518082815260200191505060405180910390f35b341561064357600080fd5b61066f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610de3565b005b60006001600281111561068057fe5b600b60009054906101000a900460ff16600281111561069b57fe5b1415156106a757600080fd5b60045442101515156106b857600080fd5b6412a05f20003a111515156106cc57600080fd5b6000341115156106db57600080fd5b6106e433610f38565b151561074f57426005819055506002600b60006101000a81548160ff0219169083600281111561071057fe5b02179055507f601095663bda08ac0f932087ef2eb08e42e4bcd1927f3a8d9500f6ad2c5aef906005546040518082815260200191505060405180910390a15b6107643460075461109b90919063ffffffff16565b6007819055507f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e5433334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108725780601f1061084757610100808354040283529160200191610872565b820191906000526020600020905b81548152906001019060200180831161085557829003601f168201915b505050505081565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092057600080fd5b60028081111561092c57fe5b600b60009054906101000a900460ff16600281111561094757fe5b14151561095357600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050919050565b600b60009054906101000a900460ff1681565b6000600554905090565b6000600654905090565b600160028111156109d557fe5b600b60009054906101000a900460ff1660028111156109f057fe5b1415156109fc57600080fd5b610a13600d5460045461109b90919063ffffffff16565b42111515610a2057600080fd5b426005819055506002600b60006101000a81548160ff02191690836002811115610a4657fe5b02179055507f601095663bda08ac0f932087ef2eb08e42e4bcd1927f3a8d9500f6ad2c5aef906005546040518082815260200191505060405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b425780601f10610b1757610100808354040283529160200191610b42565b820191906000526020600020905b815481529060010190602001808311610b2557829003601f168201915b505050505081565b6000600954905090565b6000600654600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c5402811515610ba657fe5b049050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280811115610be157fe5b600b60009054906101000a900460ff166002811115610bfc57fe5b1415610c0b5760019050610c10565b600090505b90565b6000600854905090565b600060016002811115610c2c57fe5b600b60009054906101000a900460ff166002811115610c4757fe5b1415610c565760019050610c5b565b600090505b90565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc157600080fd5b60006002811115610cce57fe5b600b60009054906101000a900460ff166002811115610ce957fe5b141515610cf557600080fd5b60008673ffffffffffffffffffffffffffffffffffffffff1614151515610d1b57600080fd5b8360048190555085600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460ff16600a0a600c819055508260088190555081600981905550600854600954600c5402811515610d9157fe5b0460068190555062093a80600d819055506001600b60006101000a81548160ff02191690836002811115610dc157fe5b02179055506001905095945050505050565b6000600454905090565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e3e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e7a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610f52600d5460045461109b90919063ffffffff16565b4211151515610f6057600080fd5b610f776007546009546110b990919063ffffffff16565b9050803411151515610f8857600080fd5b610fda34600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109b90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561107f57600080fd5b803414156110905760009150611095565b600191505b50919050565b60008082840190508381101515156110af57fe5b8091505092915050565b60008282111515156110c757fe5b8183039050929150505600a165627a7a72305820127bbeb477620ff2adb2338777e5054f8bf4eef34652030d80b5d06aeaf346640029",
  "sourceMap": "533:2138:12:-;;;628:127;;;;;;;;603:10:9;595:5;;:18;;;;;;;;;;;;;;;;;;1077::10;1068:6;;:27;;;;;;;;;;;;;;;;;;;;;;;;1120:1;1101:16;:20;;;;1136:10;1127:6;;:19;;;;;;;;;;;;;;;;;;666:61:12;;;;;;;;;;;;;;;;;;;;;;;:4;:61;;;;;;;;;;;;:::i;:::-;;733:17;;;;;;;;;;;;;;;;;;:7;:17;;;;;;;;;;;;:::i;:::-;;533:2138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "533:2138:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3416:8:10;:6;:8::i;:::-;;533:2138:12;481:19:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2113:106:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1853:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2871:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2318:202:12;;;;;;;;;;;;;;530:21:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;504:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:97:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2524:145:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;334:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3215:129:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3018:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;568:30:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:612;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2734:85:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:520;;;;;;;;;;;;;;;;;;;;;;;;;;;602:21:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;928:169:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:520:10;1262:4;1293:17;1283:27;;;;;;;;:6;;;;;;;;;;;:27;;;;;;;;;1275:36;;;;;;;;1345:9;;1326:15;:28;;1318:37;;;;;;;;1428:11;1413;:26;;1405:35;;;;;;;;1467:1;1455:9;:13;1447:22;;;;;;;;1516:25;1530:10;1516:13;:25::i;:::-;1515:26;1511:114;;;1561:3;1551:7;:13;;;;1581:15;1572:6;;:24;;;;;;;;;;;;;;;;;;;;;;;;1604:14;1610:7;;1604:14;;;;;;;;;;;;;;;;;;1511:114;1650:31;1671:9;1650:16;;:20;;:31;;;;:::i;:::-;1631:16;:50;;;;1688:30;1696:10;1708:9;1688:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;1731:4;1724:11;;1220:520;:::o;481:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2113:106::-;2177:4;2196:11;:18;2208:5;2196:18;;;;;;;;;;;;;;;;2189:25;;2113:106;;;:::o;1853:201::-;1921:4;748:5:9;;;;;;;;;;;734:19;;:10;:19;;;726:28;;;;;;;;1952:15:10;1942:25;;;;;;;;:6;;;;;;;;;;;:25;;;;;;;;;1934:34;;;;;;;;2030:1;2009:11;:18;2021:5;2009:18;;;;;;;;;;;;;;;:22;;;;2045:4;2038:11;;1853:201;;;:::o;829:20::-;;;;;;;;;;;;;:::o;2871:81::-;2918:7;2940;;2933:14;;2871:81;:::o;2268:86::-;2317:7;2339:10;;2332:17;;2268:86;:::o;2318:202:12:-;2370:17;2360:27;;;;;;;;:6;;;;;;;;;;;:27;;;;;;;;;2352:36;;;;;;;;2421:21;2435:6;;2421:9;;:13;;:21;;;;:::i;:::-;2403:15;:39;2395:48;;;;;;;;2460:3;2450:7;:13;;;;2479:15;2470:6;;:24;;;;;;;;;;;;;;;;;;;;;;;;2501:14;2507:7;;2501:14;;;;;;;;;;;;;;;;;;2318:202::o;530:21:10:-;;;;;;;;;;;;;:::o;504:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2577:97::-;2624:7;2646:23;;2639:30;;2577:97;:::o;2524:145:12:-;2591:7;2654:10;;2632:11;:18;2644:5;2632:18;;;;;;;;;;;;;;;;2614:15;;:36;2613:51;;;;;;;;2606:58;;2524:145;;;:::o;334:20:9:-;;;;;;;;;;;;;:::o;3215:129:10:-;3261:4;3287:15;3277:25;;;;;;;;:6;;;;;;;;;;;:25;;;;;;;;;3273:48;;;3317:4;3310:11;;;;3273:48;3334:5;3327:12;;3215:129;;:::o;2416:101::-;2465:7;2487:25;;2480:32;;2416:101;:::o;3018:133::-;3066:4;3092:17;3082:27;;;;;;;;:6;;;;;;;;;;;:27;;;;;;;;;3078:50;;;3124:4;3117:11;;;;3078:50;3141:5;3134:12;;3018:133;;:::o;568:30:12:-;;;;:::o;1193:612::-;1367:4;748:5:9;;;;;;;;;;;734:19;;:10;:19;;;726:28;;;;;;;;1400:18:12;1390:28;;;;;;;;:6;;;;;;;;;;;:28;;;;;;;;;1382:37;;;;;;;;1444:3;1433:7;:14;;;;1425:23;;;;;;;;1466:15;1454:9;:27;;;;1496:7;1487:6;;:16;;;;;;;;;;;;;;;;;;1541:14;1533:23;;1527:2;:29;1509:15;:47;;;;1590:11;1562:25;:39;;;;1633:9;1607:23;:35;;;;1705:25;;1679:23;;1661:15;;:41;:69;;;;;;;;1648:10;:82;;;;1745:6;1736;:15;;;;1766:17;1757:6;;:26;;;;;;;;;;;;;;;;;;;;;;;;1796:4;1789:11;;1193:612;;;;;;;:::o;2734:85:10:-;2783:7;2805:9;;2798:16;;2734:85;:::o;602:21:12:-;;;;:::o;928:169:9:-;748:5;;;;;;;;;;;734:19;;:10;:19;;;726:28;;;;;;;;1024:1;1004:22;;:8;:22;;;;996:31;;;;;;;;1061:8;1033:37;;1054:5;;;;;;;;;;;1033:37;;;;;;;;;;;;1084:8;1076:5;;:16;;;;;;;;;;;;;;;;;;928:169;:::o;1809:400:12:-;1865:4;1934:15;1905:21;1919:6;;1905:9;;:13;;:21;;;;:::i;:::-;1886:15;:40;;1878:49;;;;;;;;1952:45;1980:16;;1952:23;;:27;;:45;;;;:::i;:::-;1934:63;;2025:7;2012:9;:20;;2004:29;;;;;;;;2065:33;2088:9;2065:11;:18;2077:5;2065:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;2044:11;:18;2056:5;2044:18;;;;;;;;;;;;;;;:54;;;;2105:6;;;;;;;;;;;:15;;:26;2121:9;2105:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:7;2142:9;:20;2138:44;;;2177:5;2170:12;;;;2138:44;2200:4;2193:11;;1809:400;;;;;:::o;759:128:16:-;816:7;831:9;847:1;843;:5;831:17;;866:1;861;:6;;854:14;;;;;;881:1;874:8;;759:128;;;;;:::o;646:109::-;703:7;730:1;725;:6;;718:14;;;;;;749:1;745;:5;738:12;;646:109;;;;:::o",
  "source": "pragma solidity ^0.4.18;\nimport \"../PoD.sol\";\n\n/// @title PublicSalePoD - PublicSalePoD contract\n/// @author - Yusaku Senga - <senga@dri.network>\n/// license - Please check the LICENSE at github.com/DRI-network/RICO\n\n/**\n * @title      PublicSalePoD\n * @dev        Public Sale Proof of Donation\n *             Handles the donations of the public sale and stores them.\n *             Handles the transfer of funds from the donators to the Project Owner's wallet.\n *             (& Handles all donation functionality from PoD.sol)\n */\ncontract PublicSalePoD is PoD {\n\n  uint256 public tokenMultiplier;\n  uint256 public period;\n\n  function PublicSalePoD() public {\n    name = \"PublicSalePoD strategy token price = capToken/capWei\";\n    version = \"0.9.3\";\n  }\n\n  /**\n   * @dev        initialize PoD contract\n   *\n   * @param      _wallet          The owner's wallet to pay donations to\n   * @param      _tokenDecimals   The token decimals\n   * @param      _startTimeOfPoD  The start time of the public sale\n   * @param      _capOfToken      The cap of tokens to be sold during the public sale\n   * @param      _capOfWei        The cap of wei for the public sale\n   *\n   * @return     true\n   */\n  function init(\n    address _wallet, \n    uint8 _tokenDecimals,\n    uint256 _startTimeOfPoD,\n    uint256 _capOfToken, \n    uint256 _capOfWei\n  )\n  public onlyOwner() returns (bool) \n  {\n    require(status == Status.PoDDeployed);\n    require(_wallet != 0x0);\n    startTime = _startTimeOfPoD;\n    wallet = _wallet;\n    tokenMultiplier = 10 ** uint256(_tokenDecimals);\n    proofOfDonationCapOfToken = _capOfToken;\n    proofOfDonationCapOfWei = _capOfWei;\n    tokenPrice = tokenMultiplier * proofOfDonationCapOfWei / proofOfDonationCapOfToken;\n    period = 7 days;\n    status = Status.PoDStarted;\n    return true;\n  }\n\n  function processDonate(address _user) internal returns (bool) {\n\n    require(block.timestamp <= startTime.add(period));\n\n    uint256 remains = proofOfDonationCapOfWei.sub(totalReceivedWei);\n\n    require(msg.value <= remains);\n    \n    weiBalances[_user] = weiBalances[_user].add(msg.value);\n\n    wallet.transfer(msg.value);\n\n    if (msg.value == remains)\n      return false;\n    \n    return true;\n  }\n\n  /**\n   * @dev      finalize() will bring the ICO to a conclusion. Anyone can call this function.\n   */\n  function finalize() public {\n\n    require(status == Status.PoDStarted);\n\n    require(block.timestamp > startTime.add(period));\n\n    endTime = now;\n\n    status = Status.PoDEnded;\n\n    Ended(endTime);\n  }\n\n  function getBalanceOfToken(address _user) public constant returns (uint256) {\n    return (tokenMultiplier * weiBalances[_user]) / tokenPrice;\n  }\n}\n",
  "sourcePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoDs/PublicSalePoD.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoDs/PublicSalePoD.sol",
      "exportedSymbols": {
        "PublicSalePoD": [
          2948
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 2743,
        "name": "PragmaDirective",
        "src": "0:24:12"
      },
      {
        "attributes": {
          "SourceUnit": 2383,
          "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoD.sol",
          "file": "../PoD.sol",
          "scope": 2949,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2744,
        "name": "ImportDirective",
        "src": "25:20:12"
      },
      {
        "attributes": {
          "contractDependencies": [
            2117,
            2382
          ],
          "contractKind": "contract",
          "documentation": "@title      PublicSalePoD\n@dev        Public Sale Proof of Donation\n            Handles the donations of the public sale and stores them.\n            Handles the transfer of funds from the donators to the Project Owner's wallet.\n            (& Handles all donation functionality from PoD.sol)",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            2948,
            2382,
            2117
          ],
          "name": "PublicSalePoD",
          "scope": 2949
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "PoD",
                  "referencedDeclaration": 2382,
                  "type": "contract PoD"
                },
                "id": 2745,
                "name": "UserDefinedTypeName",
                "src": "559:3:12"
              }
            ],
            "id": 2746,
            "name": "InheritanceSpecifier",
            "src": "559:3:12"
          },
          {
            "attributes": {
              "constant": false,
              "name": "tokenMultiplier",
              "scope": 2948,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2747,
                "name": "ElementaryTypeName",
                "src": "568:7:12"
              }
            ],
            "id": 2748,
            "name": "VariableDeclaration",
            "src": "568:30:12"
          },
          {
            "attributes": {
              "constant": false,
              "name": "period",
              "scope": 2948,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2749,
                "name": "ElementaryTypeName",
                "src": "602:7:12"
              }
            ],
            "id": 2750,
            "name": "VariableDeclaration",
            "src": "602:21:12"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "PublicSalePoD",
              "payable": false,
              "scope": 2948,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2751,
                "name": "ParameterList",
                "src": "650:2:12"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2752,
                "name": "ParameterList",
                "src": "660:0:12"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2128,
                              "type": "string storage ref",
                              "value": "name"
                            },
                            "id": 2753,
                            "name": "Identifier",
                            "src": "666:4:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "5075626c696353616c65506f4420737472617465677920746f6b656e207072696365203d20636170546f6b656e2f636170576569",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"PublicSalePoD strategy token price = capToken/capWei\"",
                              "value": "PublicSalePoD strategy token price = capToken/capWei"
                            },
                            "id": 2754,
                            "name": "Literal",
                            "src": "673:54:12"
                          }
                        ],
                        "id": 2755,
                        "name": "Assignment",
                        "src": "666:61:12"
                      }
                    ],
                    "id": 2756,
                    "name": "ExpressionStatement",
                    "src": "666:61:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2130,
                              "type": "string storage ref",
                              "value": "version"
                            },
                            "id": 2757,
                            "name": "Identifier",
                            "src": "733:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "302e392e33",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"0.9.3\"",
                              "value": "0.9.3"
                            },
                            "id": 2758,
                            "name": "Literal",
                            "src": "743:7:12"
                          }
                        ],
                        "id": 2759,
                        "name": "Assignment",
                        "src": "733:17:12"
                      }
                    ],
                    "id": 2760,
                    "name": "ExpressionStatement",
                    "src": "733:17:12"
                  }
                ],
                "id": 2761,
                "name": "Block",
                "src": "660:95:12"
              }
            ],
            "id": 2762,
            "name": "FunctionDefinition",
            "src": "628:127:12"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "init",
              "payable": false,
              "scope": 2948,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_wallet",
                      "scope": 2836,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2763,
                        "name": "ElementaryTypeName",
                        "src": "1212:7:12"
                      }
                    ],
                    "id": 2764,
                    "name": "VariableDeclaration",
                    "src": "1212:15:12"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tokenDecimals",
                      "scope": 2836,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 2765,
                        "name": "ElementaryTypeName",
                        "src": "1234:5:12"
                      }
                    ],
                    "id": 2766,
                    "name": "VariableDeclaration",
                    "src": "1234:20:12"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startTimeOfPoD",
                      "scope": 2836,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2767,
                        "name": "ElementaryTypeName",
                        "src": "1260:7:12"
                      }
                    ],
                    "id": 2768,
                    "name": "VariableDeclaration",
                    "src": "1260:23:12"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_capOfToken",
                      "scope": 2836,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2769,
                        "name": "ElementaryTypeName",
                        "src": "1289:7:12"
                      }
                    ],
                    "id": 2770,
                    "name": "VariableDeclaration",
                    "src": "1289:19:12"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_capOfWei",
                      "scope": 2836,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2771,
                        "name": "ElementaryTypeName",
                        "src": "1315:7:12"
                      }
                    ],
                    "id": 2772,
                    "name": "VariableDeclaration",
                    "src": "1315:17:12"
                  }
                ],
                "id": 2773,
                "name": "ParameterList",
                "src": "1206:130:12"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2836,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2776,
                        "name": "ElementaryTypeName",
                        "src": "1367:4:12"
                      }
                    ],
                    "id": 2777,
                    "name": "VariableDeclaration",
                    "src": "1367:4:12"
                  }
                ],
                "id": 2778,
                "name": "ParameterList",
                "src": "1366:6:12"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2091,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2774,
                    "name": "Identifier",
                    "src": "1346:9:12"
                  }
                ],
                "id": 2775,
                "name": "ModifierInvocation",
                "src": "1346:11:12"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3770,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2779,
                            "name": "Identifier",
                            "src": "1382:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_enum$_Status_$2152",
                                "typeString": "enum PoD.Status"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2154,
                                  "type": "enum PoD.Status",
                                  "value": "status"
                                },
                                "id": 2780,
                                "name": "Identifier",
                                "src": "1390:6:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "member_name": "PoDDeployed",
                                  "referencedDeclaration": null,
                                  "type": "enum PoD.Status"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2152,
                                      "type": "type(enum PoD.Status)",
                                      "value": "Status"
                                    },
                                    "id": 2781,
                                    "name": "Identifier",
                                    "src": "1400:6:12"
                                  }
                                ],
                                "id": 2782,
                                "name": "MemberAccess",
                                "src": "1400:18:12"
                              }
                            ],
                            "id": 2783,
                            "name": "BinaryOperation",
                            "src": "1390:28:12"
                          }
                        ],
                        "id": 2784,
                        "name": "FunctionCall",
                        "src": "1382:37:12"
                      }
                    ],
                    "id": 2785,
                    "name": "ExpressionStatement",
                    "src": "1382:37:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3770,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2786,
                            "name": "Identifier",
                            "src": "1425:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2764,
                                  "type": "address",
                                  "value": "_wallet"
                                },
                                "id": 2787,
                                "name": "Identifier",
                                "src": "1433:7:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "307830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0x0"
                                },
                                "id": 2788,
                                "name": "Literal",
                                "src": "1444:3:12"
                              }
                            ],
                            "id": 2789,
                            "name": "BinaryOperation",
                            "src": "1433:14:12"
                          }
                        ],
                        "id": 2790,
                        "name": "FunctionCall",
                        "src": "1425:23:12"
                      }
                    ],
                    "id": 2791,
                    "name": "ExpressionStatement",
                    "src": "1425:23:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2134,
                              "type": "uint256",
                              "value": "startTime"
                            },
                            "id": 2792,
                            "name": "Identifier",
                            "src": "1454:9:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2768,
                              "type": "uint256",
                              "value": "_startTimeOfPoD"
                            },
                            "id": 2793,
                            "name": "Identifier",
                            "src": "1466:15:12"
                          }
                        ],
                        "id": 2794,
                        "name": "Assignment",
                        "src": "1454:27:12"
                      }
                    ],
                    "id": 2795,
                    "name": "ExpressionStatement",
                    "src": "1454:27:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2132,
                              "type": "address",
                              "value": "wallet"
                            },
                            "id": 2796,
                            "name": "Identifier",
                            "src": "1487:6:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2764,
                              "type": "address",
                              "value": "_wallet"
                            },
                            "id": 2797,
                            "name": "Identifier",
                            "src": "1496:7:12"
                          }
                        ],
                        "id": 2798,
                        "name": "Assignment",
                        "src": "1487:16:12"
                      }
                    ],
                    "id": 2799,
                    "name": "ExpressionStatement",
                    "src": "1487:16:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2748,
                              "type": "uint256",
                              "value": "tokenMultiplier"
                            },
                            "id": 2800,
                            "name": "Identifier",
                            "src": "1509:15:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "**",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "3130",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 10",
                                  "value": "10"
                                },
                                "id": 2801,
                                "name": "Literal",
                                "src": "1527:2:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint256)",
                                      "value": "uint256"
                                    },
                                    "id": 2802,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1533:7:12"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2766,
                                      "type": "uint8",
                                      "value": "_tokenDecimals"
                                    },
                                    "id": 2803,
                                    "name": "Identifier",
                                    "src": "1541:14:12"
                                  }
                                ],
                                "id": 2804,
                                "name": "FunctionCall",
                                "src": "1533:23:12"
                              }
                            ],
                            "id": 2805,
                            "name": "BinaryOperation",
                            "src": "1527:29:12"
                          }
                        ],
                        "id": 2806,
                        "name": "Assignment",
                        "src": "1509:47:12"
                      }
                    ],
                    "id": 2807,
                    "name": "ExpressionStatement",
                    "src": "1509:47:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2142,
                              "type": "uint256",
                              "value": "proofOfDonationCapOfToken"
                            },
                            "id": 2808,
                            "name": "Identifier",
                            "src": "1562:25:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2770,
                              "type": "uint256",
                              "value": "_capOfToken"
                            },
                            "id": 2809,
                            "name": "Identifier",
                            "src": "1590:11:12"
                          }
                        ],
                        "id": 2810,
                        "name": "Assignment",
                        "src": "1562:39:12"
                      }
                    ],
                    "id": 2811,
                    "name": "ExpressionStatement",
                    "src": "1562:39:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2144,
                              "type": "uint256",
                              "value": "proofOfDonationCapOfWei"
                            },
                            "id": 2812,
                            "name": "Identifier",
                            "src": "1607:23:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2772,
                              "type": "uint256",
                              "value": "_capOfWei"
                            },
                            "id": 2813,
                            "name": "Identifier",
                            "src": "1633:9:12"
                          }
                        ],
                        "id": 2814,
                        "name": "Assignment",
                        "src": "1607:35:12"
                      }
                    ],
                    "id": 2815,
                    "name": "ExpressionStatement",
                    "src": "1607:35:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2138,
                              "type": "uint256",
                              "value": "tokenPrice"
                            },
                            "id": 2816,
                            "name": "Identifier",
                            "src": "1648:10:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "/",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "*",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2748,
                                      "type": "uint256",
                                      "value": "tokenMultiplier"
                                    },
                                    "id": 2817,
                                    "name": "Identifier",
                                    "src": "1661:15:12"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2144,
                                      "type": "uint256",
                                      "value": "proofOfDonationCapOfWei"
                                    },
                                    "id": 2818,
                                    "name": "Identifier",
                                    "src": "1679:23:12"
                                  }
                                ],
                                "id": 2819,
                                "name": "BinaryOperation",
                                "src": "1661:41:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2142,
                                  "type": "uint256",
                                  "value": "proofOfDonationCapOfToken"
                                },
                                "id": 2820,
                                "name": "Identifier",
                                "src": "1705:25:12"
                              }
                            ],
                            "id": 2821,
                            "name": "BinaryOperation",
                            "src": "1661:69:12"
                          }
                        ],
                        "id": 2822,
                        "name": "Assignment",
                        "src": "1648:82:12"
                      }
                    ],
                    "id": 2823,
                    "name": "ExpressionStatement",
                    "src": "1648:82:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2750,
                              "type": "uint256",
                              "value": "period"
                            },
                            "id": 2824,
                            "name": "Identifier",
                            "src": "1736:6:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "37",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": "days",
                              "token": "number",
                              "type": "int_const 604800",
                              "value": "7"
                            },
                            "id": 2825,
                            "name": "Literal",
                            "src": "1745:6:12"
                          }
                        ],
                        "id": 2826,
                        "name": "Assignment",
                        "src": "1736:15:12"
                      }
                    ],
                    "id": 2827,
                    "name": "ExpressionStatement",
                    "src": "1736:15:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "enum PoD.Status"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2154,
                              "type": "enum PoD.Status",
                              "value": "status"
                            },
                            "id": 2828,
                            "name": "Identifier",
                            "src": "1757:6:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "member_name": "PoDStarted",
                              "referencedDeclaration": null,
                              "type": "enum PoD.Status"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2152,
                                  "type": "type(enum PoD.Status)",
                                  "value": "Status"
                                },
                                "id": 2829,
                                "name": "Identifier",
                                "src": "1766:6:12"
                              }
                            ],
                            "id": 2830,
                            "name": "MemberAccess",
                            "src": "1766:17:12"
                          }
                        ],
                        "id": 2831,
                        "name": "Assignment",
                        "src": "1757:26:12"
                      }
                    ],
                    "id": 2832,
                    "name": "ExpressionStatement",
                    "src": "1757:26:12"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2778
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2833,
                        "name": "Literal",
                        "src": "1796:4:12"
                      }
                    ],
                    "id": 2834,
                    "name": "Return",
                    "src": "1789:11:12"
                  }
                ],
                "id": 2835,
                "name": "Block",
                "src": "1376:429:12"
              }
            ],
            "id": 2836,
            "name": "FunctionDefinition",
            "src": "1193:612:12"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "processDonate",
              "payable": false,
              "scope": 2948,
              "stateMutability": "nonpayable",
              "superFunction": 2374,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2896,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2837,
                        "name": "ElementaryTypeName",
                        "src": "1832:7:12"
                      }
                    ],
                    "id": 2838,
                    "name": "VariableDeclaration",
                    "src": "1832:13:12"
                  }
                ],
                "id": 2839,
                "name": "ParameterList",
                "src": "1831:15:12"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2896,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2840,
                        "name": "ElementaryTypeName",
                        "src": "1865:4:12"
                      }
                    ],
                    "id": 2841,
                    "name": "VariableDeclaration",
                    "src": "1865:4:12"
                  }
                ],
                "id": 2842,
                "name": "ParameterList",
                "src": "1864:6:12"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3770,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2843,
                            "name": "Identifier",
                            "src": "1878:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "timestamp",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3759,
                                      "type": "block",
                                      "value": "block"
                                    },
                                    "id": 2844,
                                    "name": "Identifier",
                                    "src": "1886:5:12"
                                  }
                                ],
                                "id": 2845,
                                "name": "MemberAccess",
                                "src": "1886:15:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "add",
                                      "referencedDeclaration": 3754,
                                      "type": "function (uint256,uint256) pure returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2134,
                                          "type": "uint256",
                                          "value": "startTime"
                                        },
                                        "id": 2846,
                                        "name": "Identifier",
                                        "src": "1905:9:12"
                                      }
                                    ],
                                    "id": 2847,
                                    "name": "MemberAccess",
                                    "src": "1905:13:12"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2750,
                                      "type": "uint256",
                                      "value": "period"
                                    },
                                    "id": 2848,
                                    "name": "Identifier",
                                    "src": "1919:6:12"
                                  }
                                ],
                                "id": 2849,
                                "name": "FunctionCall",
                                "src": "1905:21:12"
                              }
                            ],
                            "id": 2850,
                            "name": "BinaryOperation",
                            "src": "1886:40:12"
                          }
                        ],
                        "id": 2851,
                        "name": "FunctionCall",
                        "src": "1878:49:12"
                      }
                    ],
                    "id": 2852,
                    "name": "ExpressionStatement",
                    "src": "1878:49:12"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        2854
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "remains",
                          "scope": 2896,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 2853,
                            "name": "ElementaryTypeName",
                            "src": "1934:7:12"
                          }
                        ],
                        "id": 2854,
                        "name": "VariableDeclaration",
                        "src": "1934:15:12"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sub",
                              "referencedDeclaration": 3730,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2144,
                                  "type": "uint256",
                                  "value": "proofOfDonationCapOfWei"
                                },
                                "id": 2855,
                                "name": "Identifier",
                                "src": "1952:23:12"
                              }
                            ],
                            "id": 2856,
                            "name": "MemberAccess",
                            "src": "1952:27:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2140,
                              "type": "uint256",
                              "value": "totalReceivedWei"
                            },
                            "id": 2857,
                            "name": "Identifier",
                            "src": "1980:16:12"
                          }
                        ],
                        "id": 2858,
                        "name": "FunctionCall",
                        "src": "1952:45:12"
                      }
                    ],
                    "id": 2859,
                    "name": "VariableDeclarationStatement",
                    "src": "1934:63:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3770,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2860,
                            "name": "Identifier",
                            "src": "2004:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "value",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3767,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 2861,
                                    "name": "Identifier",
                                    "src": "2012:3:12"
                                  }
                                ],
                                "id": 2862,
                                "name": "MemberAccess",
                                "src": "2012:9:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2854,
                                  "type": "uint256",
                                  "value": "remains"
                                },
                                "id": 2863,
                                "name": "Identifier",
                                "src": "2025:7:12"
                              }
                            ],
                            "id": 2864,
                            "name": "BinaryOperation",
                            "src": "2012:20:12"
                          }
                        ],
                        "id": 2865,
                        "name": "FunctionCall",
                        "src": "2004:29:12"
                      }
                    ],
                    "id": 2866,
                    "name": "ExpressionStatement",
                    "src": "2004:29:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2148,
                                  "type": "mapping(address => uint256)",
                                  "value": "weiBalances"
                                },
                                "id": 2867,
                                "name": "Identifier",
                                "src": "2044:11:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2838,
                                  "type": "address",
                                  "value": "_user"
                                },
                                "id": 2868,
                                "name": "Identifier",
                                "src": "2056:5:12"
                              }
                            ],
                            "id": 2869,
                            "name": "IndexAccess",
                            "src": "2044:18:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "add",
                                  "referencedDeclaration": 3754,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2148,
                                          "type": "mapping(address => uint256)",
                                          "value": "weiBalances"
                                        },
                                        "id": 2870,
                                        "name": "Identifier",
                                        "src": "2065:11:12"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2838,
                                          "type": "address",
                                          "value": "_user"
                                        },
                                        "id": 2871,
                                        "name": "Identifier",
                                        "src": "2077:5:12"
                                      }
                                    ],
                                    "id": 2872,
                                    "name": "IndexAccess",
                                    "src": "2065:18:12"
                                  }
                                ],
                                "id": 2873,
                                "name": "MemberAccess",
                                "src": "2065:22:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "value",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3767,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 2874,
                                    "name": "Identifier",
                                    "src": "2088:3:12"
                                  }
                                ],
                                "id": 2875,
                                "name": "MemberAccess",
                                "src": "2088:9:12"
                              }
                            ],
                            "id": 2876,
                            "name": "FunctionCall",
                            "src": "2065:33:12"
                          }
                        ],
                        "id": 2877,
                        "name": "Assignment",
                        "src": "2044:54:12"
                      }
                    ],
                    "id": 2878,
                    "name": "ExpressionStatement",
                    "src": "2044:54:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": null,
                              "type": "function (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2132,
                                  "type": "address",
                                  "value": "wallet"
                                },
                                "id": 2879,
                                "name": "Identifier",
                                "src": "2105:6:12"
                              }
                            ],
                            "id": 2881,
                            "name": "MemberAccess",
                            "src": "2105:15:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "value",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3767,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 2882,
                                "name": "Identifier",
                                "src": "2121:3:12"
                              }
                            ],
                            "id": 2883,
                            "name": "MemberAccess",
                            "src": "2121:9:12"
                          }
                        ],
                        "id": 2884,
                        "name": "FunctionCall",
                        "src": "2105:26:12"
                      }
                    ],
                    "id": 2885,
                    "name": "ExpressionStatement",
                    "src": "2105:26:12"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "value",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3767,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 2886,
                                "name": "Identifier",
                                "src": "2142:3:12"
                              }
                            ],
                            "id": 2887,
                            "name": "MemberAccess",
                            "src": "2142:9:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2854,
                              "type": "uint256",
                              "value": "remains"
                            },
                            "id": 2888,
                            "name": "Identifier",
                            "src": "2155:7:12"
                          }
                        ],
                        "id": 2889,
                        "name": "BinaryOperation",
                        "src": "2142:20:12"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 2842
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 2890,
                            "name": "Literal",
                            "src": "2177:5:12"
                          }
                        ],
                        "id": 2891,
                        "name": "Return",
                        "src": "2170:12:12"
                      }
                    ],
                    "id": 2892,
                    "name": "IfStatement",
                    "src": "2138:44:12"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2842
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2893,
                        "name": "Literal",
                        "src": "2200:4:12"
                      }
                    ],
                    "id": 2894,
                    "name": "Return",
                    "src": "2193:11:12"
                  }
                ],
                "id": 2895,
                "name": "Block",
                "src": "1871:338:12"
              }
            ],
            "id": 2896,
            "name": "FunctionDefinition",
            "src": "1809:400:12"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "finalize",
              "payable": false,
              "scope": 2948,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2897,
                "name": "ParameterList",
                "src": "2335:2:12"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2898,
                "name": "ParameterList",
                "src": "2345:0:12"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3770,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2899,
                            "name": "Identifier",
                            "src": "2352:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_enum$_Status_$2152",
                                "typeString": "enum PoD.Status"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2154,
                                  "type": "enum PoD.Status",
                                  "value": "status"
                                },
                                "id": 2900,
                                "name": "Identifier",
                                "src": "2360:6:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "member_name": "PoDStarted",
                                  "referencedDeclaration": null,
                                  "type": "enum PoD.Status"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2152,
                                      "type": "type(enum PoD.Status)",
                                      "value": "Status"
                                    },
                                    "id": 2901,
                                    "name": "Identifier",
                                    "src": "2370:6:12"
                                  }
                                ],
                                "id": 2902,
                                "name": "MemberAccess",
                                "src": "2370:17:12"
                              }
                            ],
                            "id": 2903,
                            "name": "BinaryOperation",
                            "src": "2360:27:12"
                          }
                        ],
                        "id": 2904,
                        "name": "FunctionCall",
                        "src": "2352:36:12"
                      }
                    ],
                    "id": 2905,
                    "name": "ExpressionStatement",
                    "src": "2352:36:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3770,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2906,
                            "name": "Identifier",
                            "src": "2395:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "timestamp",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3759,
                                      "type": "block",
                                      "value": "block"
                                    },
                                    "id": 2907,
                                    "name": "Identifier",
                                    "src": "2403:5:12"
                                  }
                                ],
                                "id": 2908,
                                "name": "MemberAccess",
                                "src": "2403:15:12"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "add",
                                      "referencedDeclaration": 3754,
                                      "type": "function (uint256,uint256) pure returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2134,
                                          "type": "uint256",
                                          "value": "startTime"
                                        },
                                        "id": 2909,
                                        "name": "Identifier",
                                        "src": "2421:9:12"
                                      }
                                    ],
                                    "id": 2910,
                                    "name": "MemberAccess",
                                    "src": "2421:13:12"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2750,
                                      "type": "uint256",
                                      "value": "period"
                                    },
                                    "id": 2911,
                                    "name": "Identifier",
                                    "src": "2435:6:12"
                                  }
                                ],
                                "id": 2912,
                                "name": "FunctionCall",
                                "src": "2421:21:12"
                              }
                            ],
                            "id": 2913,
                            "name": "BinaryOperation",
                            "src": "2403:39:12"
                          }
                        ],
                        "id": 2914,
                        "name": "FunctionCall",
                        "src": "2395:48:12"
                      }
                    ],
                    "id": 2915,
                    "name": "ExpressionStatement",
                    "src": "2395:48:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2136,
                              "type": "uint256",
                              "value": "endTime"
                            },
                            "id": 2916,
                            "name": "Identifier",
                            "src": "2450:7:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3769,
                              "type": "uint256",
                              "value": "now"
                            },
                            "id": 2917,
                            "name": "Identifier",
                            "src": "2460:3:12"
                          }
                        ],
                        "id": 2918,
                        "name": "Assignment",
                        "src": "2450:13:12"
                      }
                    ],
                    "id": 2919,
                    "name": "ExpressionStatement",
                    "src": "2450:13:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "enum PoD.Status"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2154,
                              "type": "enum PoD.Status",
                              "value": "status"
                            },
                            "id": 2920,
                            "name": "Identifier",
                            "src": "2470:6:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "member_name": "PoDEnded",
                              "referencedDeclaration": null,
                              "type": "enum PoD.Status"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2152,
                                  "type": "type(enum PoD.Status)",
                                  "value": "Status"
                                },
                                "id": 2921,
                                "name": "Identifier",
                                "src": "2479:6:12"
                              }
                            ],
                            "id": 2922,
                            "name": "MemberAccess",
                            "src": "2479:15:12"
                          }
                        ],
                        "id": 2923,
                        "name": "Assignment",
                        "src": "2470:24:12"
                      }
                    ],
                    "id": 2924,
                    "name": "ExpressionStatement",
                    "src": "2470:24:12"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2164,
                              "type": "function (uint256)",
                              "value": "Ended"
                            },
                            "id": 2925,
                            "name": "Identifier",
                            "src": "2501:5:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2136,
                              "type": "uint256",
                              "value": "endTime"
                            },
                            "id": 2926,
                            "name": "Identifier",
                            "src": "2507:7:12"
                          }
                        ],
                        "id": 2927,
                        "name": "FunctionCall",
                        "src": "2501:14:12"
                      }
                    ],
                    "id": 2928,
                    "name": "ExpressionStatement",
                    "src": "2501:14:12"
                  }
                ],
                "id": 2929,
                "name": "Block",
                "src": "2345:175:12"
              }
            ],
            "id": 2930,
            "name": "FunctionDefinition",
            "src": "2318:202:12"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getBalanceOfToken",
              "payable": false,
              "scope": 2948,
              "stateMutability": "view",
              "superFunction": 2381,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2947,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2931,
                        "name": "ElementaryTypeName",
                        "src": "2551:7:12"
                      }
                    ],
                    "id": 2932,
                    "name": "VariableDeclaration",
                    "src": "2551:13:12"
                  }
                ],
                "id": 2933,
                "name": "ParameterList",
                "src": "2550:15:12"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2947,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2934,
                        "name": "ElementaryTypeName",
                        "src": "2591:7:12"
                      }
                    ],
                    "id": 2935,
                    "name": "VariableDeclaration",
                    "src": "2591:7:12"
                  }
                ],
                "id": 2936,
                "name": "ParameterList",
                "src": "2590:9:12"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2936
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "/",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "*",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2748,
                                      "type": "uint256",
                                      "value": "tokenMultiplier"
                                    },
                                    "id": 2937,
                                    "name": "Identifier",
                                    "src": "2614:15:12"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2148,
                                          "type": "mapping(address => uint256)",
                                          "value": "weiBalances"
                                        },
                                        "id": 2938,
                                        "name": "Identifier",
                                        "src": "2632:11:12"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2932,
                                          "type": "address",
                                          "value": "_user"
                                        },
                                        "id": 2939,
                                        "name": "Identifier",
                                        "src": "2644:5:12"
                                      }
                                    ],
                                    "id": 2940,
                                    "name": "IndexAccess",
                                    "src": "2632:18:12"
                                  }
                                ],
                                "id": 2941,
                                "name": "BinaryOperation",
                                "src": "2614:36:12"
                              }
                            ],
                            "id": 2942,
                            "name": "TupleExpression",
                            "src": "2613:38:12"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2138,
                              "type": "uint256",
                              "value": "tokenPrice"
                            },
                            "id": 2943,
                            "name": "Identifier",
                            "src": "2654:10:12"
                          }
                        ],
                        "id": 2944,
                        "name": "BinaryOperation",
                        "src": "2613:51:12"
                      }
                    ],
                    "id": 2945,
                    "name": "Return",
                    "src": "2606:58:12"
                  }
                ],
                "id": 2946,
                "name": "Block",
                "src": "2600:69:12"
              }
            ],
            "id": 2947,
            "name": "FunctionDefinition",
            "src": "2524:145:12"
          }
        ],
        "id": 2948,
        "name": "ContractDefinition",
        "src": "533:2138:12"
      }
    ],
    "id": 2949,
    "name": "SourceUnit",
    "src": "0:2672:12"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-07T05:10:52.560Z"
}