{
  "contractName": "PoD",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getBalanceOfWei",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "resetWeiBalance",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "status",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEndTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTokenPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "wallet",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCapOfWei",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getBalanceOfToken",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPoDEnded",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCapOfToken",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPoDStarted",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "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"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Donated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "time",
          "type": "uint256"
        }
      ],
      "name": "Ended",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.4.18;\nimport \"./Ownable.sol\";\nimport \"./SafeMath.sol\";\n\n/// @title PoD - PoD Based contract\n/// @author - Yusaku Senga - <senga@dri.network>\n/// license - Please check the LICENSE at github.com/DRI-network/RICO\n\n/**\n * @title      PoD\n * @dev        Proof of Donation\n *             Handles all donation functionality.\n *             Parent to the smart contracts in ./PoDs\n */\ncontract PoD is Ownable {\n  using SafeMath for uint256;\n\n  /**\n   * Storage\n   */\n  string  public name;\n  string  public version;\n  address public wallet;\n\n  uint256 startTime;\n  uint256 endTime;\n  uint256 tokenPrice;\n  uint256 totalReceivedWei;\n  uint256 proofOfDonationCapOfToken;\n  uint256 proofOfDonationCapOfWei;\n  mapping (address => uint256) weiBalances;\n\n  enum Status {\n    PoDDeployed,\n    PoDStarted,\n    PoDEnded\n  }\n  Status public status;\n\n  /** \n   * events\n   */\n  event Donated(address user, uint256 amount);\n  event Ended(uint256 time);\n\n  /**\n   * constructor\n   * @dev    define owner when this contract deployed.\n   */\n  function PoD() public {\n    status = Status.PoDDeployed;\n    totalReceivedWei = 0;\n    wallet = msg.sender;\n  }\n\n  /**\n   * @dev    executes donate from project supporter.\n   */\n  function donate() payable public returns (bool) {\n\n    require(status == Status.PoDStarted);\n\n    require(block.timestamp >= startTime);\n\n    // gasprice limit is set to 80 Gwei.  \n    require(tx.gasprice <= 80000000000);\n\n    require(msg.value > 0);\n\n    // call the internal function.\n    if (!processDonate(msg.sender)) {\n      endTime = now;\n      status = Status.PoDEnded;\n      Ended(endTime);\n    }\n\n    totalReceivedWei = totalReceivedWei.add(msg.value);\n\n    Donated(msg.sender, msg.value);\n    return true;\n  }\n\n  /**\n   * @dev   executes reset user's reserved token.\n   * @param _user         set minter's address\n   */\n  function resetWeiBalance(address _user) public onlyOwner() returns (bool) {\n\n    require(status == Status.PoDEnded);\n\n    // reset user's wei balances.\n    weiBalances[_user] = 0;\n\n    return true;\n  }\n\n  /**\n   * @dev    To get user's balance of wei.\n   */\n  function getBalanceOfWei(address _user) public constant returns(uint) {\n    return weiBalances[_user];\n  }\n\n  /**\n   * @dev    To get token price.\n   */\n  function getTokenPrice() public constant returns(uint256) {\n    return tokenPrice;\n  }\n\n  /**\n   * @dev    To get maximum token cap of pod.\n   */\n  function getCapOfToken() public constant returns(uint256) {\n    return proofOfDonationCapOfToken;\n  }\n\n  /**\n   * @dev    To get maximum wei cap of pod.\n   */\n  function getCapOfWei() public constant returns(uint256) {\n    return proofOfDonationCapOfWei;\n  }\n\n  /**\n   * @dev    To get maximum wei cap of pod.\n   */\n  function getStartTime() public constant returns (uint256) {\n    return startTime;\n  }\n\n  /**\n   * @dev    To get endTime of pod.\n   */\n  function getEndTime() public constant returns (uint256) {\n    return endTime;\n  }\n\n  /**\n   * @dev    get the status equal started of pod.\n   */\n  function isPoDStarted() public constant returns(bool) {\n    if (status == Status.PoDStarted)\n      return true;\n    return false;\n  }\n\n  /**\n   * @dev    get the status equal ended of pod.\n   */\n  function isPoDEnded() public constant returns(bool) {\n    if (status == Status.PoDEnded)\n      return true;\n    return false;\n  }\n\n  /**\n   * fallback function\n   */\n  function () payable public {\n    donate();\n  }\n\n  /**\n   * Interface functions \n   */\n  function processDonate(address _user) internal returns (bool);\n\n  function getBalanceOfToken(address _user) public constant returns (uint256);\n}",
  "sourcePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoD.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/PoD.sol",
      "exportedSymbols": {
        "PoD": [
          2382
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 2119,
        "name": "PragmaDirective",
        "src": "0:24:10"
      },
      {
        "attributes": {
          "SourceUnit": 2118,
          "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/Ownable.sol",
          "file": "./Ownable.sol",
          "scope": 2383,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2120,
        "name": "ImportDirective",
        "src": "25:23:10"
      },
      {
        "attributes": {
          "SourceUnit": 3756,
          "absolutePath": "/Users/lucaban/.ghq/github.com/DRI-network/RICO/contracts/SafeMath.sol",
          "file": "./SafeMath.sol",
          "scope": 2383,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2121,
        "name": "ImportDirective",
        "src": "49:24:10"
      },
      {
        "attributes": {
          "contractDependencies": [
            2117
          ],
          "contractKind": "contract",
          "documentation": "@title      PoD\n@dev        Proof of Donation\n            Handles all donation functionality.\n            Parent to the smart contracts in ./PoDs",
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            2382,
            2117
          ],
          "name": "PoD",
          "scope": 2383
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Ownable",
                  "referencedDeclaration": 2117,
                  "type": "contract Ownable"
                },
                "id": 2122,
                "name": "UserDefinedTypeName",
                "src": "413:7:10"
              }
            ],
            "id": 2123,
            "name": "InheritanceSpecifier",
            "src": "413:7:10"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SafeMath",
                  "referencedDeclaration": 3755,
                  "type": "library SafeMath"
                },
                "id": 2124,
                "name": "UserDefinedTypeName",
                "src": "431:8:10"
              },
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2125,
                "name": "ElementaryTypeName",
                "src": "444:7:10"
              }
            ],
            "id": 2126,
            "name": "UsingForDirective",
            "src": "425:27:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "name",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "string storage ref",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "string",
                  "type": "string storage pointer"
                },
                "id": 2127,
                "name": "ElementaryTypeName",
                "src": "481:6:10"
              }
            ],
            "id": 2128,
            "name": "VariableDeclaration",
            "src": "481:19:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "version",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "string storage ref",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "string",
                  "type": "string storage pointer"
                },
                "id": 2129,
                "name": "ElementaryTypeName",
                "src": "504:6:10"
              }
            ],
            "id": 2130,
            "name": "VariableDeclaration",
            "src": "504:22:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "wallet",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "type": "address"
                },
                "id": 2131,
                "name": "ElementaryTypeName",
                "src": "530:7:10"
              }
            ],
            "id": 2132,
            "name": "VariableDeclaration",
            "src": "530:21:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "startTime",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2133,
                "name": "ElementaryTypeName",
                "src": "556:7:10"
              }
            ],
            "id": 2134,
            "name": "VariableDeclaration",
            "src": "556:17:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "endTime",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2135,
                "name": "ElementaryTypeName",
                "src": "577:7:10"
              }
            ],
            "id": 2136,
            "name": "VariableDeclaration",
            "src": "577:15:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "tokenPrice",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2137,
                "name": "ElementaryTypeName",
                "src": "596:7:10"
              }
            ],
            "id": 2138,
            "name": "VariableDeclaration",
            "src": "596:18:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "totalReceivedWei",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2139,
                "name": "ElementaryTypeName",
                "src": "618:7:10"
              }
            ],
            "id": 2140,
            "name": "VariableDeclaration",
            "src": "618:24:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "proofOfDonationCapOfToken",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2141,
                "name": "ElementaryTypeName",
                "src": "646:7:10"
              }
            ],
            "id": 2142,
            "name": "VariableDeclaration",
            "src": "646:33:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "proofOfDonationCapOfWei",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 2143,
                "name": "ElementaryTypeName",
                "src": "683:7:10"
              }
            ],
            "id": 2144,
            "name": "VariableDeclaration",
            "src": "683:31:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "weiBalances",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => uint256)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => uint256)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 2145,
                    "name": "ElementaryTypeName",
                    "src": "727:7:10"
                  },
                  {
                    "attributes": {
                      "name": "uint256",
                      "type": "uint256"
                    },
                    "id": 2146,
                    "name": "ElementaryTypeName",
                    "src": "738:7:10"
                  }
                ],
                "id": 2147,
                "name": "Mapping",
                "src": "718:28:10"
              }
            ],
            "id": 2148,
            "name": "VariableDeclaration",
            "src": "718:40:10"
          },
          {
            "attributes": {
              "canonicalName": "PoD.Status",
              "name": "Status"
            },
            "children": [
              {
                "attributes": {
                  "name": "PoDDeployed"
                },
                "id": 2149,
                "name": "EnumValue",
                "src": "781:11:10"
              },
              {
                "attributes": {
                  "name": "PoDStarted"
                },
                "id": 2150,
                "name": "EnumValue",
                "src": "798:10:10"
              },
              {
                "attributes": {
                  "name": "PoDEnded"
                },
                "id": 2151,
                "name": "EnumValue",
                "src": "814:8:10"
              }
            ],
            "id": 2152,
            "name": "EnumDefinition",
            "src": "763:63:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "status",
              "scope": 2382,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "enum PoD.Status",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Status",
                  "referencedDeclaration": 2152,
                  "type": "enum PoD.Status"
                },
                "id": 2153,
                "name": "UserDefinedTypeName",
                "src": "829:6:10"
              }
            ],
            "id": 2154,
            "name": "VariableDeclaration",
            "src": "829:20:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Donated"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "user",
                      "scope": 2160,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2155,
                        "name": "ElementaryTypeName",
                        "src": "893:7:10"
                      }
                    ],
                    "id": 2156,
                    "name": "VariableDeclaration",
                    "src": "893:12:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount",
                      "scope": 2160,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2157,
                        "name": "ElementaryTypeName",
                        "src": "907:7:10"
                      }
                    ],
                    "id": 2158,
                    "name": "VariableDeclaration",
                    "src": "907:14:10"
                  }
                ],
                "id": 2159,
                "name": "ParameterList",
                "src": "892:30:10"
              }
            ],
            "id": 2160,
            "name": "EventDefinition",
            "src": "879:44:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Ended"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "time",
                      "scope": 2164,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2161,
                        "name": "ElementaryTypeName",
                        "src": "938:7:10"
                      }
                    ],
                    "id": 2162,
                    "name": "VariableDeclaration",
                    "src": "938:12:10"
                  }
                ],
                "id": 2163,
                "name": "ParameterList",
                "src": "937:14:10"
              }
            ],
            "id": 2164,
            "name": "EventDefinition",
            "src": "926:26:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "PoD",
              "payable": false,
              "scope": 2382,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2165,
                "name": "ParameterList",
                "src": "1052:2:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2166,
                "name": "ParameterList",
                "src": "1062:0:10"
              },
              {
                "children": [
                  {
                    "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": 2167,
                            "name": "Identifier",
                            "src": "1068:6:10"
                          },
                          {
                            "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": 2168,
                                "name": "Identifier",
                                "src": "1077:6:10"
                              }
                            ],
                            "id": 2169,
                            "name": "MemberAccess",
                            "src": "1077:18:10"
                          }
                        ],
                        "id": 2170,
                        "name": "Assignment",
                        "src": "1068:27:10"
                      }
                    ],
                    "id": 2171,
                    "name": "ExpressionStatement",
                    "src": "1068:27:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2140,
                              "type": "uint256",
                              "value": "totalReceivedWei"
                            },
                            "id": 2172,
                            "name": "Identifier",
                            "src": "1101:16:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 2173,
                            "name": "Literal",
                            "src": "1120:1:10"
                          }
                        ],
                        "id": 2174,
                        "name": "Assignment",
                        "src": "1101:20:10"
                      }
                    ],
                    "id": 2175,
                    "name": "ExpressionStatement",
                    "src": "1101:20:10"
                  },
                  {
                    "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": 2176,
                            "name": "Identifier",
                            "src": "1127:6:10"
                          },
                          {
                            "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": 2177,
                                "name": "Identifier",
                                "src": "1136:3:10"
                              }
                            ],
                            "id": 2178,
                            "name": "MemberAccess",
                            "src": "1136:10:10"
                          }
                        ],
                        "id": 2179,
                        "name": "Assignment",
                        "src": "1127:19:10"
                      }
                    ],
                    "id": 2180,
                    "name": "ExpressionStatement",
                    "src": "1127:19:10"
                  }
                ],
                "id": 2181,
                "name": "Block",
                "src": "1062:89:10"
              }
            ],
            "id": 2182,
            "name": "FunctionDefinition",
            "src": "1040:111:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "donate",
              "payable": true,
              "scope": 2382,
              "stateMutability": "payable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2183,
                "name": "ParameterList",
                "src": "1235:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2253,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2184,
                        "name": "ElementaryTypeName",
                        "src": "1262:4:10"
                      }
                    ],
                    "id": 2185,
                    "name": "VariableDeclaration",
                    "src": "1262:4:10"
                  }
                ],
                "id": 2186,
                "name": "ParameterList",
                "src": "1261:6:10"
              },
              {
                "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": 2187,
                            "name": "Identifier",
                            "src": "1275:7:10"
                          },
                          {
                            "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": 2188,
                                "name": "Identifier",
                                "src": "1283:6:10"
                              },
                              {
                                "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": 2189,
                                    "name": "Identifier",
                                    "src": "1293:6:10"
                                  }
                                ],
                                "id": 2190,
                                "name": "MemberAccess",
                                "src": "1293:17:10"
                              }
                            ],
                            "id": 2191,
                            "name": "BinaryOperation",
                            "src": "1283:27:10"
                          }
                        ],
                        "id": 2192,
                        "name": "FunctionCall",
                        "src": "1275:36:10"
                      }
                    ],
                    "id": 2193,
                    "name": "ExpressionStatement",
                    "src": "1275:36:10"
                  },
                  {
                    "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": 2194,
                            "name": "Identifier",
                            "src": "1318:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "timestamp",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3759,
                                      "type": "block",
                                      "value": "block"
                                    },
                                    "id": 2195,
                                    "name": "Identifier",
                                    "src": "1326:5:10"
                                  }
                                ],
                                "id": 2196,
                                "name": "MemberAccess",
                                "src": "1326:15:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2134,
                                  "type": "uint256",
                                  "value": "startTime"
                                },
                                "id": 2197,
                                "name": "Identifier",
                                "src": "1345:9:10"
                              }
                            ],
                            "id": 2198,
                            "name": "BinaryOperation",
                            "src": "1326:28:10"
                          }
                        ],
                        "id": 2199,
                        "name": "FunctionCall",
                        "src": "1318:37:10"
                      }
                    ],
                    "id": 2200,
                    "name": "ExpressionStatement",
                    "src": "1318:37:10"
                  },
                  {
                    "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": 2201,
                            "name": "Identifier",
                            "src": "1405:7:10"
                          },
                          {
                            "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": "gasprice",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3777,
                                      "type": "tx",
                                      "value": "tx"
                                    },
                                    "id": 2202,
                                    "name": "Identifier",
                                    "src": "1413:2:10"
                                  }
                                ],
                                "id": 2203,
                                "name": "MemberAccess",
                                "src": "1413:11:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "3830303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 80000000000",
                                  "value": "80000000000"
                                },
                                "id": 2204,
                                "name": "Literal",
                                "src": "1428:11:10"
                              }
                            ],
                            "id": 2205,
                            "name": "BinaryOperation",
                            "src": "1413:26:10"
                          }
                        ],
                        "id": 2206,
                        "name": "FunctionCall",
                        "src": "1405:35:10"
                      }
                    ],
                    "id": 2207,
                    "name": "ExpressionStatement",
                    "src": "1405:35:10"
                  },
                  {
                    "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": 2208,
                            "name": "Identifier",
                            "src": "1447:7:10"
                          },
                          {
                            "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": 2209,
                                    "name": "Identifier",
                                    "src": "1455:3:10"
                                  }
                                ],
                                "id": 2210,
                                "name": "MemberAccess",
                                "src": "1455:9:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 2211,
                                "name": "Literal",
                                "src": "1467:1:10"
                              }
                            ],
                            "id": 2212,
                            "name": "BinaryOperation",
                            "src": "1455:13:10"
                          }
                        ],
                        "id": 2213,
                        "name": "FunctionCall",
                        "src": "1447:22:10"
                      }
                    ],
                    "id": 2214,
                    "name": "ExpressionStatement",
                    "src": "1447:22:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!",
                          "prefix": true,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2374,
                                  "type": "function (address) returns (bool)",
                                  "value": "processDonate"
                                },
                                "id": 2215,
                                "name": "Identifier",
                                "src": "1516:13:10"
                              },
                              {
                                "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": 2216,
                                    "name": "Identifier",
                                    "src": "1530:3:10"
                                  }
                                ],
                                "id": 2217,
                                "name": "MemberAccess",
                                "src": "1530:10:10"
                              }
                            ],
                            "id": 2218,
                            "name": "FunctionCall",
                            "src": "1516:25:10"
                          }
                        ],
                        "id": 2219,
                        "name": "UnaryOperation",
                        "src": "1515:26:10"
                      },
                      {
                        "children": [
                          {
                            "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": 2220,
                                    "name": "Identifier",
                                    "src": "1551:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3769,
                                      "type": "uint256",
                                      "value": "now"
                                    },
                                    "id": 2221,
                                    "name": "Identifier",
                                    "src": "1561:3:10"
                                  }
                                ],
                                "id": 2222,
                                "name": "Assignment",
                                "src": "1551:13:10"
                              }
                            ],
                            "id": 2223,
                            "name": "ExpressionStatement",
                            "src": "1551:13:10"
                          },
                          {
                            "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": 2224,
                                    "name": "Identifier",
                                    "src": "1572:6:10"
                                  },
                                  {
                                    "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": 2225,
                                        "name": "Identifier",
                                        "src": "1581:6:10"
                                      }
                                    ],
                                    "id": 2226,
                                    "name": "MemberAccess",
                                    "src": "1581:15:10"
                                  }
                                ],
                                "id": 2227,
                                "name": "Assignment",
                                "src": "1572:24:10"
                              }
                            ],
                            "id": 2228,
                            "name": "ExpressionStatement",
                            "src": "1572:24:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2164,
                                      "type": "function (uint256)",
                                      "value": "Ended"
                                    },
                                    "id": 2229,
                                    "name": "Identifier",
                                    "src": "1604:5:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2136,
                                      "type": "uint256",
                                      "value": "endTime"
                                    },
                                    "id": 2230,
                                    "name": "Identifier",
                                    "src": "1610:7:10"
                                  }
                                ],
                                "id": 2231,
                                "name": "FunctionCall",
                                "src": "1604:14:10"
                              }
                            ],
                            "id": 2232,
                            "name": "ExpressionStatement",
                            "src": "1604:14:10"
                          }
                        ],
                        "id": 2233,
                        "name": "Block",
                        "src": "1543:82:10"
                      }
                    ],
                    "id": 2234,
                    "name": "IfStatement",
                    "src": "1511:114:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2140,
                              "type": "uint256",
                              "value": "totalReceivedWei"
                            },
                            "id": 2235,
                            "name": "Identifier",
                            "src": "1631:16:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "add",
                                  "referencedDeclaration": 3754,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2140,
                                      "type": "uint256",
                                      "value": "totalReceivedWei"
                                    },
                                    "id": 2236,
                                    "name": "Identifier",
                                    "src": "1650:16:10"
                                  }
                                ],
                                "id": 2237,
                                "name": "MemberAccess",
                                "src": "1650:20:10"
                              },
                              {
                                "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": 2238,
                                    "name": "Identifier",
                                    "src": "1671:3:10"
                                  }
                                ],
                                "id": 2239,
                                "name": "MemberAccess",
                                "src": "1671:9:10"
                              }
                            ],
                            "id": 2240,
                            "name": "FunctionCall",
                            "src": "1650:31:10"
                          }
                        ],
                        "id": 2241,
                        "name": "Assignment",
                        "src": "1631:50:10"
                      }
                    ],
                    "id": 2242,
                    "name": "ExpressionStatement",
                    "src": "1631:50:10"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2160,
                              "type": "function (address,uint256)",
                              "value": "Donated"
                            },
                            "id": 2243,
                            "name": "Identifier",
                            "src": "1688:7:10"
                          },
                          {
                            "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": 2244,
                                "name": "Identifier",
                                "src": "1696:3:10"
                              }
                            ],
                            "id": 2245,
                            "name": "MemberAccess",
                            "src": "1696:10:10"
                          },
                          {
                            "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": 2246,
                                "name": "Identifier",
                                "src": "1708:3:10"
                              }
                            ],
                            "id": 2247,
                            "name": "MemberAccess",
                            "src": "1708:9:10"
                          }
                        ],
                        "id": 2248,
                        "name": "FunctionCall",
                        "src": "1688:30:10"
                      }
                    ],
                    "id": 2249,
                    "name": "ExpressionStatement",
                    "src": "1688:30:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2186
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2250,
                        "name": "Literal",
                        "src": "1731:4:10"
                      }
                    ],
                    "id": 2251,
                    "name": "Return",
                    "src": "1724:11:10"
                  }
                ],
                "id": 2252,
                "name": "Block",
                "src": "1268:472:10"
              }
            ],
            "id": 2253,
            "name": "FunctionDefinition",
            "src": "1220:520:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "resetWeiBalance",
              "payable": false,
              "scope": 2382,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2278,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2254,
                        "name": "ElementaryTypeName",
                        "src": "1878:7:10"
                      }
                    ],
                    "id": 2255,
                    "name": "VariableDeclaration",
                    "src": "1878:13:10"
                  }
                ],
                "id": 2256,
                "name": "ParameterList",
                "src": "1877:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2278,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2259,
                        "name": "ElementaryTypeName",
                        "src": "1921:4:10"
                      }
                    ],
                    "id": 2260,
                    "name": "VariableDeclaration",
                    "src": "1921:4:10"
                  }
                ],
                "id": 2261,
                "name": "ParameterList",
                "src": "1920:6:10"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2091,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 2257,
                    "name": "Identifier",
                    "src": "1900:9:10"
                  }
                ],
                "id": 2258,
                "name": "ModifierInvocation",
                "src": "1900:11:10"
              },
              {
                "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": 2262,
                            "name": "Identifier",
                            "src": "1934:7:10"
                          },
                          {
                            "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": 2263,
                                "name": "Identifier",
                                "src": "1942:6:10"
                              },
                              {
                                "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": 2264,
                                    "name": "Identifier",
                                    "src": "1952:6:10"
                                  }
                                ],
                                "id": 2265,
                                "name": "MemberAccess",
                                "src": "1952:15:10"
                              }
                            ],
                            "id": 2266,
                            "name": "BinaryOperation",
                            "src": "1942:25:10"
                          }
                        ],
                        "id": 2267,
                        "name": "FunctionCall",
                        "src": "1934:34:10"
                      }
                    ],
                    "id": 2268,
                    "name": "ExpressionStatement",
                    "src": "1934:34:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2148,
                                  "type": "mapping(address => uint256)",
                                  "value": "weiBalances"
                                },
                                "id": 2269,
                                "name": "Identifier",
                                "src": "2009:11:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2255,
                                  "type": "address",
                                  "value": "_user"
                                },
                                "id": 2270,
                                "name": "Identifier",
                                "src": "2021:5:10"
                              }
                            ],
                            "id": 2271,
                            "name": "IndexAccess",
                            "src": "2009:18:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 2272,
                            "name": "Literal",
                            "src": "2030:1:10"
                          }
                        ],
                        "id": 2273,
                        "name": "Assignment",
                        "src": "2009:22:10"
                      }
                    ],
                    "id": 2274,
                    "name": "ExpressionStatement",
                    "src": "2009:22:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2261
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 2275,
                        "name": "Literal",
                        "src": "2045:4:10"
                      }
                    ],
                    "id": 2276,
                    "name": "Return",
                    "src": "2038:11:10"
                  }
                ],
                "id": 2277,
                "name": "Block",
                "src": "1927:127:10"
              }
            ],
            "id": 2278,
            "name": "FunctionDefinition",
            "src": "1853:201:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getBalanceOfWei",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2290,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2279,
                        "name": "ElementaryTypeName",
                        "src": "2138:7:10"
                      }
                    ],
                    "id": 2280,
                    "name": "VariableDeclaration",
                    "src": "2138:13:10"
                  }
                ],
                "id": 2281,
                "name": "ParameterList",
                "src": "2137:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2290,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2282,
                        "name": "ElementaryTypeName",
                        "src": "2177:4:10"
                      }
                    ],
                    "id": 2283,
                    "name": "VariableDeclaration",
                    "src": "2177:4:10"
                  }
                ],
                "id": 2284,
                "name": "ParameterList",
                "src": "2176:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2284
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2148,
                              "type": "mapping(address => uint256)",
                              "value": "weiBalances"
                            },
                            "id": 2285,
                            "name": "Identifier",
                            "src": "2196:11:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2280,
                              "type": "address",
                              "value": "_user"
                            },
                            "id": 2286,
                            "name": "Identifier",
                            "src": "2208:5:10"
                          }
                        ],
                        "id": 2287,
                        "name": "IndexAccess",
                        "src": "2196:18:10"
                      }
                    ],
                    "id": 2288,
                    "name": "Return",
                    "src": "2189:25:10"
                  }
                ],
                "id": 2289,
                "name": "Block",
                "src": "2183:36:10"
              }
            ],
            "id": 2290,
            "name": "FunctionDefinition",
            "src": "2113:106:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getTokenPrice",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2291,
                "name": "ParameterList",
                "src": "2290:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2298,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2292,
                        "name": "ElementaryTypeName",
                        "src": "2317:7:10"
                      }
                    ],
                    "id": 2293,
                    "name": "VariableDeclaration",
                    "src": "2317:7:10"
                  }
                ],
                "id": 2294,
                "name": "ParameterList",
                "src": "2316:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2294
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2138,
                          "type": "uint256",
                          "value": "tokenPrice"
                        },
                        "id": 2295,
                        "name": "Identifier",
                        "src": "2339:10:10"
                      }
                    ],
                    "id": 2296,
                    "name": "Return",
                    "src": "2332:17:10"
                  }
                ],
                "id": 2297,
                "name": "Block",
                "src": "2326:28:10"
              }
            ],
            "id": 2298,
            "name": "FunctionDefinition",
            "src": "2268:86:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getCapOfToken",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2299,
                "name": "ParameterList",
                "src": "2438:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2306,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2300,
                        "name": "ElementaryTypeName",
                        "src": "2465:7:10"
                      }
                    ],
                    "id": 2301,
                    "name": "VariableDeclaration",
                    "src": "2465:7:10"
                  }
                ],
                "id": 2302,
                "name": "ParameterList",
                "src": "2464:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2302
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2142,
                          "type": "uint256",
                          "value": "proofOfDonationCapOfToken"
                        },
                        "id": 2303,
                        "name": "Identifier",
                        "src": "2487:25:10"
                      }
                    ],
                    "id": 2304,
                    "name": "Return",
                    "src": "2480:32:10"
                  }
                ],
                "id": 2305,
                "name": "Block",
                "src": "2474:43:10"
              }
            ],
            "id": 2306,
            "name": "FunctionDefinition",
            "src": "2416:101:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getCapOfWei",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2307,
                "name": "ParameterList",
                "src": "2597:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2314,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2308,
                        "name": "ElementaryTypeName",
                        "src": "2624:7:10"
                      }
                    ],
                    "id": 2309,
                    "name": "VariableDeclaration",
                    "src": "2624:7:10"
                  }
                ],
                "id": 2310,
                "name": "ParameterList",
                "src": "2623:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2310
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2144,
                          "type": "uint256",
                          "value": "proofOfDonationCapOfWei"
                        },
                        "id": 2311,
                        "name": "Identifier",
                        "src": "2646:23:10"
                      }
                    ],
                    "id": 2312,
                    "name": "Return",
                    "src": "2639:30:10"
                  }
                ],
                "id": 2313,
                "name": "Block",
                "src": "2633:41:10"
              }
            ],
            "id": 2314,
            "name": "FunctionDefinition",
            "src": "2577:97:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getStartTime",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2315,
                "name": "ParameterList",
                "src": "2755:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2322,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2316,
                        "name": "ElementaryTypeName",
                        "src": "2783:7:10"
                      }
                    ],
                    "id": 2317,
                    "name": "VariableDeclaration",
                    "src": "2783:7:10"
                  }
                ],
                "id": 2318,
                "name": "ParameterList",
                "src": "2782:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2318
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2134,
                          "type": "uint256",
                          "value": "startTime"
                        },
                        "id": 2319,
                        "name": "Identifier",
                        "src": "2805:9:10"
                      }
                    ],
                    "id": 2320,
                    "name": "Return",
                    "src": "2798:16:10"
                  }
                ],
                "id": 2321,
                "name": "Block",
                "src": "2792:27:10"
              }
            ],
            "id": 2322,
            "name": "FunctionDefinition",
            "src": "2734:85:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getEndTime",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2323,
                "name": "ParameterList",
                "src": "2890:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2330,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2324,
                        "name": "ElementaryTypeName",
                        "src": "2918:7:10"
                      }
                    ],
                    "id": 2325,
                    "name": "VariableDeclaration",
                    "src": "2918:7:10"
                  }
                ],
                "id": 2326,
                "name": "ParameterList",
                "src": "2917:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2326
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2136,
                          "type": "uint256",
                          "value": "endTime"
                        },
                        "id": 2327,
                        "name": "Identifier",
                        "src": "2940:7:10"
                      }
                    ],
                    "id": 2328,
                    "name": "Return",
                    "src": "2933:14:10"
                  }
                ],
                "id": 2329,
                "name": "Block",
                "src": "2927:25:10"
              }
            ],
            "id": 2330,
            "name": "FunctionDefinition",
            "src": "2871:81:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isPoDStarted",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2331,
                "name": "ParameterList",
                "src": "3039:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2345,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2332,
                        "name": "ElementaryTypeName",
                        "src": "3066:4:10"
                      }
                    ],
                    "id": 2333,
                    "name": "VariableDeclaration",
                    "src": "3066:4:10"
                  }
                ],
                "id": 2334,
                "name": "ParameterList",
                "src": "3065:6:10"
              },
              {
                "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": 2335,
                            "name": "Identifier",
                            "src": "3082:6:10"
                          },
                          {
                            "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": 2336,
                                "name": "Identifier",
                                "src": "3092:6:10"
                              }
                            ],
                            "id": 2337,
                            "name": "MemberAccess",
                            "src": "3092:17:10"
                          }
                        ],
                        "id": 2338,
                        "name": "BinaryOperation",
                        "src": "3082:27:10"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 2334
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 2339,
                            "name": "Literal",
                            "src": "3124:4:10"
                          }
                        ],
                        "id": 2340,
                        "name": "Return",
                        "src": "3117:11:10"
                      }
                    ],
                    "id": 2341,
                    "name": "IfStatement",
                    "src": "3078:50:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2334
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 2342,
                        "name": "Literal",
                        "src": "3141:5:10"
                      }
                    ],
                    "id": 2343,
                    "name": "Return",
                    "src": "3134:12:10"
                  }
                ],
                "id": 2344,
                "name": "Block",
                "src": "3072:79:10"
              }
            ],
            "id": 2345,
            "name": "FunctionDefinition",
            "src": "3018:133:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isPoDEnded",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2346,
                "name": "ParameterList",
                "src": "3234:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2360,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2347,
                        "name": "ElementaryTypeName",
                        "src": "3261:4:10"
                      }
                    ],
                    "id": 2348,
                    "name": "VariableDeclaration",
                    "src": "3261:4:10"
                  }
                ],
                "id": 2349,
                "name": "ParameterList",
                "src": "3260:6:10"
              },
              {
                "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": 2350,
                            "name": "Identifier",
                            "src": "3277:6:10"
                          },
                          {
                            "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": 2351,
                                "name": "Identifier",
                                "src": "3287:6:10"
                              }
                            ],
                            "id": 2352,
                            "name": "MemberAccess",
                            "src": "3287:15:10"
                          }
                        ],
                        "id": 2353,
                        "name": "BinaryOperation",
                        "src": "3277:25:10"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 2349
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 2354,
                            "name": "Literal",
                            "src": "3317:4:10"
                          }
                        ],
                        "id": 2355,
                        "name": "Return",
                        "src": "3310:11:10"
                      }
                    ],
                    "id": 2356,
                    "name": "IfStatement",
                    "src": "3273:48:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 2349
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 2357,
                        "name": "Literal",
                        "src": "3334:5:10"
                      }
                    ],
                    "id": 2358,
                    "name": "Return",
                    "src": "3327:12:10"
                  }
                ],
                "id": 2359,
                "name": "Block",
                "src": "3267:77:10"
              }
            ],
            "id": 2360,
            "name": "FunctionDefinition",
            "src": "3215:129:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "",
              "payable": true,
              "scope": 2382,
              "stateMutability": "payable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2361,
                "name": "ParameterList",
                "src": "3392:2:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2362,
                "name": "ParameterList",
                "src": "3410:0:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2253,
                              "type": "function () returns (bool)",
                              "value": "donate"
                            },
                            "id": 2363,
                            "name": "Identifier",
                            "src": "3416:6:10"
                          }
                        ],
                        "id": 2364,
                        "name": "FunctionCall",
                        "src": "3416:8:10"
                      }
                    ],
                    "id": 2365,
                    "name": "ExpressionStatement",
                    "src": "3416:8:10"
                  }
                ],
                "id": 2366,
                "name": "Block",
                "src": "3410:19:10"
              }
            ],
            "id": 2367,
            "name": "FunctionDefinition",
            "src": "3383:46:10"
          },
          {
            "attributes": {
              "body": null,
              "constant": false,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "processDonate",
              "payable": false,
              "scope": 2382,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2374,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2368,
                        "name": "ElementaryTypeName",
                        "src": "3494:7:10"
                      }
                    ],
                    "id": 2369,
                    "name": "VariableDeclaration",
                    "src": "3494:13:10"
                  }
                ],
                "id": 2370,
                "name": "ParameterList",
                "src": "3493:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2374,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2371,
                        "name": "ElementaryTypeName",
                        "src": "3527:4:10"
                      }
                    ],
                    "id": 2372,
                    "name": "VariableDeclaration",
                    "src": "3527:4:10"
                  }
                ],
                "id": 2373,
                "name": "ParameterList",
                "src": "3526:6:10"
              }
            ],
            "id": 2374,
            "name": "FunctionDefinition",
            "src": "3471:62:10"
          },
          {
            "attributes": {
              "body": null,
              "constant": true,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getBalanceOfToken",
              "payable": false,
              "scope": 2382,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_user",
                      "scope": 2381,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 2375,
                        "name": "ElementaryTypeName",
                        "src": "3564:7:10"
                      }
                    ],
                    "id": 2376,
                    "name": "VariableDeclaration",
                    "src": "3564:13:10"
                  }
                ],
                "id": 2377,
                "name": "ParameterList",
                "src": "3563:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2381,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 2378,
                        "name": "ElementaryTypeName",
                        "src": "3604:7:10"
                      }
                    ],
                    "id": 2379,
                    "name": "VariableDeclaration",
                    "src": "3604:7:10"
                  }
                ],
                "id": 2380,
                "name": "ParameterList",
                "src": "3603:9:10"
              }
            ],
            "id": 2381,
            "name": "FunctionDefinition",
            "src": "3537:76:10"
          }
        ],
        "id": 2382,
        "name": "ContractDefinition",
        "src": "397:3218:10"
      }
    ],
    "id": 2383,
    "name": "SourceUnit",
    "src": "0:3615:10"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-07T05:10:52.558Z"
}