{
  "contractName": "DutchAuctionPoD",
  "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": "priceStart",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "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": true,
      "inputs": [],
      "name": "wallet",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "priceConstant",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "priceExponent",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "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": false,
      "inputs": [
        {
          "name": "_wallet",
          "type": "address"
        },
        {
          "name": "_tokenDecimals",
          "type": "uint8"
        },
        {
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "name": "_priceStart",
          "type": "uint256"
        },
        {
          "name": "_priceConstant",
          "type": "uint256"
        },
        {
          "name": "_priceExponent",
          "type": "uint32"
        },
        {
          "name": "_capOfToken",
          "type": "uint256"
        }
      ],
      "name": "init",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "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": "price",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "tokenMultiplier",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "missingFundsToEndAuction",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "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": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "finalizeAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_startPrice",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_priceConstant",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_priceExponent",
          "type": "uint32"
        }
      ],
      "name": "Setup",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "AuctionStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_missingFunds",
          "type": "uint256"
        }
      ],
      "name": "BidSubmission",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_finalPrice",
          "type": "uint256"
        }
      ],
      "name": "AuctionEnded",
      "type": "event"
    },
    {
      "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": "0x606060405234156200001057600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548160ff021916908360028111156200007057fe5b0217905550600060078190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280601981526020017f447574636841756374696f6e20737472617465677920506f4400000000000000815250600190805190602001906200010b92919062000160565b506040805190810160405280600581526020017f302e392e33000000000000000000000000000000000000000000000000000000815250600290805190602001906200015992919062000160565b506200020f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001a357805160ff1916838001178555620001d4565b82800160010185558215620001d4579182015b82811115620001d3578251825591602001919060010190620001b6565b5b509050620001e39190620001e7565b5090565b6200020c91905b8082111562000208576000816000905550600101620001ee565b5090565b90565b611333806200021f6000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461015457806309fc93c1146101e2578063112ed3f51461022f578063173067a314610280578063200d2ed2146102a9578063439f5ac2146102e05780634b94f50e14610309578063521eb27314610332578063533e25261461038757806354fd4d50146103b0578063624e1d191461043e5780636ccce7a81461047357806383786f8c1461049c5780638c73596c146104e95780638da5cb5b146105795780638f85f92c146105ce57806397722acf146105fb5780639b3dfce014610624578063a035b1fe14610651578063ba3f5a121461067a578063c5cd88db146106a3578063c828371e146106cc578063ed88c68e146106f5578063f2fde38b14610717578063f77282ab14610750575b610151610765565b50005b341561015f57600080fd5b6101676108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a757808201518184015260208101905061018c565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ed57600080fd5b610219600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061096e565b6040518082815260200191505060405180910390f35b341561023a57600080fd5b610266600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109b7565b604051808215151515815260200191505060405180910390f35b341561028b57600080fd5b610293610a95565b6040518082815260200191505060405180910390f35b34156102b457600080fd5b6102bc610a9b565b604051808260028111156102cc57fe5b60ff16815260200191505060405180910390f35b34156102eb57600080fd5b6102f3610aae565b6040518082815260200191505060405180910390f35b341561031457600080fd5b61031c610ab8565b6040518082815260200191505060405180910390f35b341561033d57600080fd5b610345610ac2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561039257600080fd5b61039a610ae8565b6040518082815260200191505060405180910390f35b34156103bb57600080fd5b6103c3610aee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104035780820151818401526020810190506103e8565b50505050905090810190601f1680156104305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561044957600080fd5b610451610b8c565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561047e57600080fd5b610486610ba2565b6040518082815260200191505060405180910390f35b34156104a757600080fd5b6104d3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bac565b6040518082815260200191505060405180910390f35b34156104f457600080fd5b61055f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff1690602001909190803590602001909190803590602001909190803590602001909190803563ffffffff16906020019091908035906020019091905050610c0b565b604051808215151515815260200191505060405180910390f35b341561058457600080fd5b61058c610de8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d957600080fd5b6105e1610e0d565b604051808215151515815260200191505060405180910390f35b341561060657600080fd5b61060e610e4d565b6040518082815260200191505060405180910390f35b341561062f57600080fd5b610637610e57565b604051808215151515815260200191505060405180910390f35b341561065c57600080fd5b610664610e98565b6040518082815260200191505060405180910390f35b341561068557600080fd5b61068d610ede565b6040518082815260200191505060405180910390f35b34156106ae57600080fd5b6106b6610ee4565b6040518082815260200191505060405180910390f35b34156106d757600080fd5b6106df610f22565b6040518082815260200191505060405180910390f35b6106fd610765565b604051808215151515815260200191505060405180910390f35b341561072257600080fd5b61074e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f2c565b005b341561075b57600080fd5b610763611081565b005b60006001600281111561077457fe5b600b60009054906101000a900460ff16600281111561078f57fe5b14151561079b57600080fd5b60045442101515156107ac57600080fd5b6412a05f20003a111515156107c057600080fd5b6000341115156107cf57600080fd5b6107d833611161565b151561084357426005819055506002600b60006101000a81548160ff0219169083600281111561080457fe5b02179055507f601095663bda08ac0f932087ef2eb08e42e4bcd1927f3a8d9500f6ad2c5aef906005546040518082815260200191505060405180910390a15b6108583460075461126590919063ffffffff16565b6007819055507f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e5433334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109665780601f1061093b57610100808354040283529160200191610966565b820191906000526020600020905b81548152906001019060200180831161094957829003601f168201915b505050505081565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a1457600080fd5b600280811115610a2057fe5b600b60009054906101000a900460ff166002811115610a3b57fe5b141515610a4757600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050919050565b600c5481565b600b60009054906101000a900460ff1681565b6000600554905090565b6000600654905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b845780601f10610b5957610100808354040283529160200191610b84565b820191906000526020600020905b815481529060010190602001808311610b6757829003601f168201915b505050505081565b600e60009054906101000a900463ffffffff1681565b6000600954905090565b600080600654600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f5402811515610bff57fe5b04905080915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c6857600080fd5b6000806002811115610c7657fe5b600b60009054906101000a900460ff166002811115610c9157fe5b141515610c9d57600080fd5b60008860ff1614151515610cb057600080fd5b600086111515610cbf57600080fd5b600085111515610cce57600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff1614151515610cf457600080fd5b88600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508760ff16600a0a600f819055508660048190555085600c8190555084600d8190555083600e60006101000a81548163ffffffff021916908363ffffffff160217905550826010819055506001600b60006101000a81548160ff02191690836002811115610d9e57fe5b02179055508363ffffffff1685877faa9c446bf9d81a4cadd0511e53a9b49a7391402b523dcec61d7272141929458960405160405180910390a46001915050979650505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280811115610e1b57fe5b600b60009054906101000a900460ff166002811115610e3657fe5b1415610e455760019050610e4a565b600090505b90565b6000600854905090565b600060016002811115610e6657fe5b600b60009054906101000a900460ff166002811115610e8157fe5b1415610e905760019050610e95565b600090505b90565b6000600280811115610ea657fe5b600b60009054906101000a900460ff166002811115610ec157fe5b1415610ed05760009050610edb565b610ed8611283565b90505b90565b600f5481565b600080600f54610ef2610e98565b60105402811515610eff57fe5b04905060075481111515610f165760009150610f1e565b600754810391505b5090565b6000600454905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f8757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fc357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600180600281111561109157fe5b600b60009054906101000a900460ff1660028111156110ac57fe5b1415156110b857600080fd5b6110c0610ee4565b91506000821415156110d157600080fd5b601054600754600f54028115156110e457fe5b04600681905550426005819055507f45806e512b1f4f10e33e8b3cb64d1d11d998d8c554a95e0841fc1c701278bd5d6006546040518082815260200191505060405180910390a16002600b60006101000a81548160ff0219169083600281111561114a57fe5b0217905550600060065411151561115d57fe5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff161415151561118a57600080fd5b611192610ee4565b90508034111515156111a357600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561120557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167fc9c6176cbf7c0a8c29655fe8ccbe5e28382ca11459d145223308723bfc6975453483604051808381526020018281526020019250505060405180910390a26001915050919050565b600080828401905083811015151561127957fe5b8091505092915050565b60008060006001600281111561129557fe5b600b60009054906101000a900460ff1660028111156112b057fe5b14156112be57600454420391505b600d54600e60009054906101000a900463ffffffff1663ffffffff16830a8115156112e557fe5b04905080826001010182600101600c54028115156112ff57fe5b0492505050905600a165627a7a72305820cce0d8c9d8328db88eb9ce254ad4e6fb184c45c92b0097f3facc6fc842b3946a0029",
  "deployedBytecode": "0x606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461015457806309fc93c1146101e2578063112ed3f51461022f578063173067a314610280578063200d2ed2146102a9578063439f5ac2146102e05780634b94f50e14610309578063521eb27314610332578063533e25261461038757806354fd4d50146103b0578063624e1d191461043e5780636ccce7a81461047357806383786f8c1461049c5780638c73596c146104e95780638da5cb5b146105795780638f85f92c146105ce57806397722acf146105fb5780639b3dfce014610624578063a035b1fe14610651578063ba3f5a121461067a578063c5cd88db146106a3578063c828371e146106cc578063ed88c68e146106f5578063f2fde38b14610717578063f77282ab14610750575b610151610765565b50005b341561015f57600080fd5b6101676108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a757808201518184015260208101905061018c565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ed57600080fd5b610219600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061096e565b6040518082815260200191505060405180910390f35b341561023a57600080fd5b610266600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109b7565b604051808215151515815260200191505060405180910390f35b341561028b57600080fd5b610293610a95565b6040518082815260200191505060405180910390f35b34156102b457600080fd5b6102bc610a9b565b604051808260028111156102cc57fe5b60ff16815260200191505060405180910390f35b34156102eb57600080fd5b6102f3610aae565b6040518082815260200191505060405180910390f35b341561031457600080fd5b61031c610ab8565b6040518082815260200191505060405180910390f35b341561033d57600080fd5b610345610ac2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561039257600080fd5b61039a610ae8565b6040518082815260200191505060405180910390f35b34156103bb57600080fd5b6103c3610aee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104035780820151818401526020810190506103e8565b50505050905090810190601f1680156104305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561044957600080fd5b610451610b8c565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561047e57600080fd5b610486610ba2565b6040518082815260200191505060405180910390f35b34156104a757600080fd5b6104d3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bac565b6040518082815260200191505060405180910390f35b34156104f457600080fd5b61055f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff1690602001909190803590602001909190803590602001909190803590602001909190803563ffffffff16906020019091908035906020019091905050610c0b565b604051808215151515815260200191505060405180910390f35b341561058457600080fd5b61058c610de8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d957600080fd5b6105e1610e0d565b604051808215151515815260200191505060405180910390f35b341561060657600080fd5b61060e610e4d565b6040518082815260200191505060405180910390f35b341561062f57600080fd5b610637610e57565b604051808215151515815260200191505060405180910390f35b341561065c57600080fd5b610664610e98565b6040518082815260200191505060405180910390f35b341561068557600080fd5b61068d610ede565b6040518082815260200191505060405180910390f35b34156106ae57600080fd5b6106b6610ee4565b6040518082815260200191505060405180910390f35b34156106d757600080fd5b6106df610f22565b6040518082815260200191505060405180910390f35b6106fd610765565b604051808215151515815260200191505060405180910390f35b341561072257600080fd5b61074e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f2c565b005b341561075b57600080fd5b610763611081565b005b60006001600281111561077457fe5b600b60009054906101000a900460ff16600281111561078f57fe5b14151561079b57600080fd5b60045442101515156107ac57600080fd5b6412a05f20003a111515156107c057600080fd5b6000341115156107cf57600080fd5b6107d833611161565b151561084357426005819055506002600b60006101000a81548160ff0219169083600281111561080457fe5b02179055507f601095663bda08ac0f932087ef2eb08e42e4bcd1927f3a8d9500f6ad2c5aef906005546040518082815260200191505060405180910390a15b6108583460075461126590919063ffffffff16565b6007819055507f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e5433334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109665780601f1061093b57610100808354040283529160200191610966565b820191906000526020600020905b81548152906001019060200180831161094957829003601f168201915b505050505081565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a1457600080fd5b600280811115610a2057fe5b600b60009054906101000a900460ff166002811115610a3b57fe5b141515610a4757600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050919050565b600c5481565b600b60009054906101000a900460ff1681565b6000600554905090565b6000600654905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b845780601f10610b5957610100808354040283529160200191610b84565b820191906000526020600020905b815481529060010190602001808311610b6757829003601f168201915b505050505081565b600e60009054906101000a900463ffffffff1681565b6000600954905090565b600080600654600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f5402811515610bff57fe5b04905080915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c6857600080fd5b6000806002811115610c7657fe5b600b60009054906101000a900460ff166002811115610c9157fe5b141515610c9d57600080fd5b60008860ff1614151515610cb057600080fd5b600086111515610cbf57600080fd5b600085111515610cce57600080fd5b60008973ffffffffffffffffffffffffffffffffffffffff1614151515610cf457600080fd5b88600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508760ff16600a0a600f819055508660048190555085600c8190555084600d8190555083600e60006101000a81548163ffffffff021916908363ffffffff160217905550826010819055506001600b60006101000a81548160ff02191690836002811115610d9e57fe5b02179055508363ffffffff1685877faa9c446bf9d81a4cadd0511e53a9b49a7391402b523dcec61d7272141929458960405160405180910390a46001915050979650505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280811115610e1b57fe5b600b60009054906101000a900460ff166002811115610e3657fe5b1415610e455760019050610e4a565b600090505b90565b6000600854905090565b600060016002811115610e6657fe5b600b60009054906101000a900460ff166002811115610e8157fe5b1415610e905760019050610e95565b600090505b90565b6000600280811115610ea657fe5b600b60009054906101000a900460ff166002811115610ec157fe5b1415610ed05760009050610edb565b610ed8611283565b90505b90565b600f5481565b600080600f54610ef2610e98565b60105402811515610eff57fe5b04905060075481111515610f165760009150610f1e565b600754810391505b5090565b6000600454905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f8757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fc357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600180600281111561109157fe5b600b60009054906101000a900460ff1660028111156110ac57fe5b1415156110b857600080fd5b6110c0610ee4565b91506000821415156110d157600080fd5b601054600754600f54028115156110e457fe5b04600681905550426005819055507f45806e512b1f4f10e33e8b3cb64d1d11d998d8c554a95e0841fc1c701278bd5d6006546040518082815260200191505060405180910390a16002600b60006101000a81548160ff0219169083600281111561114a57fe5b0217905550600060065411151561115d57fe5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff161415151561118a57600080fd5b611192610ee4565b90508034111515156111a357600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561120557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167fc9c6176cbf7c0a8c29655fe8ccbe5e28382ca11459d145223308723bfc6975453483604051808381526020018281526020019250505060405180910390a26001915050919050565b600080828401905083811015151561127957fe5b8091505092915050565b60008060006001600281111561129557fe5b600b60009054906101000a900460ff1660028111156112b057fe5b14156112be57600454420391505b600d54600e60009054906101000a900463ffffffff1663ffffffff16830a8115156112e557fe5b04905080826001010182600101600c54028115156112ff57fe5b0492505050905600a165627a7a72305820cce0d8c9d8328db88eb9ce254ad4e6fb184c45c92b0097f3facc6fc842b3946a0029",
  "sourceMap": "225:5558:11:-;;;1145:103;;;;;;;;603:10:9;595:5;;:18;;;;;;;;;;;;;;;;;;1077::10;1068:6;;:27;;;;;;;;;;;;;;;;;;;;;;;;1120:1;1101:16;:20;;;;1136:10;1127:6;;:19;;;;;;;;;;;;;;;;;;1186:34:11;;;;;;;;;;;;;;;;;;:4;:34;;;;;;;;;;;;:::i;:::-;;1226:17;;;;;;;;;;;;;;;;;;:7;:17;;;;;;;;;;;;:::i;:::-;;225:5558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "225:5558:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3416:8:10;:6;:8::i;:::-;;225:5558:11;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333:25:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:20:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2871:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:28:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;504:22: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:27:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:97:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5615:166:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1252:745;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;334:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3215:129:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3018:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3133:140:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3547:432;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2734:85:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:520;;;;;;;;;;;;;;;;;;;;;;;;;;;928:169:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2273:543:11;;;;;;;;;;;;;;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;333:25:11:-;;;;:::o;829:20:10:-;;;;;;;;;;;;;:::o;2871:81::-;2918:7;2940;;2933:14;;2871:81;:::o;2268:86::-;2317:7;2339:10;;2332:17;;2268:86;:::o;530:21::-;;;;;;;;;;;;;:::o;401:28:11:-;;;;:::o;504:22:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;463:27:11:-;;;;;;;;;;;;;:::o;2577:97:10:-;2624:7;2646:23;;2639:30;;2577:97;:::o;5615:166:11:-;5681:4;5698:8;5750:10;;5728:11;:18;5740:5;5728:18;;;;;;;;;;;;;;;;5710:15;;:36;5709:51;;;;;;;;5698:62;;5773:3;5766:10;;5615:166;;;;:::o;1252:745::-;1498:4;748:5:9;;;;;;;;;;;734:19;;:10;:19;;;726:28;;;;;;;;1470:18:11;721:7;711:17;;;;;;;;:6;;;;;;;;;;;:17;;;;;;;;;703:26;;;;;;;;1538:1;1520:14;:19;;;;1512:28;;;;;;;;1568:1;1554:11;:15;1546:24;;;;;;;;1601:1;1584:14;:18;1576:27;;;;;;;;1628:3;1617:7;:14;;;;1609:23;;;;;;;;1647:7;1638:6;;:16;;;;;;;;;;;;;;;;;;1692:14;1684:23;;1678:2;:29;1660:15;:47;;;;1725:10;1713:9;:22;;;;1754:11;1741:10;:24;;;;1787:14;1771:13;:30;;;;1823:14;1807:13;;:30;;;;;;;;;;;;;;;;;;1871:11;1843:25;:39;;;;1897:17;1888:6;;:26;;;;;;;;;;;;;;;;;;;;;;;;1955:14;1920:50;;1939:14;1926:11;1920:50;;;;;;;;;;1988:4;1981:11;;760:1:9;1252:745:11;;;;;;;;;:::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;3133:140:11:-;3174:4;3200:15;3190:25;;;;;;;;:6;;;;;;;;;;;:25;;;;;;;;;3186:54;;;3232:1;3225:8;;;;3186:54;3252:16;:14;:16::i;:::-;3245:23;;3133:140;;:::o;530:30::-;;;;:::o;3547:432::-;3607:4;3715:23;3779:15;;3769:7;:5;:7::i;:::-;3741:25;;:35;:53;;;;;;;;3715:79;;3826:16;;3804:18;:38;;3800:67;;;3859:1;3852:8;;;;3800:67;3958:16;;3937:18;:37;3930:44;;3547:432;;;:::o;2734:85:10:-;2783:7;2805:9;;2798:16;;2734:85;:::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;2273:543:11:-;2388:17;2316;721:7;711:17;;;;;;;;:6;;;;;;;;;;;:17;;;;;;;;;703:26;;;;;;;;2408;:24;:26::i;:::-;2388:46;;2464:1;2448:12;:17;2440:26;;;;;;;;2675:25;;2656:16;;2638:15;;:34;:62;;;;;;;;2625:10;:75;;;;2717:3;2707:7;:13;;;;2727:24;2740:10;;2727:24;;;;;;;;;;;;;;;;;;2767:15;2758:6;;:24;;;;;;;;;;;;;;;;;;;;;;;;2809:1;2796:10;;:14;2789:22;;;;;;2273:543;;:::o;5041:570::-;5097:4;5187:17;5126:3;5117:5;:12;;;;5109:21;;;;;;;;5207:26;:24;:26::i;:::-;5187:46;;5372:12;5359:9;:25;;5351:34;;;;;;;;5427:6;;;;;;;;;;;:15;;:26;5443:9;5427:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5507:10;5493:50;;;5519:9;5530:12;5493:50;;;;;;;;;;;;;;;;;;;;;;;;5602:4;5595:11;;5041:570;;;;:::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;4591:289:11:-;4642:4;4654:12;4751:14;4686:17;4676:27;;;;;;;;:6;;;;;;;;;;;:27;;;;;;;;;4672:73;;;4729:9;;4723:3;:15;4713:25;;4672:73;4795:13;;4779;;;;;;;;;;;4768:24;;:7;:24;:40;;;;;;;;4751:57;;4865:9;4855:7;4851:1;:11;:23;4839:7;4835:1;:11;4821:10;;:26;:54;;;;;;;;4814:61;;4591:289;;;:::o",
  "source": "pragma solidity ^0.4.18;\nimport \"../PoD.sol\";\n\n/// @title DutchAuctionPoD - DutchAuction module contract\n/// @author - Yusaku Senga - <senga@dri.network>\n/// license - Please check the LICENSE at github.com/DRI-network/RICO\n\ncontract DutchAuctionPoD is PoD {\n\n  /*\n   * Storage\n   */\n\n  // Starting price in WEI; e.g. 2 * 10 ** 18\n  uint256 public priceStart;\n\n  // Divisor constant; e.g. 524880000\n  uint256 public priceConstant;\n  // Divisor exponent; e.g. 3\n  uint32 public priceExponent;\n  // Token tokenMultiplier; e.g. 18\n  uint256 public tokenMultiplier;\n\n  uint256 proofOfDonationCapOfToken;\n  uint256 proofOfDonationCapOfWei;\n  /*\n   * Modifiers\n   */\n  modifier atStatus(Status _status) {\n    require(status == _status);\n    _;\n  }\n\n  /*\n   * Events\n   */\n\n  event Setup(uint indexed _startPrice, uint indexed _priceConstant, uint32 indexed _priceExponent);\n  event AuctionStarted(uint indexed _startTime, uint indexed _blockNumber);\n  event BidSubmission(address indexed _sender, uint _amount, uint _missingFunds);\n  event AuctionEnded(uint _finalPrice);\n\n  /*\n   * Public functions\n   */\n\n  /// @dev Contract constructor function \n  function DutchAuctionPoD() public { \n    name = \"DutchAuction strategy PoD\";\n    version = \"0.9.3\";\n  }\n\n  function init(\n    address _wallet,\n    uint8 _tokenDecimals,\n    uint256 _startTime,\n    uint _priceStart,\n    uint _priceConstant,\n    uint32 _priceExponent,\n    uint256 _capOfToken\n  )\n  public onlyOwner() atStatus(Status.PoDDeployed) returns(bool)\n  {\n    require(_tokenDecimals != 0);\n    require(_priceStart > 0);\n    require(_priceConstant > 0);\n    require(_wallet != 0x0);\n    wallet = _wallet;\n    tokenMultiplier = 10 ** uint256(_tokenDecimals);\n    startTime = _startTime;\n    priceStart = _priceStart;\n    priceConstant = _priceConstant;\n    priceExponent = _priceExponent;\n    proofOfDonationCapOfToken = _capOfToken;\n    status = Status.PoDStarted;\n    Setup(_priceStart, _priceConstant, _priceExponent);\n    \n    return true;\n  }\n\n  /// --------------------------------- Auction Functions ------------------\n\n  /// @notice Finalize the auction - sets the final Token price and changes the auction\n  /// stage after no bids are allowed anymore.\n  /// @dev Finalize auction and set the final Token price.\n  function finalizeAuction() public atStatus(Status.PoDStarted) {\n    // Missing funds should be 0 at this point\n    uint missingFunds = missingFundsToEndAuction();\n    require(missingFunds == 0);\n\n    // Calculate the final price = WEI / Token\n    // Reminder: num_tokens_auctioned is the number of Rei (Token * token_multiplier) that are auctioned\n    tokenPrice = tokenMultiplier * totalReceivedWei / proofOfDonationCapOfToken;\n\n    endTime = now;\n\n    AuctionEnded(tokenPrice);\n\n    status = Status.PoDEnded;\n\n    assert(tokenPrice > 0);\n  }\n\n\n\n  /// @notice Get the Token price in WEI during the auction, at the time of\n  /// calling this function. Returns `0` if auction has ended.\n  /// Returns `price_start` before auction has started.\n  /// @dev Calculates the current Token price in WEI.\n  /// @return Returns WEI per Token (token_multiplier * Rei).\n  function price() public constant returns(uint) {\n    if (status == Status.PoDEnded) {\n      return 0;\n    }\n    return calcTokenPrice();\n  }\n\n  /// @notice Get the missing funds needed to end the auction,\n  /// calculated at the current Token price in WEI.\n  /// @dev The missing funds amount necessary to end the auction at the current Token price in WEI.\n  /// @return Returns the missing funds amount in WEI.\n  function missingFundsToEndAuction() public constant returns(uint) {\n\n    // num_tokens_auctioned = total number of Rei (Token * token_multiplier) that is auctioned\n    uint requiredWeiAtPrice = proofOfDonationCapOfToken * price() / tokenMultiplier;\n    if (requiredWeiAtPrice <= totalReceivedWei) {\n      return 0;\n    }\n\n    // assert(required_wei_at_price - received_wei > 0);\n    return requiredWeiAtPrice - totalReceivedWei;\n  }\n\n  /*\n   *  Private functions\n   */\n\n  /// @dev Calculates the token price (WEI / Token) at the current timestamp\n  /// during the auction; elapsed time = 0 before auction starts.\n  /// Based on the provided parameters, the price does not change in the first\n  /// `price_constant^(1/price_exponent)` seconds due to rounding.\n  /// Rounding in `decay_rate` also produces values that increase instead of decrease\n  /// in the beginning; these spikes decrease over time and are noticeable\n  /// only in first hours. This should be calculated before usage.\n  /// @return Returns the token price - Wei per Token.\n  function calcTokenPrice() constant private returns(uint) {\n    uint elapsed;\n    if (status == Status.PoDStarted) {\n      elapsed = now - startTime;\n    }\n\n    uint decayRate = elapsed ** priceExponent / priceConstant;\n    return priceStart * (1 + elapsed) / (1 + elapsed + decayRate);\n  }\n\n  /// Inherited functions\n\n\n  /// @notice Send `msg.value` WEI to the auction from the `msg.sender` account.\n  /// @dev Allows to send a bid to the auction.\n  function processDonate(address _user) internal returns (bool) {\n    require(_user != 0x0);\n    // Missing funds without the current bid value\n    uint missingFunds = missingFundsToEndAuction();\n\n    // We require bid values to be less than the funds missing to end the auction\n    // at the current price.\n    require(msg.value <= missingFunds);\n\n    // distribute ether to wallet.\n    wallet.transfer(msg.value);\n\n    // Send bid amount to wallet\n    BidSubmission(msg.sender, msg.value, missingFunds);\n\n    //assert(totalReceivedWei >= msg.value);\n    return true;\n  }\n\n  function getBalanceOfToken(address _user) public constant returns(uint) {\n    \n    uint num = (tokenMultiplier * weiBalances[_user]) / tokenPrice;\n    return num;\n  }\n}\n",
  "sourcePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoDs/DutchAuctionPoD.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoDs/DutchAuctionPoD.sol",
      "exportedSymbols": {
        "DutchAuctionPoD": [
          2741
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 2384,
        "name": "PragmaDirective",
        "src": "0:24:11"
      },
      {
        "attributes": {
          "SourceUnit": 2383,
          "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoD.sol",
          "file": "../PoD.sol",
          "scope": 2742,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2385,
        "name": "ImportDirective",
        "src": "25:20:11"
      },
      {
        "attributes": {
          "contractDependencies": [
            2117,
            2382
          ],
          "contractKind": "contract",
          "documentation": "@title DutchAuctionPoD - DutchAuction module contract\n @author - Yusaku Senga - <senga@dri.network>\n license - Please check the LICENSE at github.com/DRI-network/RICO",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            2741,
            2382,
            2117
          ],
          "name": "DutchAuctionPoD",
          "scope": 2742
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "PoD",
                  "referencedDeclaration": 2382,
                  "type": "contract PoD"
                },
                "id": 2386,
                "name": "UserDefinedTypeName",
                "src": "253:3:11"
              }
            ],
            "id": 2387,
            "name": "InheritanceSpecifier",
            "src": "253:3:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "priceStart",
              "scope": 2741,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2388,
                "name": "ElementaryTypeName",
                "src": "333:7:11"
              }
            ],
            "id": 2389,
            "name": "VariableDeclaration",
            "src": "333:25:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "priceConstant",
              "scope": 2741,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2390,
                "name": "ElementaryTypeName",
                "src": "401:7:11"
              }
            ],
            "id": 2391,
            "name": "VariableDeclaration",
            "src": "401:28:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "priceExponent",
              "scope": 2741,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint32",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint32",
                  "type": "uint32"
                },
                "id": 2392,
                "name": "ElementaryTypeName",
                "src": "463:6:11"
              }
            ],
            "id": 2393,
            "name": "VariableDeclaration",
            "src": "463:27:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "tokenMultiplier",
              "scope": 2741,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2394,
                "name": "ElementaryTypeName",
                "src": "530:7:11"
              }
            ],
            "id": 2395,
            "name": "VariableDeclaration",
            "src": "530:30:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "proofOfDonationCapOfToken",
              "scope": 2741,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2396,
                "name": "ElementaryTypeName",
                "src": "565:7:11"
              }
            ],
            "id": 2397,
            "name": "VariableDeclaration",
            "src": "565:33:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "proofOfDonationCapOfWei",
              "scope": 2741,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2398,
                "name": "ElementaryTypeName",
                "src": "602:7:11"
              }
            ],
            "id": 2399,
            "name": "VariableDeclaration",
            "src": "602:31:11"
          },
          {
            "attributes": {
              "name": "atStatus",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_status",
                      "scope": 2411,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "enum PoD.Status",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Status",
                          "referencedDeclaration": 2152,
                          "type": "enum PoD.Status"
                        },
                        "id": 2400,
                        "name": "UserDefinedTypeName",
                        "src": "681:6:11"
                      }
                    ],
                    "id": 2401,
                    "name": "VariableDeclaration",
                    "src": "681:14:11"
                  }
                ],
                "id": 2402,
                "name": "ParameterList",
                "src": "680:16:11"
              },
              {
                "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": 2403,
                            "name": "Identifier",
                            "src": "703:7:11"
                          },
                          {
                            "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": 2404,
                                "name": "Identifier",
                                "src": "711:6:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2401,
                                  "type": "enum PoD.Status",
                                  "value": "_status"
                                },
                                "id": 2405,
                                "name": "Identifier",
                                "src": "721:7:11"
                              }
                            ],
                            "id": 2406,
                            "name": "BinaryOperation",
                            "src": "711:17:11"
                          }
                        ],
                        "id": 2407,
                        "name": "FunctionCall",
                        "src": "703:26:11"
                      }
                    ],
                    "id": 2408,
                    "name": "ExpressionStatement",
                    "src": "703:26:11"
                  },
                  {
                    "id": 2409,
                    "name": "PlaceholderStatement",
                    "src": "735:1:11"
                  }
                ],
                "id": 2410,
                "name": "Block",
                "src": "697:44:11"
              }
            ],
            "id": 2411,
            "name": "ModifierDefinition",
            "src": "663:78:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Setup"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_startPrice",
                      "scope": 2419,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2412,
                        "name": "ElementaryTypeName",
                        "src": "781:4:11"
                      }
                    ],
                    "id": 2413,
                    "name": "VariableDeclaration",
                    "src": "781:24:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_priceConstant",
                      "scope": 2419,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2414,
                        "name": "ElementaryTypeName",
                        "src": "807:4:11"
                      }
                    ],
                    "id": 2415,
                    "name": "VariableDeclaration",
                    "src": "807:27:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_priceExponent",
                      "scope": 2419,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint32",
                          "type": "uint32"
                        },
                        "id": 2416,
                        "name": "ElementaryTypeName",
                        "src": "836:6:11"
                      }
                    ],
                    "id": 2417,
                    "name": "VariableDeclaration",
                    "src": "836:29:11"
                  }
                ],
                "id": 2418,
                "name": "ParameterList",
                "src": "780:86:11"
              }
            ],
            "id": 2419,
            "name": "EventDefinition",
            "src": "769:98:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AuctionStarted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_startTime",
                      "scope": 2425,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2420,
                        "name": "ElementaryTypeName",
                        "src": "891:4:11"
                      }
                    ],
                    "id": 2421,
                    "name": "VariableDeclaration",
                    "src": "891:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_blockNumber",
                      "scope": 2425,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2422,
                        "name": "ElementaryTypeName",
                        "src": "916:4:11"
                      }
                    ],
                    "id": 2423,
                    "name": "VariableDeclaration",
                    "src": "916:25:11"
                  }
                ],
                "id": 2424,
                "name": "ParameterList",
                "src": "890:52:11"
              }
            ],
            "id": 2425,
            "name": "EventDefinition",
            "src": "870:73:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "BidSubmission"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 2433,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2426,
                        "name": "ElementaryTypeName",
                        "src": "966:7:11"
                      }
                    ],
                    "id": 2427,
                    "name": "VariableDeclaration",
                    "src": "966:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 2433,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2428,
                        "name": "ElementaryTypeName",
                        "src": "991:4:11"
                      }
                    ],
                    "id": 2429,
                    "name": "VariableDeclaration",
                    "src": "991:12:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_missingFunds",
                      "scope": 2433,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2430,
                        "name": "ElementaryTypeName",
                        "src": "1005:4:11"
                      }
                    ],
                    "id": 2431,
                    "name": "VariableDeclaration",
                    "src": "1005:18:11"
                  }
                ],
                "id": 2432,
                "name": "ParameterList",
                "src": "965:59:11"
              }
            ],
            "id": 2433,
            "name": "EventDefinition",
            "src": "946:79:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AuctionEnded"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_finalPrice",
                      "scope": 2437,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2434,
                        "name": "ElementaryTypeName",
                        "src": "1047:4:11"
                      }
                    ],
                    "id": 2435,
                    "name": "VariableDeclaration",
                    "src": "1047:16:11"
                  }
                ],
                "id": 2436,
                "name": "ParameterList",
                "src": "1046:18:11"
              }
            ],
            "id": 2437,
            "name": "EventDefinition",
            "src": "1028:37:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "DutchAuctionPoD",
              "payable": false,
              "scope": 2741,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2438,
                "name": "ParameterList",
                "src": "1169:2:11"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2439,
                "name": "ParameterList",
                "src": "1179:0:11"
              },
              {
                "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": 2440,
                            "name": "Identifier",
                            "src": "1186:4:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "447574636841756374696f6e20737472617465677920506f44",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"DutchAuction strategy PoD\"",
                              "value": "DutchAuction strategy PoD"
                            },
                            "id": 2441,
                            "name": "Literal",
                            "src": "1193:27:11"
                          }
                        ],
                        "id": 2442,
                        "name": "Assignment",
                        "src": "1186:34:11"
                      }
                    ],
                    "id": 2443,
                    "name": "ExpressionStatement",
                    "src": "1186:34:11"
                  },
                  {
                    "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": 2444,
                            "name": "Identifier",
                            "src": "1226:7:11"
                          },
                          {
                            "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": 2445,
                            "name": "Literal",
                            "src": "1236:7:11"
                          }
                        ],
                        "id": 2446,
                        "name": "Assignment",
                        "src": "1226:17:11"
                      }
                    ],
                    "id": 2447,
                    "name": "ExpressionStatement",
                    "src": "1226:17:11"
                  }
                ],
                "id": 2448,
                "name": "Block",
                "src": "1179:69:11"
              }
            ],
            "id": 2449,
            "name": "FunctionDefinition",
            "src": "1145:103:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "init",
              "payable": false,
              "scope": 2741,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_wallet",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2450,
                        "name": "ElementaryTypeName",
                        "src": "1271:7:11"
                      }
                    ],
                    "id": 2451,
                    "name": "VariableDeclaration",
                    "src": "1271:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tokenDecimals",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 2452,
                        "name": "ElementaryTypeName",
                        "src": "1292:5:11"
                      }
                    ],
                    "id": 2453,
                    "name": "VariableDeclaration",
                    "src": "1292:20:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startTime",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2454,
                        "name": "ElementaryTypeName",
                        "src": "1318:7:11"
                      }
                    ],
                    "id": 2455,
                    "name": "VariableDeclaration",
                    "src": "1318:18:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_priceStart",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2456,
                        "name": "ElementaryTypeName",
                        "src": "1342:4:11"
                      }
                    ],
                    "id": 2457,
                    "name": "VariableDeclaration",
                    "src": "1342:16:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_priceConstant",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2458,
                        "name": "ElementaryTypeName",
                        "src": "1364:4:11"
                      }
                    ],
                    "id": 2459,
                    "name": "VariableDeclaration",
                    "src": "1364:19:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_priceExponent",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint32",
                          "type": "uint32"
                        },
                        "id": 2460,
                        "name": "ElementaryTypeName",
                        "src": "1389:6:11"
                      }
                    ],
                    "id": 2461,
                    "name": "VariableDeclaration",
                    "src": "1389:21:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_capOfToken",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2462,
                        "name": "ElementaryTypeName",
                        "src": "1416:7:11"
                      }
                    ],
                    "id": 2463,
                    "name": "VariableDeclaration",
                    "src": "1416:19:11"
                  }
                ],
                "id": 2464,
                "name": "ParameterList",
                "src": "1265:174:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2544,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2471,
                        "name": "ElementaryTypeName",
                        "src": "1498:4:11"
                      }
                    ],
                    "id": 2472,
                    "name": "VariableDeclaration",
                    "src": "1498:4:11"
                  }
                ],
                "id": 2473,
                "name": "ParameterList",
                "src": "1497:6:11"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2091,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2465,
                    "name": "Identifier",
                    "src": "1449:9:11"
                  }
                ],
                "id": 2466,
                "name": "ModifierInvocation",
                "src": "1449:11:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2411,
                      "type": "modifier (enum PoD.Status)",
                      "value": "atStatus"
                    },
                    "id": 2467,
                    "name": "Identifier",
                    "src": "1461:8:11"
                  },
                  {
                    "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": 2468,
                        "name": "Identifier",
                        "src": "1470:6:11"
                      }
                    ],
                    "id": 2469,
                    "name": "MemberAccess",
                    "src": "1470:18:11"
                  }
                ],
                "id": 2470,
                "name": "ModifierInvocation",
                "src": "1461:28:11"
              },
              {
                "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": 2474,
                            "name": "Identifier",
                            "src": "1512:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2453,
                                  "type": "uint8",
                                  "value": "_tokenDecimals"
                                },
                                "id": 2475,
                                "name": "Identifier",
                                "src": "1520:14:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2476,
                                "name": "Literal",
                                "src": "1538:1:11"
                              }
                            ],
                            "id": 2477,
                            "name": "BinaryOperation",
                            "src": "1520:19:11"
                          }
                        ],
                        "id": 2478,
                        "name": "FunctionCall",
                        "src": "1512:28:11"
                      }
                    ],
                    "id": 2479,
                    "name": "ExpressionStatement",
                    "src": "1512:28:11"
                  },
                  {
                    "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": 2480,
                            "name": "Identifier",
                            "src": "1546:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2457,
                                  "type": "uint256",
                                  "value": "_priceStart"
                                },
                                "id": 2481,
                                "name": "Identifier",
                                "src": "1554:11:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2482,
                                "name": "Literal",
                                "src": "1568:1:11"
                              }
                            ],
                            "id": 2483,
                            "name": "BinaryOperation",
                            "src": "1554:15:11"
                          }
                        ],
                        "id": 2484,
                        "name": "FunctionCall",
                        "src": "1546:24:11"
                      }
                    ],
                    "id": 2485,
                    "name": "ExpressionStatement",
                    "src": "1546:24:11"
                  },
                  {
                    "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": 2486,
                            "name": "Identifier",
                            "src": "1576:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2459,
                                  "type": "uint256",
                                  "value": "_priceConstant"
                                },
                                "id": 2487,
                                "name": "Identifier",
                                "src": "1584:14:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2488,
                                "name": "Literal",
                                "src": "1601:1:11"
                              }
                            ],
                            "id": 2489,
                            "name": "BinaryOperation",
                            "src": "1584:18:11"
                          }
                        ],
                        "id": 2490,
                        "name": "FunctionCall",
                        "src": "1576:27:11"
                      }
                    ],
                    "id": 2491,
                    "name": "ExpressionStatement",
                    "src": "1576:27:11"
                  },
                  {
                    "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": 2492,
                            "name": "Identifier",
                            "src": "1609:7:11"
                          },
                          {
                            "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": 2451,
                                  "type": "address",
                                  "value": "_wallet"
                                },
                                "id": 2493,
                                "name": "Identifier",
                                "src": "1617:7:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "307830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0x0"
                                },
                                "id": 2494,
                                "name": "Literal",
                                "src": "1628:3:11"
                              }
                            ],
                            "id": 2495,
                            "name": "BinaryOperation",
                            "src": "1617:14:11"
                          }
                        ],
                        "id": 2496,
                        "name": "FunctionCall",
                        "src": "1609:23:11"
                      }
                    ],
                    "id": 2497,
                    "name": "ExpressionStatement",
                    "src": "1609:23:11"
                  },
                  {
                    "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": 2498,
                            "name": "Identifier",
                            "src": "1638:6:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2451,
                              "type": "address",
                              "value": "_wallet"
                            },
                            "id": 2499,
                            "name": "Identifier",
                            "src": "1647:7:11"
                          }
                        ],
                        "id": 2500,
                        "name": "Assignment",
                        "src": "1638:16:11"
                      }
                    ],
                    "id": 2501,
                    "name": "ExpressionStatement",
                    "src": "1638:16:11"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2395,
                              "type": "uint256",
                              "value": "tokenMultiplier"
                            },
                            "id": 2502,
                            "name": "Identifier",
                            "src": "1660:15:11"
                          },
                          {
                            "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": 2503,
                                "name": "Literal",
                                "src": "1678:2:11"
                              },
                              {
                                "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": 2504,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1684:7:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2453,
                                      "type": "uint8",
                                      "value": "_tokenDecimals"
                                    },
                                    "id": 2505,
                                    "name": "Identifier",
                                    "src": "1692:14:11"
                                  }
                                ],
                                "id": 2506,
                                "name": "FunctionCall",
                                "src": "1684:23:11"
                              }
                            ],
                            "id": 2507,
                            "name": "BinaryOperation",
                            "src": "1678:29:11"
                          }
                        ],
                        "id": 2508,
                        "name": "Assignment",
                        "src": "1660:47:11"
                      }
                    ],
                    "id": 2509,
                    "name": "ExpressionStatement",
                    "src": "1660:47:11"
                  },
                  {
                    "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": 2510,
                            "name": "Identifier",
                            "src": "1713:9:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2455,
                              "type": "uint256",
                              "value": "_startTime"
                            },
                            "id": 2511,
                            "name": "Identifier",
                            "src": "1725:10:11"
                          }
                        ],
                        "id": 2512,
                        "name": "Assignment",
                        "src": "1713:22:11"
                      }
                    ],
                    "id": 2513,
                    "name": "ExpressionStatement",
                    "src": "1713:22:11"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2389,
                              "type": "uint256",
                              "value": "priceStart"
                            },
                            "id": 2514,
                            "name": "Identifier",
                            "src": "1741:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2457,
                              "type": "uint256",
                              "value": "_priceStart"
                            },
                            "id": 2515,
                            "name": "Identifier",
                            "src": "1754:11:11"
                          }
                        ],
                        "id": 2516,
                        "name": "Assignment",
                        "src": "1741:24:11"
                      }
                    ],
                    "id": 2517,
                    "name": "ExpressionStatement",
                    "src": "1741:24:11"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2391,
                              "type": "uint256",
                              "value": "priceConstant"
                            },
                            "id": 2518,
                            "name": "Identifier",
                            "src": "1771:13:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2459,
                              "type": "uint256",
                              "value": "_priceConstant"
                            },
                            "id": 2519,
                            "name": "Identifier",
                            "src": "1787:14:11"
                          }
                        ],
                        "id": 2520,
                        "name": "Assignment",
                        "src": "1771:30:11"
                      }
                    ],
                    "id": 2521,
                    "name": "ExpressionStatement",
                    "src": "1771:30:11"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2393,
                              "type": "uint32",
                              "value": "priceExponent"
                            },
                            "id": 2522,
                            "name": "Identifier",
                            "src": "1807:13:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2461,
                              "type": "uint32",
                              "value": "_priceExponent"
                            },
                            "id": 2523,
                            "name": "Identifier",
                            "src": "1823:14:11"
                          }
                        ],
                        "id": 2524,
                        "name": "Assignment",
                        "src": "1807:30:11"
                      }
                    ],
                    "id": 2525,
                    "name": "ExpressionStatement",
                    "src": "1807:30:11"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2397,
                              "type": "uint256",
                              "value": "proofOfDonationCapOfToken"
                            },
                            "id": 2526,
                            "name": "Identifier",
                            "src": "1843:25:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2463,
                              "type": "uint256",
                              "value": "_capOfToken"
                            },
                            "id": 2527,
                            "name": "Identifier",
                            "src": "1871:11:11"
                          }
                        ],
                        "id": 2528,
                        "name": "Assignment",
                        "src": "1843:39:11"
                      }
                    ],
                    "id": 2529,
                    "name": "ExpressionStatement",
                    "src": "1843:39:11"
                  },
                  {
                    "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": 2530,
                            "name": "Identifier",
                            "src": "1888:6:11"
                          },
                          {
                            "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": 2531,
                                "name": "Identifier",
                                "src": "1897:6:11"
                              }
                            ],
                            "id": 2532,
                            "name": "MemberAccess",
                            "src": "1897:17:11"
                          }
                        ],
                        "id": 2533,
                        "name": "Assignment",
                        "src": "1888:26:11"
                      }
                    ],
                    "id": 2534,
                    "name": "ExpressionStatement",
                    "src": "1888:26:11"
                  },
                  {
                    "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"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2419,
                              "type": "function (uint256,uint256,uint32)",
                              "value": "Setup"
                            },
                            "id": 2535,
                            "name": "Identifier",
                            "src": "1920:5:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2457,
                              "type": "uint256",
                              "value": "_priceStart"
                            },
                            "id": 2536,
                            "name": "Identifier",
                            "src": "1926:11:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2459,
                              "type": "uint256",
                              "value": "_priceConstant"
                            },
                            "id": 2537,
                            "name": "Identifier",
                            "src": "1939:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2461,
                              "type": "uint32",
                              "value": "_priceExponent"
                            },
                            "id": 2538,
                            "name": "Identifier",
                            "src": "1955:14:11"
                          }
                        ],
                        "id": 2539,
                        "name": "FunctionCall",
                        "src": "1920:50:11"
                      }
                    ],
                    "id": 2540,
                    "name": "ExpressionStatement",
                    "src": "1920:50:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2473
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2541,
                        "name": "Literal",
                        "src": "1988:4:11"
                      }
                    ],
                    "id": 2542,
                    "name": "Return",
                    "src": "1981:11:11"
                  }
                ],
                "id": 2543,
                "name": "Block",
                "src": "1506:491:11"
              }
            ],
            "id": 2544,
            "name": "FunctionDefinition",
            "src": "1252:745:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "finalizeAuction",
              "payable": false,
              "scope": 2741,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2545,
                "name": "ParameterList",
                "src": "2297:2:11"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2550,
                "name": "ParameterList",
                "src": "2335:0:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2411,
                      "type": "modifier (enum PoD.Status)",
                      "value": "atStatus"
                    },
                    "id": 2546,
                    "name": "Identifier",
                    "src": "2307:8:11"
                  },
                  {
                    "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": 2547,
                        "name": "Identifier",
                        "src": "2316:6:11"
                      }
                    ],
                    "id": 2548,
                    "name": "MemberAccess",
                    "src": "2316:17:11"
                  }
                ],
                "id": 2549,
                "name": "ModifierInvocation",
                "src": "2307:27:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        2552
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "missingFunds",
                          "scope": 2590,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 2551,
                            "name": "ElementaryTypeName",
                            "src": "2388:4:11"
                          }
                        ],
                        "id": 2552,
                        "name": "VariableDeclaration",
                        "src": "2388:17:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2633,
                              "type": "function () view returns (uint256)",
                              "value": "missingFundsToEndAuction"
                            },
                            "id": 2553,
                            "name": "Identifier",
                            "src": "2408:24:11"
                          }
                        ],
                        "id": 2554,
                        "name": "FunctionCall",
                        "src": "2408:26:11"
                      }
                    ],
                    "id": 2555,
                    "name": "VariableDeclarationStatement",
                    "src": "2388:46:11"
                  },
                  {
                    "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": 2556,
                            "name": "Identifier",
                            "src": "2440:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2552,
                                  "type": "uint256",
                                  "value": "missingFunds"
                                },
                                "id": 2557,
                                "name": "Identifier",
                                "src": "2448:12:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2558,
                                "name": "Literal",
                                "src": "2464:1:11"
                              }
                            ],
                            "id": 2559,
                            "name": "BinaryOperation",
                            "src": "2448:17:11"
                          }
                        ],
                        "id": 2560,
                        "name": "FunctionCall",
                        "src": "2440:26:11"
                      }
                    ],
                    "id": 2561,
                    "name": "ExpressionStatement",
                    "src": "2440:26:11"
                  },
                  {
                    "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": 2562,
                            "name": "Identifier",
                            "src": "2625:10:11"
                          },
                          {
                            "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": 2395,
                                      "type": "uint256",
                                      "value": "tokenMultiplier"
                                    },
                                    "id": 2563,
                                    "name": "Identifier",
                                    "src": "2638:15:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2140,
                                      "type": "uint256",
                                      "value": "totalReceivedWei"
                                    },
                                    "id": 2564,
                                    "name": "Identifier",
                                    "src": "2656:16:11"
                                  }
                                ],
                                "id": 2565,
                                "name": "BinaryOperation",
                                "src": "2638:34:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2397,
                                  "type": "uint256",
                                  "value": "proofOfDonationCapOfToken"
                                },
                                "id": 2566,
                                "name": "Identifier",
                                "src": "2675:25:11"
                              }
                            ],
                            "id": 2567,
                            "name": "BinaryOperation",
                            "src": "2638:62:11"
                          }
                        ],
                        "id": 2568,
                        "name": "Assignment",
                        "src": "2625:75:11"
                      }
                    ],
                    "id": 2569,
                    "name": "ExpressionStatement",
                    "src": "2625:75:11"
                  },
                  {
                    "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": 2570,
                            "name": "Identifier",
                            "src": "2707:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3769,
                              "type": "uint256",
                              "value": "now"
                            },
                            "id": 2571,
                            "name": "Identifier",
                            "src": "2717:3:11"
                          }
                        ],
                        "id": 2572,
                        "name": "Assignment",
                        "src": "2707:13:11"
                      }
                    ],
                    "id": 2573,
                    "name": "ExpressionStatement",
                    "src": "2707:13:11"
                  },
                  {
                    "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": 2437,
                              "type": "function (uint256)",
                              "value": "AuctionEnded"
                            },
                            "id": 2574,
                            "name": "Identifier",
                            "src": "2727:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2138,
                              "type": "uint256",
                              "value": "tokenPrice"
                            },
                            "id": 2575,
                            "name": "Identifier",
                            "src": "2740:10:11"
                          }
                        ],
                        "id": 2576,
                        "name": "FunctionCall",
                        "src": "2727:24:11"
                      }
                    ],
                    "id": 2577,
                    "name": "ExpressionStatement",
                    "src": "2727:24:11"
                  },
                  {
                    "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": 2578,
                            "name": "Identifier",
                            "src": "2758:6:11"
                          },
                          {
                            "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": 2579,
                                "name": "Identifier",
                                "src": "2767:6:11"
                              }
                            ],
                            "id": 2580,
                            "name": "MemberAccess",
                            "src": "2767:15:11"
                          }
                        ],
                        "id": 2581,
                        "name": "Assignment",
                        "src": "2758:24:11"
                      }
                    ],
                    "id": 2582,
                    "name": "ExpressionStatement",
                    "src": "2758:24:11"
                  },
                  {
                    "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": 3758,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 2583,
                            "name": "Identifier",
                            "src": "2789:6:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2138,
                                  "type": "uint256",
                                  "value": "tokenPrice"
                                },
                                "id": 2584,
                                "name": "Identifier",
                                "src": "2796:10:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2585,
                                "name": "Literal",
                                "src": "2809:1:11"
                              }
                            ],
                            "id": 2586,
                            "name": "BinaryOperation",
                            "src": "2796:14:11"
                          }
                        ],
                        "id": 2587,
                        "name": "FunctionCall",
                        "src": "2789:22:11"
                      }
                    ],
                    "id": 2588,
                    "name": "ExpressionStatement",
                    "src": "2789:22:11"
                  }
                ],
                "id": 2589,
                "name": "Block",
                "src": "2335:481:11"
              }
            ],
            "id": 2590,
            "name": "FunctionDefinition",
            "src": "2273:543:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "price",
              "payable": false,
              "scope": 2741,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2591,
                "name": "ParameterList",
                "src": "3147:2:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2607,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2592,
                        "name": "ElementaryTypeName",
                        "src": "3174:4:11"
                      }
                    ],
                    "id": 2593,
                    "name": "VariableDeclaration",
                    "src": "3174:4:11"
                  }
                ],
                "id": 2594,
                "name": "ParameterList",
                "src": "3173:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "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": 2595,
                            "name": "Identifier",
                            "src": "3190:6:11"
                          },
                          {
                            "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": 2596,
                                "name": "Identifier",
                                "src": "3200:6:11"
                              }
                            ],
                            "id": 2597,
                            "name": "MemberAccess",
                            "src": "3200:15:11"
                          }
                        ],
                        "id": 2598,
                        "name": "BinaryOperation",
                        "src": "3190:25:11"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 2594
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2599,
                                "name": "Literal",
                                "src": "3232:1:11"
                              }
                            ],
                            "id": 2600,
                            "name": "Return",
                            "src": "3225:8:11"
                          }
                        ],
                        "id": 2601,
                        "name": "Block",
                        "src": "3217:23:11"
                      }
                    ],
                    "id": 2602,
                    "name": "IfStatement",
                    "src": "3186:54:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2594
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2676,
                              "type": "function () view returns (uint256)",
                              "value": "calcTokenPrice"
                            },
                            "id": 2603,
                            "name": "Identifier",
                            "src": "3252:14:11"
                          }
                        ],
                        "id": 2604,
                        "name": "FunctionCall",
                        "src": "3252:16:11"
                      }
                    ],
                    "id": 2605,
                    "name": "Return",
                    "src": "3245:23:11"
                  }
                ],
                "id": 2606,
                "name": "Block",
                "src": "3180:93:11"
              }
            ],
            "id": 2607,
            "name": "FunctionDefinition",
            "src": "3133:140:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "missingFundsToEndAuction",
              "payable": false,
              "scope": 2741,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2608,
                "name": "ParameterList",
                "src": "3580:2:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2633,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2609,
                        "name": "ElementaryTypeName",
                        "src": "3607:4:11"
                      }
                    ],
                    "id": 2610,
                    "name": "VariableDeclaration",
                    "src": "3607:4:11"
                  }
                ],
                "id": 2611,
                "name": "ParameterList",
                "src": "3606:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        2613
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "requiredWeiAtPrice",
                          "scope": 2633,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 2612,
                            "name": "ElementaryTypeName",
                            "src": "3715:4:11"
                          }
                        ],
                        "id": 2613,
                        "name": "VariableDeclaration",
                        "src": "3715:23:11"
                      },
                      {
                        "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": 2397,
                                  "type": "uint256",
                                  "value": "proofOfDonationCapOfToken"
                                },
                                "id": 2614,
                                "name": "Identifier",
                                "src": "3741:25:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2607,
                                      "type": "function () view returns (uint256)",
                                      "value": "price"
                                    },
                                    "id": 2615,
                                    "name": "Identifier",
                                    "src": "3769:5:11"
                                  }
                                ],
                                "id": 2616,
                                "name": "FunctionCall",
                                "src": "3769:7:11"
                              }
                            ],
                            "id": 2617,
                            "name": "BinaryOperation",
                            "src": "3741:35:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2395,
                              "type": "uint256",
                              "value": "tokenMultiplier"
                            },
                            "id": 2618,
                            "name": "Identifier",
                            "src": "3779:15:11"
                          }
                        ],
                        "id": 2619,
                        "name": "BinaryOperation",
                        "src": "3741:53:11"
                      }
                    ],
                    "id": 2620,
                    "name": "VariableDeclarationStatement",
                    "src": "3715:79:11"
                  },
                  {
                    "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,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2613,
                              "type": "uint256",
                              "value": "requiredWeiAtPrice"
                            },
                            "id": 2621,
                            "name": "Identifier",
                            "src": "3804:18:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2140,
                              "type": "uint256",
                              "value": "totalReceivedWei"
                            },
                            "id": 2622,
                            "name": "Identifier",
                            "src": "3826:16:11"
                          }
                        ],
                        "id": 2623,
                        "name": "BinaryOperation",
                        "src": "3804:38:11"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 2611
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2624,
                                "name": "Literal",
                                "src": "3859:1:11"
                              }
                            ],
                            "id": 2625,
                            "name": "Return",
                            "src": "3852:8:11"
                          }
                        ],
                        "id": 2626,
                        "name": "Block",
                        "src": "3844:23:11"
                      }
                    ],
                    "id": 2627,
                    "name": "IfStatement",
                    "src": "3800:67:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2611
                    },
                    "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": 2613,
                              "type": "uint256",
                              "value": "requiredWeiAtPrice"
                            },
                            "id": 2628,
                            "name": "Identifier",
                            "src": "3937:18:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2140,
                              "type": "uint256",
                              "value": "totalReceivedWei"
                            },
                            "id": 2629,
                            "name": "Identifier",
                            "src": "3958:16:11"
                          }
                        ],
                        "id": 2630,
                        "name": "BinaryOperation",
                        "src": "3937:37:11"
                      }
                    ],
                    "id": 2631,
                    "name": "Return",
                    "src": "3930:44:11"
                  }
                ],
                "id": 2632,
                "name": "Block",
                "src": "3613:366:11"
              }
            ],
            "id": 2633,
            "name": "FunctionDefinition",
            "src": "3547:432:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "calcTokenPrice",
              "payable": false,
              "scope": 2741,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2634,
                "name": "ParameterList",
                "src": "4614:2:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2676,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2635,
                        "name": "ElementaryTypeName",
                        "src": "4642:4:11"
                      }
                    ],
                    "id": 2636,
                    "name": "VariableDeclaration",
                    "src": "4642:4:11"
                  }
                ],
                "id": 2637,
                "name": "ParameterList",
                "src": "4641:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "elapsed",
                          "scope": 2676,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 2638,
                            "name": "ElementaryTypeName",
                            "src": "4654:4:11"
                          }
                        ],
                        "id": 2639,
                        "name": "VariableDeclaration",
                        "src": "4654:12:11"
                      }
                    ],
                    "id": 2640,
                    "name": "VariableDeclarationStatement",
                    "src": "4654:12:11"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "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": 2641,
                            "name": "Identifier",
                            "src": "4676:6:11"
                          },
                          {
                            "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": 2642,
                                "name": "Identifier",
                                "src": "4686:6:11"
                              }
                            ],
                            "id": 2643,
                            "name": "MemberAccess",
                            "src": "4686:17:11"
                          }
                        ],
                        "id": 2644,
                        "name": "BinaryOperation",
                        "src": "4676:27:11"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2639,
                                      "type": "uint256",
                                      "value": "elapsed"
                                    },
                                    "id": 2645,
                                    "name": "Identifier",
                                    "src": "4713:7:11"
                                  },
                                  {
                                    "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": 3769,
                                          "type": "uint256",
                                          "value": "now"
                                        },
                                        "id": 2646,
                                        "name": "Identifier",
                                        "src": "4723:3:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2134,
                                          "type": "uint256",
                                          "value": "startTime"
                                        },
                                        "id": 2647,
                                        "name": "Identifier",
                                        "src": "4729:9:11"
                                      }
                                    ],
                                    "id": 2648,
                                    "name": "BinaryOperation",
                                    "src": "4723:15:11"
                                  }
                                ],
                                "id": 2649,
                                "name": "Assignment",
                                "src": "4713:25:11"
                              }
                            ],
                            "id": 2650,
                            "name": "ExpressionStatement",
                            "src": "4713:25:11"
                          }
                        ],
                        "id": 2651,
                        "name": "Block",
                        "src": "4705:40:11"
                      }
                    ],
                    "id": 2652,
                    "name": "IfStatement",
                    "src": "4672:73:11"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        2654
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "decayRate",
                          "scope": 2676,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 2653,
                            "name": "ElementaryTypeName",
                            "src": "4751:4:11"
                          }
                        ],
                        "id": 2654,
                        "name": "VariableDeclaration",
                        "src": "4751:14:11"
                      },
                      {
                        "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": 2639,
                                  "type": "uint256",
                                  "value": "elapsed"
                                },
                                "id": 2655,
                                "name": "Identifier",
                                "src": "4768:7:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2393,
                                  "type": "uint32",
                                  "value": "priceExponent"
                                },
                                "id": 2656,
                                "name": "Identifier",
                                "src": "4779:13:11"
                              }
                            ],
                            "id": 2657,
                            "name": "BinaryOperation",
                            "src": "4768:24:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2391,
                              "type": "uint256",
                              "value": "priceConstant"
                            },
                            "id": 2658,
                            "name": "Identifier",
                            "src": "4795:13:11"
                          }
                        ],
                        "id": 2659,
                        "name": "BinaryOperation",
                        "src": "4768:40:11"
                      }
                    ],
                    "id": 2660,
                    "name": "VariableDeclarationStatement",
                    "src": "4751:57:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2637
                    },
                    "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,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "*",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2389,
                                  "type": "uint256",
                                  "value": "priceStart"
                                },
                                "id": 2661,
                                "name": "Identifier",
                                "src": "4821:10:11"
                              },
                              {
                                "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,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 2662,
                                        "name": "Literal",
                                        "src": "4835:1:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2639,
                                          "type": "uint256",
                                          "value": "elapsed"
                                        },
                                        "id": 2663,
                                        "name": "Identifier",
                                        "src": "4839:7:11"
                                      }
                                    ],
                                    "id": 2664,
                                    "name": "BinaryOperation",
                                    "src": "4835:11:11"
                                  }
                                ],
                                "id": 2665,
                                "name": "TupleExpression",
                                "src": "4834:13:11"
                              }
                            ],
                            "id": 2666,
                            "name": "BinaryOperation",
                            "src": "4821:26:11"
                          },
                          {
                            "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,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 2667,
                                        "name": "Literal",
                                        "src": "4851:1:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2639,
                                          "type": "uint256",
                                          "value": "elapsed"
                                        },
                                        "id": 2668,
                                        "name": "Identifier",
                                        "src": "4855:7:11"
                                      }
                                    ],
                                    "id": 2669,
                                    "name": "BinaryOperation",
                                    "src": "4851:11:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2654,
                                      "type": "uint256",
                                      "value": "decayRate"
                                    },
                                    "id": 2670,
                                    "name": "Identifier",
                                    "src": "4865:9:11"
                                  }
                                ],
                                "id": 2671,
                                "name": "BinaryOperation",
                                "src": "4851:23:11"
                              }
                            ],
                            "id": 2672,
                            "name": "TupleExpression",
                            "src": "4850:25:11"
                          }
                        ],
                        "id": 2673,
                        "name": "BinaryOperation",
                        "src": "4821:54:11"
                      }
                    ],
                    "id": 2674,
                    "name": "Return",
                    "src": "4814:61:11"
                  }
                ],
                "id": 2675,
                "name": "Block",
                "src": "4648:232:11"
              }
            ],
            "id": 2676,
            "name": "FunctionDefinition",
            "src": "4591:289:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "processDonate",
              "payable": false,
              "scope": 2741,
              "stateMutability": "nonpayable",
              "superFunction": 2374,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2719,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2677,
                        "name": "ElementaryTypeName",
                        "src": "5064:7:11"
                      }
                    ],
                    "id": 2678,
                    "name": "VariableDeclaration",
                    "src": "5064:13:11"
                  }
                ],
                "id": 2679,
                "name": "ParameterList",
                "src": "5063:15:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2719,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2680,
                        "name": "ElementaryTypeName",
                        "src": "5097:4:11"
                      }
                    ],
                    "id": 2681,
                    "name": "VariableDeclaration",
                    "src": "5097:4:11"
                  }
                ],
                "id": 2682,
                "name": "ParameterList",
                "src": "5096:6:11"
              },
              {
                "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": 2683,
                            "name": "Identifier",
                            "src": "5109:7:11"
                          },
                          {
                            "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": 2678,
                                  "type": "address",
                                  "value": "_user"
                                },
                                "id": 2684,
                                "name": "Identifier",
                                "src": "5117:5:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "307830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0x0"
                                },
                                "id": 2685,
                                "name": "Literal",
                                "src": "5126:3:11"
                              }
                            ],
                            "id": 2686,
                            "name": "BinaryOperation",
                            "src": "5117:12:11"
                          }
                        ],
                        "id": 2687,
                        "name": "FunctionCall",
                        "src": "5109:21:11"
                      }
                    ],
                    "id": 2688,
                    "name": "ExpressionStatement",
                    "src": "5109:21:11"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        2690
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "missingFunds",
                          "scope": 2719,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 2689,
                            "name": "ElementaryTypeName",
                            "src": "5187:4:11"
                          }
                        ],
                        "id": 2690,
                        "name": "VariableDeclaration",
                        "src": "5187:17:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2633,
                              "type": "function () view returns (uint256)",
                              "value": "missingFundsToEndAuction"
                            },
                            "id": 2691,
                            "name": "Identifier",
                            "src": "5207:24:11"
                          }
                        ],
                        "id": 2692,
                        "name": "FunctionCall",
                        "src": "5207:26:11"
                      }
                    ],
                    "id": 2693,
                    "name": "VariableDeclarationStatement",
                    "src": "5187:46:11"
                  },
                  {
                    "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": 2694,
                            "name": "Identifier",
                            "src": "5351:7:11"
                          },
                          {
                            "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": 2695,
                                    "name": "Identifier",
                                    "src": "5359:3:11"
                                  }
                                ],
                                "id": 2696,
                                "name": "MemberAccess",
                                "src": "5359:9:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2690,
                                  "type": "uint256",
                                  "value": "missingFunds"
                                },
                                "id": 2697,
                                "name": "Identifier",
                                "src": "5372:12:11"
                              }
                            ],
                            "id": 2698,
                            "name": "BinaryOperation",
                            "src": "5359:25:11"
                          }
                        ],
                        "id": 2699,
                        "name": "FunctionCall",
                        "src": "5351:34:11"
                      }
                    ],
                    "id": 2700,
                    "name": "ExpressionStatement",
                    "src": "5351:34:11"
                  },
                  {
                    "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": 2701,
                                "name": "Identifier",
                                "src": "5427:6:11"
                              }
                            ],
                            "id": 2703,
                            "name": "MemberAccess",
                            "src": "5427:15:11"
                          },
                          {
                            "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": 2704,
                                "name": "Identifier",
                                "src": "5443:3:11"
                              }
                            ],
                            "id": 2705,
                            "name": "MemberAccess",
                            "src": "5443:9:11"
                          }
                        ],
                        "id": 2706,
                        "name": "FunctionCall",
                        "src": "5427:26:11"
                      }
                    ],
                    "id": 2707,
                    "name": "ExpressionStatement",
                    "src": "5427:26:11"
                  },
                  {
                    "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_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2433,
                              "type": "function (address,uint256,uint256)",
                              "value": "BidSubmission"
                            },
                            "id": 2708,
                            "name": "Identifier",
                            "src": "5493:13:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3767,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 2709,
                                "name": "Identifier",
                                "src": "5507:3:11"
                              }
                            ],
                            "id": 2710,
                            "name": "MemberAccess",
                            "src": "5507:10:11"
                          },
                          {
                            "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": 2711,
                                "name": "Identifier",
                                "src": "5519:3:11"
                              }
                            ],
                            "id": 2712,
                            "name": "MemberAccess",
                            "src": "5519:9:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2690,
                              "type": "uint256",
                              "value": "missingFunds"
                            },
                            "id": 2713,
                            "name": "Identifier",
                            "src": "5530:12:11"
                          }
                        ],
                        "id": 2714,
                        "name": "FunctionCall",
                        "src": "5493:50:11"
                      }
                    ],
                    "id": 2715,
                    "name": "ExpressionStatement",
                    "src": "5493:50:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2682
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2716,
                        "name": "Literal",
                        "src": "5602:4:11"
                      }
                    ],
                    "id": 2717,
                    "name": "Return",
                    "src": "5595:11:11"
                  }
                ],
                "id": 2718,
                "name": "Block",
                "src": "5103:508:11"
              }
            ],
            "id": 2719,
            "name": "FunctionDefinition",
            "src": "5041:570:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getBalanceOfToken",
              "payable": false,
              "scope": 2741,
              "stateMutability": "view",
              "superFunction": 2381,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2740,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2720,
                        "name": "ElementaryTypeName",
                        "src": "5642:7:11"
                      }
                    ],
                    "id": 2721,
                    "name": "VariableDeclaration",
                    "src": "5642:13:11"
                  }
                ],
                "id": 2722,
                "name": "ParameterList",
                "src": "5641:15:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2740,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2723,
                        "name": "ElementaryTypeName",
                        "src": "5681:4:11"
                      }
                    ],
                    "id": 2724,
                    "name": "VariableDeclaration",
                    "src": "5681:4:11"
                  }
                ],
                "id": 2725,
                "name": "ParameterList",
                "src": "5680:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        2727
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "num",
                          "scope": 2740,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 2726,
                            "name": "ElementaryTypeName",
                            "src": "5698:4:11"
                          }
                        ],
                        "id": 2727,
                        "name": "VariableDeclaration",
                        "src": "5698:8:11"
                      },
                      {
                        "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": 2395,
                                      "type": "uint256",
                                      "value": "tokenMultiplier"
                                    },
                                    "id": 2728,
                                    "name": "Identifier",
                                    "src": "5710:15:11"
                                  },
                                  {
                                    "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": 2729,
                                        "name": "Identifier",
                                        "src": "5728:11:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 2721,
                                          "type": "address",
                                          "value": "_user"
                                        },
                                        "id": 2730,
                                        "name": "Identifier",
                                        "src": "5740:5:11"
                                      }
                                    ],
                                    "id": 2731,
                                    "name": "IndexAccess",
                                    "src": "5728:18:11"
                                  }
                                ],
                                "id": 2732,
                                "name": "BinaryOperation",
                                "src": "5710:36:11"
                              }
                            ],
                            "id": 2733,
                            "name": "TupleExpression",
                            "src": "5709:38:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2138,
                              "type": "uint256",
                              "value": "tokenPrice"
                            },
                            "id": 2734,
                            "name": "Identifier",
                            "src": "5750:10:11"
                          }
                        ],
                        "id": 2735,
                        "name": "BinaryOperation",
                        "src": "5709:51:11"
                      }
                    ],
                    "id": 2736,
                    "name": "VariableDeclarationStatement",
                    "src": "5698:62:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2725
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2727,
                          "type": "uint256",
                          "value": "num"
                        },
                        "id": 2737,
                        "name": "Identifier",
                        "src": "5773:3:11"
                      }
                    ],
                    "id": 2738,
                    "name": "Return",
                    "src": "5766:10:11"
                  }
                ],
                "id": 2739,
                "name": "Block",
                "src": "5687:94:11"
              }
            ],
            "id": 2740,
            "name": "FunctionDefinition",
            "src": "5615:166:11"
          }
        ],
        "id": 2741,
        "name": "ContractDefinition",
        "src": "225:5558:11"
      }
    ],
    "id": 2742,
    "name": "SourceUnit",
    "src": "0:5784:11"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-07T05:10:52.558Z"
}