{
  "contractName": "MirrorContractICO",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "simpleICO",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "organization",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "destroy",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_recipient",
          "type": "address"
        }
      ],
      "name": "destroyAndSend",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_organization",
          "type": "address"
        },
        {
          "name": "_simpleICO",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b604051604080610393833981016040528080519190602001805160008054600160a060020a03338116600160a060020a0319928316179092556001805496831696821696909617909555600280549190921694169390931790925550506103188061007b6000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631ebbede2811461012e57806323bd4d7a1461015d57806383197ef0146101705780638da5cb5b14610183578063f2fde38b14610196578063f5074f41146101b5575b34151561008357600080fd5b600254600154600160a060020a03918216916321bea7cc91349116336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a039283166004820152911660248201526044016020604051808303818588803b151561010557600080fd5b6125ee5a03f1151561011657600080fd5b5050505060405180511515905061012c57600080fd5b005b341561013957600080fd5b6101416101d4565b604051600160a060020a03909116815260200160405180910390f35b341561016857600080fd5b6101416101e3565b341561017b57600080fd5b61012c6101f2565b341561018e57600080fd5b61014161021b565b34156101a157600080fd5b61012c600160a060020a036004351661022a565b34156101c057600080fd5b61012c600160a060020a03600435166102c5565b600254600160a060020a031681565b600154600160a060020a031681565b60005433600160a060020a0390811691161461020d57600080fd5b600054600160a060020a0316ff5b600054600160a060020a031681565b60005433600160a060020a0390811691161461024557600080fd5b600160a060020a038116151561025a57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146102e057600080fd5b80600160a060020a0316ff00a165627a7a723058204fc03b3630a868c2788392a243077d6b2e5461a6ec1f1b359270eb5c7e43dfc40029",
  "deployedBytecode": "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631ebbede2811461012e57806323bd4d7a1461015d57806383197ef0146101705780638da5cb5b14610183578063f2fde38b14610196578063f5074f41146101b5575b34151561008357600080fd5b600254600154600160a060020a03918216916321bea7cc91349116336000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a039283166004820152911660248201526044016020604051808303818588803b151561010557600080fd5b6125ee5a03f1151561011657600080fd5b5050505060405180511515905061012c57600080fd5b005b341561013957600080fd5b6101416101d4565b604051600160a060020a03909116815260200160405180910390f35b341561016857600080fd5b6101416101e3565b341561017b57600080fd5b61012c6101f2565b341561018e57600080fd5b61014161021b565b34156101a157600080fd5b61012c600160a060020a036004351661022a565b34156101c057600080fd5b61012c600160a060020a03600435166102c5565b600254600160a060020a031681565b600154600160a060020a031681565b60005433600160a060020a0390811691161461020d57600080fd5b600054600160a060020a0316ff5b600054600160a060020a031681565b60005433600160a060020a0390811691161461024557600080fd5b600160a060020a038116151561025a57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146102e057600080fd5b80600160a060020a0316ff00a165627a7a723058204fc03b3630a868c2788392a243077d6b2e5461a6ec1f1b359270eb5c7e43dfc40029",
  "sourceMap": "357:937:24:-;;;714:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;501:5:33;:18;;-1:-1:-1;;;;;509:10:33;501:18;;-1:-1:-1;;;;;;501:18:33;;;;;;;;802:28:24;;;;;;;;;;;;;;;840:9;:22;;;;;;;;;;;;;;;-1:-1:-1;;357:937:24;;;;;;",
  "deployedSourceMap": "357:937:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1113:9;:14;;1105:23;;;;;;1187:9;;;1221:12;-1:-1:-1;;;;;1187:9:24;;;;:16;;1210:9;;1221:12;1235:10;1187:9;:59;;;;;;;;;;;;;;-1:-1:-1;;;;;1187:59:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:64;1183:103;;-1:-1:-1;1183:103:24;;1267:8;;;1183:103;357:937;479:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:26:24;;;;;;;;;;;;;;;406;;;;;;;;;;;;376:66:30;;;;;;;;;;;;238:20:33;;;;;;;;;;;;834:169;;;;;;;;;;;;-1:-1:-1;;;;;834:169:33;;;446:96:30;;;;;;;;;;;;-1:-1:-1;;;;;446:96:30;;;479:26:24;;;-1:-1:-1;;;;;479:26:24;;:::o;406:::-;;;-1:-1:-1;;;;;406:26:24;;:::o;376:66:30:-;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;431:5:30;;-1:-1:-1;;;;;431:5:30;418:19;238:20:33;;;-1:-1:-1;;;;;238:20:33;;:::o;834:169::-;654:5;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:33;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:33;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:33;-1:-1:-1;;;;;982:16:33;;;;;;;;;;834:169::o;446:96:30:-;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;513:24:30;;",
  "source": "pragma solidity ^0.4.18;\n\nimport \"./UniversalScheme.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"zeppelin-solidity/contracts/lifecycle/Destructible.sol\";\n\n\n/**\n * @title An avatar contract for ICO.\n * @dev Allow people to donate by simply sending ether to an address.\n */\ncontract MirrorContractICO is Destructible {\n    Avatar public organization; // The organization address (the avatar)\n    SimpleICO public simpleICO;  // The ICO contract address\n    /**\n    * @dev Constructor, setting the organization and ICO scheme.\n    * @param _organization The organization's avatar.\n    * @param _simpleICO The ICO Scheme.\n    */\n    function MirrorContractICO(Avatar _organization, SimpleICO _simpleICO) public {\n        organization = _organization;\n        simpleICO = _simpleICO;\n    }\n\n    /**\n    * @dev Fallback function, when ether is sent it will donate to the ICO.\n    * The ether will be returned if the donation is failed.\n    */\n    function () public payable {\n        // Not to waste gas, if no value.\n        require(msg.value != 0);\n\n        // Return ether if couldn't donate.\n        if (simpleICO.donate.value(msg.value)(organization, msg.sender) == 0) {\n            revert();\n        }\n    }\n}\n\n\n/**\n * @title SimpleICO scheme.\n * @dev A universal scheme to allow organizations to open a simple ICO and get donations.\n */\ncontract SimpleICO is UniversalScheme {\n    using SafeMath for uint;\n\n    // Struct holding the data for each organization\n    struct Organization {\n        bytes32 paramsHash; // Save the parameters approved by the org to open the ICO, so reuse of ICO will not change.\n        address avatarContractICO; // Avatar is a contract for users that want to send ether without calling a function.\n        uint totalEthRaised;\n        bool isHalted; // The admin of the ICO can halt the ICO at any time, and also resume it.\n    }\n\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    struct Parameters {\n        uint cap; // Cap in Eth\n        uint price; // Price represents Tokens per 1 Eth\n        uint startBlock;\n        uint endBlock;\n        address beneficiary; // all funds received will be transferred to this address.\n        address admin; // The admin can halt or resume ICO.\n    }\n\n    // A mapping from the organization (Avatar) address to the saved data of the organization:\n    mapping(address=>Organization) public organizationsICOInfo;\n\n    mapping(bytes32=>Parameters) public parameters;\n\n    event DonationReceived(address indexed organization, address indexed _beneficiary, uint _incomingEther, uint indexed _tokensAmount);\n\n    /**\n     * @dev Constructor\n     */\n    function SimpleICO() public {}\n\n    /**\n    * @dev Hash the parameters, save them if necessary, and return the hash value\n    * @param _cap the ico cap\n    * @param _price  represents Tokens per 1 Eth\n    * @param _startBlock  ico start block\n    * @param _endBlock ico end\n    * @param _beneficiary the ico ether beneficiary\n    * @param _admin the address of the ico admin which can hold and resume the ICO.\n    * @return bytes32 -the params hash\n    */\n    function setParameters(\n        uint _cap,\n        uint _price,\n        uint _startBlock,\n        uint _endBlock,\n        address _beneficiary,\n        address _admin\n    )\n        public\n        returns(bytes32)\n    {\n        bytes32 paramsHash = getParametersHash(\n            _cap,\n            _price,\n            _startBlock,\n            _endBlock,\n            _beneficiary,\n            _admin\n        );\n        if (parameters[paramsHash].cap == 0) {\n            parameters[paramsHash] = Parameters({\n                cap: _cap,\n                price: _price,\n                startBlock: _startBlock,\n                endBlock:_endBlock,\n                beneficiary:_beneficiary,\n                admin:_admin\n            });\n        }\n        return paramsHash;\n    }\n\n    /**\n    * @dev Hash the parameters and return the hash value\n    * @param _cap the ico cap\n    * @param _price  represents Tokens per 1 Eth\n    * @param _startBlock  ico start block\n    * @param _endBlock ico end\n    * @param _beneficiary the ico ether beneficiary\n    * @param _admin the address of the ico admin which can hold and resume the ICO.\n    * @return bytes32 -the params hash\n    */\n    function getParametersHash(\n        uint _cap,\n        uint _price,\n        uint _startBlock,\n        uint _endBlock,\n        address _beneficiary,\n        address _admin\n    )\n        public\n        pure\n        returns(bytes32)\n   {\n        return (keccak256(\n            _cap,\n            _price,\n            _startBlock,\n            _endBlock,\n            _beneficiary,\n            _admin\n        ));\n    }\n\n    /**\n     * @dev start an ICO\n     * @param _avatar The Avatar's of the organization\n     */\n    function start(Avatar _avatar) public {\n        require(!isActive(_avatar));\n        Organization memory org;\n        org.paramsHash = getParametersFromController(_avatar);\n        require(parameters[org.paramsHash].cap != 0);\n        org.avatarContractICO = new MirrorContractICO(_avatar, this);\n        organizationsICOInfo[_avatar] = org;\n    }\n\n    /**\n     * @dev Allowing admin to halt an ICO.\n     * @param _avatar The Avatar's of the organization\n     */\n    function haltICO(address _avatar) public {\n        require(msg.sender == parameters[organizationsICOInfo[_avatar].paramsHash].admin);\n        organizationsICOInfo[_avatar].isHalted = true;\n    }\n\n    /**\n     * @dev Allowing admin to reopen an ICO.\n     * @param _avatar The Avatar's of the organization\n     */\n    function resumeICO(address _avatar) public {\n        require(msg.sender == parameters[organizationsICOInfo[_avatar].paramsHash].admin);\n        organizationsICOInfo[_avatar].isHalted = false;\n    }\n\n    /**\n     * @dev Check is an ICO is active (halted is still considered active). Active ICO:\n     * 1. The organization is registered.\n     * 2. The ICO didn't reach it's cap yet.\n     * 3. The current block isn't bigger than the \"endBlock\" & Smaller then the \"startBlock\"\n     * @param _avatar The Avatar's of the organization\n     * @return bool which represents a successful of the function\n     */\n    function isActive(address _avatar) public constant returns(bool) {\n        Organization memory org = organizationsICOInfo[_avatar];\n        Parameters memory params = parameters[org.paramsHash];\n\n        if (org.totalEthRaised >= params.cap) {\n            return false;\n        }\n        if (block.number >= params.endBlock) {\n            return false;\n        }\n        if (block.number <= params.startBlock) {\n            return false;\n        }\n        return true;\n    }\n\n    /**\n     * @dev Donating ethers to get tokens.\n     * If the donation is higher than the remaining ethers in the \"cap\",\n     * The donator will get the change in ethers.\n     * @param _avatar The Avatar's of the organization.\n     * @param _beneficiary The donator's address - which will receive the ICO's tokens.\n     * @return bool which represents a successful of the function\n     */\n    function donate(Avatar _avatar, address _beneficiary) public payable returns(uint) {\n        Organization memory org = organizationsICOInfo[_avatar];\n        Parameters memory params = parameters[org.paramsHash];\n\n        // Check ICO is active:\n        require(isActive(_avatar));\n\n        // Check ICO is not halted:\n        require(!org.isHalted);\n\n\n        uint incomingEther;\n        uint change;\n\n        // Compute how much tokens to buy:\n        if ( msg.value > (params.cap).sub(org.totalEthRaised) ) {\n            incomingEther = (params.cap).sub(org.totalEthRaised);\n            change = (msg.value).sub(incomingEther);\n        } else {\n            incomingEther = msg.value;\n        }\n        uint tokens = incomingEther.mul(params.price);\n        // Send ether to the defined address, mint, and send change to beneficiary:\n        params.beneficiary.transfer(incomingEther);\n\n        ControllerInterface controller = ControllerInterface(_avatar.owner());\n        if (!controller.mintTokens(tokens, _beneficiary,address(_avatar))) {\n            revert();\n        }\n        if (change != 0) {\n            _beneficiary.transfer(change);\n        }\n        // Update total raised, call event and return amount of tokens bought:\n        organizationsICOInfo[_avatar].totalEthRaised += incomingEther;\n        DonationReceived(_avatar, _beneficiary, incomingEther, tokens);\n        return tokens;\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/SimpleICO.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/SimpleICO.sol",
      "exportedSymbols": {
        "MirrorContractICO": [
          7990
        ],
        "SimpleICO": [
          8415
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 7935,
        "name": "PragmaDirective",
        "src": "0:24:24"
      },
      {
        "attributes": {
          "SourceUnit": 8466,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 8416,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7936,
        "name": "ImportDirective",
        "src": "26:31:24"
      },
      {
        "attributes": {
          "SourceUnit": 10302,
          "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "file": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "scope": 8416,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7937,
        "name": "ImportDirective",
        "src": "58:59:24"
      },
      {
        "attributes": {
          "SourceUnit": 10222,
          "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol",
          "file": "zeppelin-solidity/contracts/math/SafeMath.sol",
          "scope": 8416,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7938,
        "name": "ImportDirective",
        "src": "118:55:24"
      },
      {
        "attributes": {
          "SourceUnit": 10124,
          "absolutePath": "zeppelin-solidity/contracts/lifecycle/Destructible.sol",
          "file": "zeppelin-solidity/contracts/lifecycle/Destructible.sol",
          "scope": 8416,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7939,
        "name": "ImportDirective",
        "src": "174:64:24"
      },
      {
        "attributes": {
          "contractDependencies": [
            10123,
            10301
          ],
          "contractKind": "contract",
          "documentation": "@title An avatar contract for ICO.\n@dev Allow people to donate by simply sending ether to an address.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7990,
            10123,
            10301
          ],
          "name": "MirrorContractICO",
          "scope": 8416
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Destructible",
                  "referencedDeclaration": 10123,
                  "type": "contract Destructible"
                },
                "id": 7940,
                "name": "UserDefinedTypeName",
                "src": "387:12:24"
              }
            ],
            "id": 7941,
            "name": "InheritanceSpecifier",
            "src": "387:12:24"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organization",
              "scope": 7990,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract Avatar",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Avatar",
                  "referencedDeclaration": 3065,
                  "type": "contract Avatar"
                },
                "id": 7942,
                "name": "UserDefinedTypeName",
                "src": "406:6:24"
              }
            ],
            "id": 7943,
            "name": "VariableDeclaration",
            "src": "406:26:24"
          },
          {
            "attributes": {
              "constant": false,
              "name": "simpleICO",
              "scope": 7990,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract SimpleICO",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SimpleICO",
                  "referencedDeclaration": 8415,
                  "type": "contract SimpleICO"
                },
                "id": 7944,
                "name": "UserDefinedTypeName",
                "src": "479:9:24"
              }
            ],
            "id": 7945,
            "name": "VariableDeclaration",
            "src": "479:26:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "MirrorContractICO",
              "payable": false,
              "scope": 7990,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_organization",
                      "scope": 7961,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 7946,
                        "name": "UserDefinedTypeName",
                        "src": "741:6:24"
                      }
                    ],
                    "id": 7947,
                    "name": "VariableDeclaration",
                    "src": "741:20:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_simpleICO",
                      "scope": 7961,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract SimpleICO",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "SimpleICO",
                          "referencedDeclaration": 8415,
                          "type": "contract SimpleICO"
                        },
                        "id": 7948,
                        "name": "UserDefinedTypeName",
                        "src": "763:9:24"
                      }
                    ],
                    "id": 7949,
                    "name": "VariableDeclaration",
                    "src": "763:20:24"
                  }
                ],
                "id": 7950,
                "name": "ParameterList",
                "src": "740:44:24"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7951,
                "name": "ParameterList",
                "src": "792:0:24"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract Avatar"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7943,
                              "type": "contract Avatar",
                              "value": "organization"
                            },
                            "id": 7952,
                            "name": "Identifier",
                            "src": "802:12:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7947,
                              "type": "contract Avatar",
                              "value": "_organization"
                            },
                            "id": 7953,
                            "name": "Identifier",
                            "src": "817:13:24"
                          }
                        ],
                        "id": 7954,
                        "name": "Assignment",
                        "src": "802:28:24"
                      }
                    ],
                    "id": 7955,
                    "name": "ExpressionStatement",
                    "src": "802:28:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract SimpleICO"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7945,
                              "type": "contract SimpleICO",
                              "value": "simpleICO"
                            },
                            "id": 7956,
                            "name": "Identifier",
                            "src": "840:9:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7949,
                              "type": "contract SimpleICO",
                              "value": "_simpleICO"
                            },
                            "id": 7957,
                            "name": "Identifier",
                            "src": "852:10:24"
                          }
                        ],
                        "id": 7958,
                        "name": "Assignment",
                        "src": "840:22:24"
                      }
                    ],
                    "id": 7959,
                    "name": "ExpressionStatement",
                    "src": "840:22:24"
                  }
                ],
                "id": 7960,
                "name": "Block",
                "src": "792:77:24"
              }
            ],
            "id": 7961,
            "name": "FunctionDefinition",
            "src": "714:155:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "",
              "payable": true,
              "scope": 7990,
              "stateMutability": "payable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7962,
                "name": "ParameterList",
                "src": "1035:2:24"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7963,
                "name": "ParameterList",
                "src": "1053:0:24"
              },
              {
                "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7964,
                            "name": "Identifier",
                            "src": "1105:7:24"
                          },
                          {
                            "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": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 7965,
                                    "name": "Identifier",
                                    "src": "1113:3:24"
                                  }
                                ],
                                "id": 7966,
                                "name": "MemberAccess",
                                "src": "1113:9:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7967,
                                "name": "Literal",
                                "src": "1126:1:24"
                              }
                            ],
                            "id": 7968,
                            "name": "BinaryOperation",
                            "src": "1113:14:24"
                          }
                        ],
                        "id": 7969,
                        "name": "FunctionCall",
                        "src": "1105:23:24"
                      }
                    ],
                    "id": 7970,
                    "name": "ExpressionStatement",
                    "src": "1105:23:24"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "function (contract Avatar,address) payable external returns (uint256)",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "value",
                                      "referencedDeclaration": null,
                                      "type": "function (uint256) returns (function (contract Avatar,address) payable external returns (uint256))"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "donate",
                                          "referencedDeclaration": 8414,
                                          "type": "function (contract Avatar,address) payable external returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7945,
                                              "type": "contract SimpleICO",
                                              "value": "simpleICO"
                                            },
                                            "id": 7971,
                                            "name": "Identifier",
                                            "src": "1187:9:24"
                                          }
                                        ],
                                        "id": 7972,
                                        "name": "MemberAccess",
                                        "src": "1187:16:24"
                                      }
                                    ],
                                    "id": 7973,
                                    "name": "MemberAccess",
                                    "src": "1187:22:24"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 7974,
                                        "name": "Identifier",
                                        "src": "1210:3:24"
                                      }
                                    ],
                                    "id": 7975,
                                    "name": "MemberAccess",
                                    "src": "1210:9:24"
                                  }
                                ],
                                "id": 7976,
                                "name": "FunctionCall",
                                "src": "1187:33:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7943,
                                  "type": "contract Avatar",
                                  "value": "organization"
                                },
                                "id": 7977,
                                "name": "Identifier",
                                "src": "1221:12:24"
                              },
                              {
                                "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": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 7978,
                                    "name": "Identifier",
                                    "src": "1235:3:24"
                                  }
                                ],
                                "id": 7979,
                                "name": "MemberAccess",
                                "src": "1235:10:24"
                              }
                            ],
                            "id": 7980,
                            "name": "FunctionCall",
                            "src": "1187:59:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7981,
                            "name": "Literal",
                            "src": "1250:1:24"
                          }
                        ],
                        "id": 7982,
                        "name": "BinaryOperation",
                        "src": "1187:64:24"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10871,
                                      "type": "function () pure",
                                      "value": "revert"
                                    },
                                    "id": 7983,
                                    "name": "Identifier",
                                    "src": "1267:6:24"
                                  }
                                ],
                                "id": 7984,
                                "name": "FunctionCall",
                                "src": "1267:8:24"
                              }
                            ],
                            "id": 7985,
                            "name": "ExpressionStatement",
                            "src": "1267:8:24"
                          }
                        ],
                        "id": 7986,
                        "name": "Block",
                        "src": "1253:33:24"
                      }
                    ],
                    "id": 7987,
                    "name": "IfStatement",
                    "src": "1183:103:24"
                  }
                ],
                "id": 7988,
                "name": "Block",
                "src": "1053:239:24"
              }
            ],
            "id": 7989,
            "name": "FunctionDefinition",
            "src": "1026:266:24"
          }
        ],
        "id": 7990,
        "name": "ContractDefinition",
        "src": "357:937:24"
      },
      {
        "attributes": {
          "contractDependencies": [
            7990,
            8465,
            8484,
            10301
          ],
          "contractKind": "contract",
          "documentation": "@title SimpleICO scheme.\n@dev A universal scheme to allow organizations to open a simple ICO and get donations.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            8415,
            8465,
            8484,
            10301
          ],
          "name": "SimpleICO",
          "scope": 8416
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UniversalScheme",
                  "referencedDeclaration": 8465,
                  "type": "contract UniversalScheme"
                },
                "id": 7991,
                "name": "UserDefinedTypeName",
                "src": "1445:15:24"
              }
            ],
            "id": 7992,
            "name": "InheritanceSpecifier",
            "src": "1445:15:24"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SafeMath",
                  "referencedDeclaration": 10221,
                  "type": "library SafeMath"
                },
                "id": 7993,
                "name": "UserDefinedTypeName",
                "src": "1473:8:24"
              },
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 7994,
                "name": "ElementaryTypeName",
                "src": "1486:4:24"
              }
            ],
            "id": 7995,
            "name": "UsingForDirective",
            "src": "1467:24:24"
          },
          {
            "attributes": {
              "canonicalName": "SimpleICO.Organization",
              "name": "Organization",
              "scope": 8415,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "paramsHash",
                  "scope": 8004,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 7996,
                    "name": "ElementaryTypeName",
                    "src": "1580:7:24"
                  }
                ],
                "id": 7997,
                "name": "VariableDeclaration",
                "src": "1580:18:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "avatarContractICO",
                  "scope": 8004,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 7998,
                    "name": "ElementaryTypeName",
                    "src": "1701:7:24"
                  }
                ],
                "id": 7999,
                "name": "VariableDeclaration",
                "src": "1701:25:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "totalEthRaised",
                  "scope": 8004,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8000,
                    "name": "ElementaryTypeName",
                    "src": "1822:4:24"
                  }
                ],
                "id": 8001,
                "name": "VariableDeclaration",
                "src": "1822:19:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "isHalted",
                  "scope": 8004,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 8002,
                    "name": "ElementaryTypeName",
                    "src": "1851:4:24"
                  }
                ],
                "id": 8003,
                "name": "VariableDeclaration",
                "src": "1851:13:24"
              }
            ],
            "id": 8004,
            "name": "StructDefinition",
            "src": "1550:395:24"
          },
          {
            "attributes": {
              "canonicalName": "SimpleICO.Parameters",
              "name": "Parameters",
              "scope": 8415,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "cap",
                  "scope": 8017,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8005,
                    "name": "ElementaryTypeName",
                    "src": "2082:4:24"
                  }
                ],
                "id": 8006,
                "name": "VariableDeclaration",
                "src": "2082:8:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "price",
                  "scope": 8017,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8007,
                    "name": "ElementaryTypeName",
                    "src": "2114:4:24"
                  }
                ],
                "id": 8008,
                "name": "VariableDeclaration",
                "src": "2114:10:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "startBlock",
                  "scope": 8017,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8009,
                    "name": "ElementaryTypeName",
                    "src": "2171:4:24"
                  }
                ],
                "id": 8010,
                "name": "VariableDeclaration",
                "src": "2171:15:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "endBlock",
                  "scope": 8017,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8011,
                    "name": "ElementaryTypeName",
                    "src": "2196:4:24"
                  }
                ],
                "id": 8012,
                "name": "VariableDeclaration",
                "src": "2196:13:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "beneficiary",
                  "scope": 8017,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8013,
                    "name": "ElementaryTypeName",
                    "src": "2219:7:24"
                  }
                ],
                "id": 8014,
                "name": "VariableDeclaration",
                "src": "2219:19:24"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "admin",
                  "scope": 8017,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8015,
                    "name": "ElementaryTypeName",
                    "src": "2307:7:24"
                  }
                ],
                "id": 8016,
                "name": "VariableDeclaration",
                "src": "2307:13:24"
              }
            ],
            "id": 8017,
            "name": "StructDefinition",
            "src": "2054:310:24"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizationsICOInfo",
              "scope": 8415,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => struct SimpleICO.Organization storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => struct SimpleICO.Organization storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8018,
                    "name": "ElementaryTypeName",
                    "src": "2473:7:24"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Organization",
                      "referencedDeclaration": 8004,
                      "type": "struct SimpleICO.Organization storage pointer"
                    },
                    "id": 8019,
                    "name": "UserDefinedTypeName",
                    "src": "2482:12:24"
                  }
                ],
                "id": 8020,
                "name": "Mapping",
                "src": "2465:30:24"
              }
            ],
            "id": 8021,
            "name": "VariableDeclaration",
            "src": "2465:58:24"
          },
          {
            "attributes": {
              "constant": false,
              "name": "parameters",
              "scope": 8415,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8022,
                    "name": "ElementaryTypeName",
                    "src": "2538:7:24"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Parameters",
                      "referencedDeclaration": 8017,
                      "type": "struct SimpleICO.Parameters storage pointer"
                    },
                    "id": 8023,
                    "name": "UserDefinedTypeName",
                    "src": "2547:10:24"
                  }
                ],
                "id": 8024,
                "name": "Mapping",
                "src": "2530:28:24"
              }
            ],
            "id": 8025,
            "name": "VariableDeclaration",
            "src": "2530:46:24"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "DonationReceived"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "organization",
                      "scope": 8035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8026,
                        "name": "ElementaryTypeName",
                        "src": "2606:7:24"
                      }
                    ],
                    "id": 8027,
                    "name": "VariableDeclaration",
                    "src": "2606:28:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 8035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8028,
                        "name": "ElementaryTypeName",
                        "src": "2636:7:24"
                      }
                    ],
                    "id": 8029,
                    "name": "VariableDeclaration",
                    "src": "2636:28:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_incomingEther",
                      "scope": 8035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8030,
                        "name": "ElementaryTypeName",
                        "src": "2666:4:24"
                      }
                    ],
                    "id": 8031,
                    "name": "VariableDeclaration",
                    "src": "2666:19:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_tokensAmount",
                      "scope": 8035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8032,
                        "name": "ElementaryTypeName",
                        "src": "2687:4:24"
                      }
                    ],
                    "id": 8033,
                    "name": "VariableDeclaration",
                    "src": "2687:26:24"
                  }
                ],
                "id": 8034,
                "name": "ParameterList",
                "src": "2605:109:24"
              }
            ],
            "id": 8035,
            "name": "EventDefinition",
            "src": "2583:132:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "SimpleICO",
              "payable": false,
              "scope": 8415,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8036,
                "name": "ParameterList",
                "src": "2779:2:24"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8037,
                "name": "ParameterList",
                "src": "2789:0:24"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 8038,
                "name": "Block",
                "src": "2789:2:24"
              }
            ],
            "id": 8039,
            "name": "FunctionDefinition",
            "src": "2761:30:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setParameters",
              "payable": false,
              "scope": 8415,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_cap",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8040,
                        "name": "ElementaryTypeName",
                        "src": "3253:4:24"
                      }
                    ],
                    "id": 8041,
                    "name": "VariableDeclaration",
                    "src": "3253:9:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_price",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8042,
                        "name": "ElementaryTypeName",
                        "src": "3272:4:24"
                      }
                    ],
                    "id": 8043,
                    "name": "VariableDeclaration",
                    "src": "3272:11:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startBlock",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8044,
                        "name": "ElementaryTypeName",
                        "src": "3293:4:24"
                      }
                    ],
                    "id": 8045,
                    "name": "VariableDeclaration",
                    "src": "3293:16:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_endBlock",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8046,
                        "name": "ElementaryTypeName",
                        "src": "3319:4:24"
                      }
                    ],
                    "id": 8047,
                    "name": "VariableDeclaration",
                    "src": "3319:14:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8048,
                        "name": "ElementaryTypeName",
                        "src": "3343:7:24"
                      }
                    ],
                    "id": 8049,
                    "name": "VariableDeclaration",
                    "src": "3343:20:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_admin",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8050,
                        "name": "ElementaryTypeName",
                        "src": "3373:7:24"
                      }
                    ],
                    "id": 8051,
                    "name": "VariableDeclaration",
                    "src": "3373:14:24"
                  }
                ],
                "id": 8052,
                "name": "ParameterList",
                "src": "3243:150:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8091,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8053,
                        "name": "ElementaryTypeName",
                        "src": "3425:7:24"
                      }
                    ],
                    "id": 8054,
                    "name": "VariableDeclaration",
                    "src": "3425:7:24"
                  }
                ],
                "id": 8055,
                "name": "ParameterList",
                "src": "3424:9:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8057
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "paramsHash",
                          "scope": 8091,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8056,
                            "name": "ElementaryTypeName",
                            "src": "3448:7:24"
                          }
                        ],
                        "id": 8057,
                        "name": "VariableDeclaration",
                        "src": "3448:18:24"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8119,
                              "type": "function (uint256,uint256,uint256,uint256,address,address) pure returns (bytes32)",
                              "value": "getParametersHash"
                            },
                            "id": 8058,
                            "name": "Identifier",
                            "src": "3469:17:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8041,
                              "type": "uint256",
                              "value": "_cap"
                            },
                            "id": 8059,
                            "name": "Identifier",
                            "src": "3500:4:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8043,
                              "type": "uint256",
                              "value": "_price"
                            },
                            "id": 8060,
                            "name": "Identifier",
                            "src": "3518:6:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8045,
                              "type": "uint256",
                              "value": "_startBlock"
                            },
                            "id": 8061,
                            "name": "Identifier",
                            "src": "3538:11:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8047,
                              "type": "uint256",
                              "value": "_endBlock"
                            },
                            "id": 8062,
                            "name": "Identifier",
                            "src": "3563:9:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8049,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 8063,
                            "name": "Identifier",
                            "src": "3586:12:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8051,
                              "type": "address",
                              "value": "_admin"
                            },
                            "id": 8064,
                            "name": "Identifier",
                            "src": "3612:6:24"
                          }
                        ],
                        "id": 8065,
                        "name": "FunctionCall",
                        "src": "3469:159:24"
                      }
                    ],
                    "id": 8066,
                    "name": "VariableDeclarationStatement",
                    "src": "3448:180:24"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "cap",
                              "referencedDeclaration": 8006,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct SimpleICO.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8025,
                                      "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 8067,
                                    "name": "Identifier",
                                    "src": "3642:10:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8057,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 8068,
                                    "name": "Identifier",
                                    "src": "3653:10:24"
                                  }
                                ],
                                "id": 8069,
                                "name": "IndexAccess",
                                "src": "3642:22:24"
                              }
                            ],
                            "id": 8070,
                            "name": "MemberAccess",
                            "src": "3642:26:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8071,
                            "name": "Literal",
                            "src": "3672:1:24"
                          }
                        ],
                        "id": 8072,
                        "name": "BinaryOperation",
                        "src": "3642:31:24"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct SimpleICO.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct SimpleICO.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8025,
                                          "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 8073,
                                        "name": "Identifier",
                                        "src": "3689:10:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8057,
                                          "type": "bytes32",
                                          "value": "paramsHash"
                                        },
                                        "id": 8074,
                                        "name": "Identifier",
                                        "src": "3700:10:24"
                                      }
                                    ],
                                    "id": 8075,
                                    "name": "IndexAccess",
                                    "src": "3689:22:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        "cap",
                                        "price",
                                        "startBlock",
                                        "endBlock",
                                        "beneficiary",
                                        "admin"
                                      ],
                                      "type": "struct SimpleICO.Parameters memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8017,
                                          "type": "type(struct SimpleICO.Parameters storage pointer)",
                                          "value": "Parameters"
                                        },
                                        "id": 8076,
                                        "name": "Identifier",
                                        "src": "3714:10:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8041,
                                          "type": "uint256",
                                          "value": "_cap"
                                        },
                                        "id": 8077,
                                        "name": "Identifier",
                                        "src": "3748:4:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8043,
                                          "type": "uint256",
                                          "value": "_price"
                                        },
                                        "id": 8078,
                                        "name": "Identifier",
                                        "src": "3777:6:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8045,
                                          "type": "uint256",
                                          "value": "_startBlock"
                                        },
                                        "id": 8079,
                                        "name": "Identifier",
                                        "src": "3813:11:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8047,
                                          "type": "uint256",
                                          "value": "_endBlock"
                                        },
                                        "id": 8080,
                                        "name": "Identifier",
                                        "src": "3851:9:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8049,
                                          "type": "address",
                                          "value": "_beneficiary"
                                        },
                                        "id": 8081,
                                        "name": "Identifier",
                                        "src": "3890:12:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8051,
                                          "type": "address",
                                          "value": "_admin"
                                        },
                                        "id": 8082,
                                        "name": "Identifier",
                                        "src": "3926:6:24"
                                      }
                                    ],
                                    "id": 8083,
                                    "name": "FunctionCall",
                                    "src": "3714:233:24"
                                  }
                                ],
                                "id": 8084,
                                "name": "Assignment",
                                "src": "3689:258:24"
                              }
                            ],
                            "id": 8085,
                            "name": "ExpressionStatement",
                            "src": "3689:258:24"
                          }
                        ],
                        "id": 8086,
                        "name": "Block",
                        "src": "3675:283:24"
                      }
                    ],
                    "id": 8087,
                    "name": "IfStatement",
                    "src": "3638:320:24"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8055
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8057,
                          "type": "bytes32",
                          "value": "paramsHash"
                        },
                        "id": 8088,
                        "name": "Identifier",
                        "src": "3974:10:24"
                      }
                    ],
                    "id": 8089,
                    "name": "Return",
                    "src": "3967:17:24"
                  }
                ],
                "id": 8090,
                "name": "Block",
                "src": "3438:553:24"
              }
            ],
            "id": 8091,
            "name": "FunctionDefinition",
            "src": "3221:770:24"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getParametersHash",
              "payable": false,
              "scope": 8415,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_cap",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8092,
                        "name": "ElementaryTypeName",
                        "src": "4432:4:24"
                      }
                    ],
                    "id": 8093,
                    "name": "VariableDeclaration",
                    "src": "4432:9:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_price",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8094,
                        "name": "ElementaryTypeName",
                        "src": "4451:4:24"
                      }
                    ],
                    "id": 8095,
                    "name": "VariableDeclaration",
                    "src": "4451:11:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startBlock",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8096,
                        "name": "ElementaryTypeName",
                        "src": "4472:4:24"
                      }
                    ],
                    "id": 8097,
                    "name": "VariableDeclaration",
                    "src": "4472:16:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_endBlock",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8098,
                        "name": "ElementaryTypeName",
                        "src": "4498:4:24"
                      }
                    ],
                    "id": 8099,
                    "name": "VariableDeclaration",
                    "src": "4498:14:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8100,
                        "name": "ElementaryTypeName",
                        "src": "4522:7:24"
                      }
                    ],
                    "id": 8101,
                    "name": "VariableDeclaration",
                    "src": "4522:20:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_admin",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8102,
                        "name": "ElementaryTypeName",
                        "src": "4552:7:24"
                      }
                    ],
                    "id": 8103,
                    "name": "VariableDeclaration",
                    "src": "4552:14:24"
                  }
                ],
                "id": 8104,
                "name": "ParameterList",
                "src": "4422:150:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8119,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8105,
                        "name": "ElementaryTypeName",
                        "src": "4617:7:24"
                      }
                    ],
                    "id": 8106,
                    "name": "VariableDeclaration",
                    "src": "4617:7:24"
                  }
                ],
                "id": 8107,
                "name": "ParameterList",
                "src": "4616:9:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 8107
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10861,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 8108,
                                "name": "Identifier",
                                "src": "4647:9:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8093,
                                  "type": "uint256",
                                  "value": "_cap"
                                },
                                "id": 8109,
                                "name": "Identifier",
                                "src": "4670:4:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8095,
                                  "type": "uint256",
                                  "value": "_price"
                                },
                                "id": 8110,
                                "name": "Identifier",
                                "src": "4688:6:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8097,
                                  "type": "uint256",
                                  "value": "_startBlock"
                                },
                                "id": 8111,
                                "name": "Identifier",
                                "src": "4708:11:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8099,
                                  "type": "uint256",
                                  "value": "_endBlock"
                                },
                                "id": 8112,
                                "name": "Identifier",
                                "src": "4733:9:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8101,
                                  "type": "address",
                                  "value": "_beneficiary"
                                },
                                "id": 8113,
                                "name": "Identifier",
                                "src": "4756:12:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8103,
                                  "type": "address",
                                  "value": "_admin"
                                },
                                "id": 8114,
                                "name": "Identifier",
                                "src": "4782:6:24"
                              }
                            ],
                            "id": 8115,
                            "name": "FunctionCall",
                            "src": "4647:151:24"
                          }
                        ],
                        "id": 8116,
                        "name": "TupleExpression",
                        "src": "4646:153:24"
                      }
                    ],
                    "id": 8117,
                    "name": "Return",
                    "src": "4639:160:24"
                  }
                ],
                "id": 8118,
                "name": "Block",
                "src": "4629:177:24"
              }
            ],
            "id": 8119,
            "name": "FunctionDefinition",
            "src": "4396:410:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "start",
              "payable": false,
              "scope": 8415,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8169,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 8120,
                        "name": "UserDefinedTypeName",
                        "src": "4923:6:24"
                      }
                    ],
                    "id": 8121,
                    "name": "VariableDeclaration",
                    "src": "4923:14:24"
                  }
                ],
                "id": 8122,
                "name": "ParameterList",
                "src": "4922:16:24"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8123,
                "name": "ParameterList",
                "src": "4946:0:24"
              },
              {
                "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8124,
                            "name": "Identifier",
                            "src": "4956:7:24"
                          },
                          {
                            "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_contract$_Avatar_$3065",
                                          "typeString": "contract Avatar"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8271,
                                      "type": "function (address) view returns (bool)",
                                      "value": "isActive"
                                    },
                                    "id": 8125,
                                    "name": "Identifier",
                                    "src": "4965:8:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8121,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 8126,
                                    "name": "Identifier",
                                    "src": "4974:7:24"
                                  }
                                ],
                                "id": 8127,
                                "name": "FunctionCall",
                                "src": "4965:17:24"
                              }
                            ],
                            "id": 8128,
                            "name": "UnaryOperation",
                            "src": "4964:18:24"
                          }
                        ],
                        "id": 8129,
                        "name": "FunctionCall",
                        "src": "4956:27:24"
                      }
                    ],
                    "id": 8130,
                    "name": "ExpressionStatement",
                    "src": "4956:27:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "org",
                          "scope": 8169,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct SimpleICO.Organization memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 8004,
                              "type": "struct SimpleICO.Organization storage pointer"
                            },
                            "id": 8131,
                            "name": "UserDefinedTypeName",
                            "src": "4993:12:24"
                          }
                        ],
                        "id": 8132,
                        "name": "VariableDeclaration",
                        "src": "4993:23:24"
                      }
                    ],
                    "id": 8133,
                    "name": "VariableDeclarationStatement",
                    "src": "4993:23:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "paramsHash",
                              "referencedDeclaration": 7997,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8132,
                                  "type": "struct SimpleICO.Organization memory",
                                  "value": "org"
                                },
                                "id": 8134,
                                "name": "Identifier",
                                "src": "5026:3:24"
                              }
                            ],
                            "id": 8136,
                            "name": "MemberAccess",
                            "src": "5026:14:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    8464
                                  ],
                                  "referencedDeclaration": 8464,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 8137,
                                "name": "Identifier",
                                "src": "5043:27:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8121,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8138,
                                "name": "Identifier",
                                "src": "5071:7:24"
                              }
                            ],
                            "id": 8139,
                            "name": "FunctionCall",
                            "src": "5043:36:24"
                          }
                        ],
                        "id": 8140,
                        "name": "Assignment",
                        "src": "5026:53:24"
                      }
                    ],
                    "id": 8141,
                    "name": "ExpressionStatement",
                    "src": "5026:53:24"
                  },
                  {
                    "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8142,
                            "name": "Identifier",
                            "src": "5089:7:24"
                          },
                          {
                            "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": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "cap",
                                  "referencedDeclaration": 8006,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct SimpleICO.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8025,
                                          "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 8143,
                                        "name": "Identifier",
                                        "src": "5097:10:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "paramsHash",
                                          "referencedDeclaration": 7997,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8132,
                                              "type": "struct SimpleICO.Organization memory",
                                              "value": "org"
                                            },
                                            "id": 8144,
                                            "name": "Identifier",
                                            "src": "5108:3:24"
                                          }
                                        ],
                                        "id": 8145,
                                        "name": "MemberAccess",
                                        "src": "5108:14:24"
                                      }
                                    ],
                                    "id": 8146,
                                    "name": "IndexAccess",
                                    "src": "5097:26:24"
                                  }
                                ],
                                "id": 8147,
                                "name": "MemberAccess",
                                "src": "5097:30:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8148,
                                "name": "Literal",
                                "src": "5131:1:24"
                              }
                            ],
                            "id": 8149,
                            "name": "BinaryOperation",
                            "src": "5097:35:24"
                          }
                        ],
                        "id": 8150,
                        "name": "FunctionCall",
                        "src": "5089:44:24"
                      }
                    ],
                    "id": 8151,
                    "name": "ExpressionStatement",
                    "src": "5089:44:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "avatarContractICO",
                              "referencedDeclaration": 7999,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8132,
                                  "type": "struct SimpleICO.Organization memory",
                                  "value": "org"
                                },
                                "id": 8152,
                                "name": "Identifier",
                                "src": "5143:3:24"
                              }
                            ],
                            "id": 8154,
                            "name": "MemberAccess",
                            "src": "5143:21:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract MirrorContractICO",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_SimpleICO_$8415",
                                      "typeString": "contract SimpleICO"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "function (contract Avatar,contract SimpleICO) returns (contract MirrorContractICO)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "MirrorContractICO",
                                      "referencedDeclaration": 7990,
                                      "type": "contract MirrorContractICO"
                                    },
                                    "id": 8155,
                                    "name": "UserDefinedTypeName",
                                    "src": "5171:17:24"
                                  }
                                ],
                                "id": 8156,
                                "name": "NewExpression",
                                "src": "5167:21:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8121,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8157,
                                "name": "Identifier",
                                "src": "5189:7:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10954,
                                  "type": "contract SimpleICO",
                                  "value": "this"
                                },
                                "id": 8158,
                                "name": "Identifier",
                                "src": "5198:4:24"
                              }
                            ],
                            "id": 8159,
                            "name": "FunctionCall",
                            "src": "5167:36:24"
                          }
                        ],
                        "id": 8160,
                        "name": "Assignment",
                        "src": "5143:60:24"
                      }
                    ],
                    "id": 8161,
                    "name": "ExpressionStatement",
                    "src": "5143:60:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct SimpleICO.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct SimpleICO.Organization storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8021,
                                  "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                                  "value": "organizationsICOInfo"
                                },
                                "id": 8162,
                                "name": "Identifier",
                                "src": "5213:20:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8121,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8163,
                                "name": "Identifier",
                                "src": "5234:7:24"
                              }
                            ],
                            "id": 8164,
                            "name": "IndexAccess",
                            "src": "5213:29:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8132,
                              "type": "struct SimpleICO.Organization memory",
                              "value": "org"
                            },
                            "id": 8165,
                            "name": "Identifier",
                            "src": "5245:3:24"
                          }
                        ],
                        "id": 8166,
                        "name": "Assignment",
                        "src": "5213:35:24"
                      }
                    ],
                    "id": 8167,
                    "name": "ExpressionStatement",
                    "src": "5213:35:24"
                  }
                ],
                "id": 8168,
                "name": "Block",
                "src": "4946:309:24"
              }
            ],
            "id": 8169,
            "name": "FunctionDefinition",
            "src": "4908:347:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "haltICO",
              "payable": false,
              "scope": 8415,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8195,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8170,
                        "name": "ElementaryTypeName",
                        "src": "5392:7:24"
                      }
                    ],
                    "id": 8171,
                    "name": "VariableDeclaration",
                    "src": "5392:15:24"
                  }
                ],
                "id": 8172,
                "name": "ParameterList",
                "src": "5391:17:24"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8173,
                "name": "ParameterList",
                "src": "5416:0:24"
              },
              {
                "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8174,
                            "name": "Identifier",
                            "src": "5426:7:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "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": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 8175,
                                    "name": "Identifier",
                                    "src": "5434:3:24"
                                  }
                                ],
                                "id": 8176,
                                "name": "MemberAccess",
                                "src": "5434:10:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "admin",
                                  "referencedDeclaration": 8016,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct SimpleICO.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8025,
                                          "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 8177,
                                        "name": "Identifier",
                                        "src": "5448:10:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "paramsHash",
                                          "referencedDeclaration": 7997,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct SimpleICO.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8021,
                                                  "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                                                  "value": "organizationsICOInfo"
                                                },
                                                "id": 8178,
                                                "name": "Identifier",
                                                "src": "5459:20:24"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8171,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8179,
                                                "name": "Identifier",
                                                "src": "5480:7:24"
                                              }
                                            ],
                                            "id": 8180,
                                            "name": "IndexAccess",
                                            "src": "5459:29:24"
                                          }
                                        ],
                                        "id": 8181,
                                        "name": "MemberAccess",
                                        "src": "5459:40:24"
                                      }
                                    ],
                                    "id": 8182,
                                    "name": "IndexAccess",
                                    "src": "5448:52:24"
                                  }
                                ],
                                "id": 8183,
                                "name": "MemberAccess",
                                "src": "5448:58:24"
                              }
                            ],
                            "id": 8184,
                            "name": "BinaryOperation",
                            "src": "5434:72:24"
                          }
                        ],
                        "id": 8185,
                        "name": "FunctionCall",
                        "src": "5426:81:24"
                      }
                    ],
                    "id": 8186,
                    "name": "ExpressionStatement",
                    "src": "5426:81:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "isHalted",
                              "referencedDeclaration": 8003,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct SimpleICO.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8021,
                                      "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                                      "value": "organizationsICOInfo"
                                    },
                                    "id": 8187,
                                    "name": "Identifier",
                                    "src": "5517:20:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8171,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 8188,
                                    "name": "Identifier",
                                    "src": "5538:7:24"
                                  }
                                ],
                                "id": 8189,
                                "name": "IndexAccess",
                                "src": "5517:29:24"
                              }
                            ],
                            "id": 8190,
                            "name": "MemberAccess",
                            "src": "5517:38:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 8191,
                            "name": "Literal",
                            "src": "5558:4:24"
                          }
                        ],
                        "id": 8192,
                        "name": "Assignment",
                        "src": "5517:45:24"
                      }
                    ],
                    "id": 8193,
                    "name": "ExpressionStatement",
                    "src": "5517:45:24"
                  }
                ],
                "id": 8194,
                "name": "Block",
                "src": "5416:153:24"
              }
            ],
            "id": 8195,
            "name": "FunctionDefinition",
            "src": "5375:194:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "resumeICO",
              "payable": false,
              "scope": 8415,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8221,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8196,
                        "name": "ElementaryTypeName",
                        "src": "5710:7:24"
                      }
                    ],
                    "id": 8197,
                    "name": "VariableDeclaration",
                    "src": "5710:15:24"
                  }
                ],
                "id": 8198,
                "name": "ParameterList",
                "src": "5709:17:24"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8199,
                "name": "ParameterList",
                "src": "5734:0:24"
              },
              {
                "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8200,
                            "name": "Identifier",
                            "src": "5744:7:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "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": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 8201,
                                    "name": "Identifier",
                                    "src": "5752:3:24"
                                  }
                                ],
                                "id": 8202,
                                "name": "MemberAccess",
                                "src": "5752:10:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "admin",
                                  "referencedDeclaration": 8016,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct SimpleICO.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8025,
                                          "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 8203,
                                        "name": "Identifier",
                                        "src": "5766:10:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "paramsHash",
                                          "referencedDeclaration": 7997,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct SimpleICO.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8021,
                                                  "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                                                  "value": "organizationsICOInfo"
                                                },
                                                "id": 8204,
                                                "name": "Identifier",
                                                "src": "5777:20:24"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8197,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8205,
                                                "name": "Identifier",
                                                "src": "5798:7:24"
                                              }
                                            ],
                                            "id": 8206,
                                            "name": "IndexAccess",
                                            "src": "5777:29:24"
                                          }
                                        ],
                                        "id": 8207,
                                        "name": "MemberAccess",
                                        "src": "5777:40:24"
                                      }
                                    ],
                                    "id": 8208,
                                    "name": "IndexAccess",
                                    "src": "5766:52:24"
                                  }
                                ],
                                "id": 8209,
                                "name": "MemberAccess",
                                "src": "5766:58:24"
                              }
                            ],
                            "id": 8210,
                            "name": "BinaryOperation",
                            "src": "5752:72:24"
                          }
                        ],
                        "id": 8211,
                        "name": "FunctionCall",
                        "src": "5744:81:24"
                      }
                    ],
                    "id": 8212,
                    "name": "ExpressionStatement",
                    "src": "5744:81:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "isHalted",
                              "referencedDeclaration": 8003,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct SimpleICO.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8021,
                                      "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                                      "value": "organizationsICOInfo"
                                    },
                                    "id": 8213,
                                    "name": "Identifier",
                                    "src": "5835:20:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8197,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 8214,
                                    "name": "Identifier",
                                    "src": "5856:7:24"
                                  }
                                ],
                                "id": 8215,
                                "name": "IndexAccess",
                                "src": "5835:29:24"
                              }
                            ],
                            "id": 8216,
                            "name": "MemberAccess",
                            "src": "5835:38:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 8217,
                            "name": "Literal",
                            "src": "5876:5:24"
                          }
                        ],
                        "id": 8218,
                        "name": "Assignment",
                        "src": "5835:46:24"
                      }
                    ],
                    "id": 8219,
                    "name": "ExpressionStatement",
                    "src": "5835:46:24"
                  }
                ],
                "id": 8220,
                "name": "Block",
                "src": "5734:154:24"
              }
            ],
            "id": 8221,
            "name": "FunctionDefinition",
            "src": "5691:197:24"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isActive",
              "payable": false,
              "scope": 8415,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8271,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8222,
                        "name": "ElementaryTypeName",
                        "src": "6316:7:24"
                      }
                    ],
                    "id": 8223,
                    "name": "VariableDeclaration",
                    "src": "6316:15:24"
                  }
                ],
                "id": 8224,
                "name": "ParameterList",
                "src": "6315:17:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8271,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 8225,
                        "name": "ElementaryTypeName",
                        "src": "6357:4:24"
                      }
                    ],
                    "id": 8226,
                    "name": "VariableDeclaration",
                    "src": "6357:4:24"
                  }
                ],
                "id": 8227,
                "name": "ParameterList",
                "src": "6356:6:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8229
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "org",
                          "scope": 8271,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct SimpleICO.Organization memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 8004,
                              "type": "struct SimpleICO.Organization storage pointer"
                            },
                            "id": 8228,
                            "name": "UserDefinedTypeName",
                            "src": "6373:12:24"
                          }
                        ],
                        "id": 8229,
                        "name": "VariableDeclaration",
                        "src": "6373:23:24"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct SimpleICO.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8021,
                              "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                              "value": "organizationsICOInfo"
                            },
                            "id": 8230,
                            "name": "Identifier",
                            "src": "6399:20:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8223,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 8231,
                            "name": "Identifier",
                            "src": "6420:7:24"
                          }
                        ],
                        "id": 8232,
                        "name": "IndexAccess",
                        "src": "6399:29:24"
                      }
                    ],
                    "id": 8233,
                    "name": "VariableDeclarationStatement",
                    "src": "6373:55:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8235
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 8271,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct SimpleICO.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8017,
                              "type": "struct SimpleICO.Parameters storage pointer"
                            },
                            "id": 8234,
                            "name": "UserDefinedTypeName",
                            "src": "6438:10:24"
                          }
                        ],
                        "id": 8235,
                        "name": "VariableDeclaration",
                        "src": "6438:24:24"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct SimpleICO.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8025,
                              "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 8236,
                            "name": "Identifier",
                            "src": "6465:10:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "paramsHash",
                              "referencedDeclaration": 7997,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8229,
                                  "type": "struct SimpleICO.Organization memory",
                                  "value": "org"
                                },
                                "id": 8237,
                                "name": "Identifier",
                                "src": "6476:3:24"
                              }
                            ],
                            "id": 8238,
                            "name": "MemberAccess",
                            "src": "6476:14:24"
                          }
                        ],
                        "id": 8239,
                        "name": "IndexAccess",
                        "src": "6465:26:24"
                      }
                    ],
                    "id": 8240,
                    "name": "VariableDeclarationStatement",
                    "src": "6438:53:24"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "totalEthRaised",
                              "referencedDeclaration": 8001,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8229,
                                  "type": "struct SimpleICO.Organization memory",
                                  "value": "org"
                                },
                                "id": 8241,
                                "name": "Identifier",
                                "src": "6506:3:24"
                              }
                            ],
                            "id": 8242,
                            "name": "MemberAccess",
                            "src": "6506:18:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "cap",
                              "referencedDeclaration": 8006,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8235,
                                  "type": "struct SimpleICO.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8243,
                                "name": "Identifier",
                                "src": "6528:6:24"
                              }
                            ],
                            "id": 8244,
                            "name": "MemberAccess",
                            "src": "6528:10:24"
                          }
                        ],
                        "id": 8245,
                        "name": "BinaryOperation",
                        "src": "6506:32:24"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 8227
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 8246,
                                "name": "Literal",
                                "src": "6561:5:24"
                              }
                            ],
                            "id": 8247,
                            "name": "Return",
                            "src": "6554:12:24"
                          }
                        ],
                        "id": 8248,
                        "name": "Block",
                        "src": "6540:37:24"
                      }
                    ],
                    "id": 8249,
                    "name": "IfStatement",
                    "src": "6502:75:24"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "number",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10859,
                                  "type": "block",
                                  "value": "block"
                                },
                                "id": 8250,
                                "name": "Identifier",
                                "src": "6590:5:24"
                              }
                            ],
                            "id": 8251,
                            "name": "MemberAccess",
                            "src": "6590:12:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "endBlock",
                              "referencedDeclaration": 8012,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8235,
                                  "type": "struct SimpleICO.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8252,
                                "name": "Identifier",
                                "src": "6606:6:24"
                              }
                            ],
                            "id": 8253,
                            "name": "MemberAccess",
                            "src": "6606:15:24"
                          }
                        ],
                        "id": 8254,
                        "name": "BinaryOperation",
                        "src": "6590:31:24"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 8227
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 8255,
                                "name": "Literal",
                                "src": "6644:5:24"
                              }
                            ],
                            "id": 8256,
                            "name": "Return",
                            "src": "6637:12:24"
                          }
                        ],
                        "id": 8257,
                        "name": "Block",
                        "src": "6623:37:24"
                      }
                    ],
                    "id": 8258,
                    "name": "IfStatement",
                    "src": "6586:74:24"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "number",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10859,
                                  "type": "block",
                                  "value": "block"
                                },
                                "id": 8259,
                                "name": "Identifier",
                                "src": "6673:5:24"
                              }
                            ],
                            "id": 8260,
                            "name": "MemberAccess",
                            "src": "6673:12:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "startBlock",
                              "referencedDeclaration": 8010,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8235,
                                  "type": "struct SimpleICO.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8261,
                                "name": "Identifier",
                                "src": "6689:6:24"
                              }
                            ],
                            "id": 8262,
                            "name": "MemberAccess",
                            "src": "6689:17:24"
                          }
                        ],
                        "id": 8263,
                        "name": "BinaryOperation",
                        "src": "6673:33:24"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 8227
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 8264,
                                "name": "Literal",
                                "src": "6729:5:24"
                              }
                            ],
                            "id": 8265,
                            "name": "Return",
                            "src": "6722:12:24"
                          }
                        ],
                        "id": 8266,
                        "name": "Block",
                        "src": "6708:37:24"
                      }
                    ],
                    "id": 8267,
                    "name": "IfStatement",
                    "src": "6669:76:24"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8227
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 8268,
                        "name": "Literal",
                        "src": "6761:4:24"
                      }
                    ],
                    "id": 8269,
                    "name": "Return",
                    "src": "6754:11:24"
                  }
                ],
                "id": 8270,
                "name": "Block",
                "src": "6363:409:24"
              }
            ],
            "id": 8271,
            "name": "FunctionDefinition",
            "src": "6298:474:24"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "donate",
              "payable": true,
              "scope": 8415,
              "stateMutability": "payable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8414,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 8272,
                        "name": "UserDefinedTypeName",
                        "src": "7186:6:24"
                      }
                    ],
                    "id": 8273,
                    "name": "VariableDeclaration",
                    "src": "7186:14:24"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 8414,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8274,
                        "name": "ElementaryTypeName",
                        "src": "7202:7:24"
                      }
                    ],
                    "id": 8275,
                    "name": "VariableDeclaration",
                    "src": "7202:20:24"
                  }
                ],
                "id": 8276,
                "name": "ParameterList",
                "src": "7185:38:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8414,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8277,
                        "name": "ElementaryTypeName",
                        "src": "7247:4:24"
                      }
                    ],
                    "id": 8278,
                    "name": "VariableDeclaration",
                    "src": "7247:4:24"
                  }
                ],
                "id": 8279,
                "name": "ParameterList",
                "src": "7246:6:24"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8281
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "org",
                          "scope": 8414,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct SimpleICO.Organization memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 8004,
                              "type": "struct SimpleICO.Organization storage pointer"
                            },
                            "id": 8280,
                            "name": "UserDefinedTypeName",
                            "src": "7263:12:24"
                          }
                        ],
                        "id": 8281,
                        "name": "VariableDeclaration",
                        "src": "7263:23:24"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct SimpleICO.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8021,
                              "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                              "value": "organizationsICOInfo"
                            },
                            "id": 8282,
                            "name": "Identifier",
                            "src": "7289:20:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8273,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8283,
                            "name": "Identifier",
                            "src": "7310:7:24"
                          }
                        ],
                        "id": 8284,
                        "name": "IndexAccess",
                        "src": "7289:29:24"
                      }
                    ],
                    "id": 8285,
                    "name": "VariableDeclarationStatement",
                    "src": "7263:55:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8287
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 8414,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct SimpleICO.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8017,
                              "type": "struct SimpleICO.Parameters storage pointer"
                            },
                            "id": 8286,
                            "name": "UserDefinedTypeName",
                            "src": "7328:10:24"
                          }
                        ],
                        "id": 8287,
                        "name": "VariableDeclaration",
                        "src": "7328:24:24"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct SimpleICO.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8025,
                              "type": "mapping(bytes32 => struct SimpleICO.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 8288,
                            "name": "Identifier",
                            "src": "7355:10:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "paramsHash",
                              "referencedDeclaration": 7997,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8281,
                                  "type": "struct SimpleICO.Organization memory",
                                  "value": "org"
                                },
                                "id": 8289,
                                "name": "Identifier",
                                "src": "7366:3:24"
                              }
                            ],
                            "id": 8290,
                            "name": "MemberAccess",
                            "src": "7366:14:24"
                          }
                        ],
                        "id": 8291,
                        "name": "IndexAccess",
                        "src": "7355:26:24"
                      }
                    ],
                    "id": 8292,
                    "name": "VariableDeclarationStatement",
                    "src": "7328:53:24"
                  },
                  {
                    "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8293,
                            "name": "Identifier",
                            "src": "7424:7:24"
                          },
                          {
                            "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_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8271,
                                  "type": "function (address) view returns (bool)",
                                  "value": "isActive"
                                },
                                "id": 8294,
                                "name": "Identifier",
                                "src": "7432:8:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8273,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8295,
                                "name": "Identifier",
                                "src": "7441:7:24"
                              }
                            ],
                            "id": 8296,
                            "name": "FunctionCall",
                            "src": "7432:17:24"
                          }
                        ],
                        "id": 8297,
                        "name": "FunctionCall",
                        "src": "7424:26:24"
                      }
                    ],
                    "id": 8298,
                    "name": "ExpressionStatement",
                    "src": "7424:26:24"
                  },
                  {
                    "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": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8299,
                            "name": "Identifier",
                            "src": "7497:7:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!",
                              "prefix": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "isHalted",
                                  "referencedDeclaration": 8003,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8281,
                                      "type": "struct SimpleICO.Organization memory",
                                      "value": "org"
                                    },
                                    "id": 8300,
                                    "name": "Identifier",
                                    "src": "7506:3:24"
                                  }
                                ],
                                "id": 8301,
                                "name": "MemberAccess",
                                "src": "7506:12:24"
                              }
                            ],
                            "id": 8302,
                            "name": "UnaryOperation",
                            "src": "7505:13:24"
                          }
                        ],
                        "id": 8303,
                        "name": "FunctionCall",
                        "src": "7497:22:24"
                      }
                    ],
                    "id": 8304,
                    "name": "ExpressionStatement",
                    "src": "7497:22:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "incomingEther",
                          "scope": 8414,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 8305,
                            "name": "ElementaryTypeName",
                            "src": "7531:4:24"
                          }
                        ],
                        "id": 8306,
                        "name": "VariableDeclaration",
                        "src": "7531:18:24"
                      }
                    ],
                    "id": 8307,
                    "name": "VariableDeclarationStatement",
                    "src": "7531:18:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "change",
                          "scope": 8414,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 8308,
                            "name": "ElementaryTypeName",
                            "src": "7559:4:24"
                          }
                        ],
                        "id": 8309,
                        "name": "VariableDeclaration",
                        "src": "7559:11:24"
                      }
                    ],
                    "id": 8310,
                    "name": "VariableDeclarationStatement",
                    "src": "7559:11:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "value",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8311,
                                "name": "Identifier",
                                "src": "7629:3:24"
                              }
                            ],
                            "id": 8312,
                            "name": "MemberAccess",
                            "src": "7629:9:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sub",
                                  "referencedDeclaration": 10196,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "cap",
                                          "referencedDeclaration": 8006,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8287,
                                              "type": "struct SimpleICO.Parameters memory",
                                              "value": "params"
                                            },
                                            "id": 8313,
                                            "name": "Identifier",
                                            "src": "7642:6:24"
                                          }
                                        ],
                                        "id": 8314,
                                        "name": "MemberAccess",
                                        "src": "7642:10:24"
                                      }
                                    ],
                                    "id": 8315,
                                    "name": "TupleExpression",
                                    "src": "7641:12:24"
                                  }
                                ],
                                "id": 8316,
                                "name": "MemberAccess",
                                "src": "7641:16:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "totalEthRaised",
                                  "referencedDeclaration": 8001,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8281,
                                      "type": "struct SimpleICO.Organization memory",
                                      "value": "org"
                                    },
                                    "id": 8317,
                                    "name": "Identifier",
                                    "src": "7658:3:24"
                                  }
                                ],
                                "id": 8318,
                                "name": "MemberAccess",
                                "src": "7658:18:24"
                              }
                            ],
                            "id": 8319,
                            "name": "FunctionCall",
                            "src": "7641:36:24"
                          }
                        ],
                        "id": 8320,
                        "name": "BinaryOperation",
                        "src": "7629:48:24"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8306,
                                      "type": "uint256",
                                      "value": "incomingEther"
                                    },
                                    "id": 8321,
                                    "name": "Identifier",
                                    "src": "7694:13:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 10196,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "cap",
                                                  "referencedDeclaration": 8006,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8287,
                                                      "type": "struct SimpleICO.Parameters memory",
                                                      "value": "params"
                                                    },
                                                    "id": 8322,
                                                    "name": "Identifier",
                                                    "src": "7711:6:24"
                                                  }
                                                ],
                                                "id": 8323,
                                                "name": "MemberAccess",
                                                "src": "7711:10:24"
                                              }
                                            ],
                                            "id": 8324,
                                            "name": "TupleExpression",
                                            "src": "7710:12:24"
                                          }
                                        ],
                                        "id": 8325,
                                        "name": "MemberAccess",
                                        "src": "7710:16:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "totalEthRaised",
                                          "referencedDeclaration": 8001,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8281,
                                              "type": "struct SimpleICO.Organization memory",
                                              "value": "org"
                                            },
                                            "id": 8326,
                                            "name": "Identifier",
                                            "src": "7727:3:24"
                                          }
                                        ],
                                        "id": 8327,
                                        "name": "MemberAccess",
                                        "src": "7727:18:24"
                                      }
                                    ],
                                    "id": 8328,
                                    "name": "FunctionCall",
                                    "src": "7710:36:24"
                                  }
                                ],
                                "id": 8329,
                                "name": "Assignment",
                                "src": "7694:52:24"
                              }
                            ],
                            "id": 8330,
                            "name": "ExpressionStatement",
                            "src": "7694:52:24"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8309,
                                      "type": "uint256",
                                      "value": "change"
                                    },
                                    "id": 8331,
                                    "name": "Identifier",
                                    "src": "7760:6:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 10196,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "uint256"
                                            },
                                            "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": 10867,
                                                      "type": "msg",
                                                      "value": "msg"
                                                    },
                                                    "id": 8332,
                                                    "name": "Identifier",
                                                    "src": "7770:3:24"
                                                  }
                                                ],
                                                "id": 8333,
                                                "name": "MemberAccess",
                                                "src": "7770:9:24"
                                              }
                                            ],
                                            "id": 8334,
                                            "name": "TupleExpression",
                                            "src": "7769:11:24"
                                          }
                                        ],
                                        "id": 8335,
                                        "name": "MemberAccess",
                                        "src": "7769:15:24"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8306,
                                          "type": "uint256",
                                          "value": "incomingEther"
                                        },
                                        "id": 8336,
                                        "name": "Identifier",
                                        "src": "7785:13:24"
                                      }
                                    ],
                                    "id": 8337,
                                    "name": "FunctionCall",
                                    "src": "7769:30:24"
                                  }
                                ],
                                "id": 8338,
                                "name": "Assignment",
                                "src": "7760:39:24"
                              }
                            ],
                            "id": 8339,
                            "name": "ExpressionStatement",
                            "src": "7760:39:24"
                          }
                        ],
                        "id": 8340,
                        "name": "Block",
                        "src": "7680:130:24"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8306,
                                      "type": "uint256",
                                      "value": "incomingEther"
                                    },
                                    "id": 8341,
                                    "name": "Identifier",
                                    "src": "7830:13:24"
                                  },
                                  {
                                    "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": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 8342,
                                        "name": "Identifier",
                                        "src": "7846:3:24"
                                      }
                                    ],
                                    "id": 8343,
                                    "name": "MemberAccess",
                                    "src": "7846:9:24"
                                  }
                                ],
                                "id": 8344,
                                "name": "Assignment",
                                "src": "7830:25:24"
                              }
                            ],
                            "id": 8345,
                            "name": "ExpressionStatement",
                            "src": "7830:25:24"
                          }
                        ],
                        "id": 8346,
                        "name": "Block",
                        "src": "7816:50:24"
                      }
                    ],
                    "id": 8347,
                    "name": "IfStatement",
                    "src": "7624:242:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8349
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "tokens",
                          "scope": 8414,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 8348,
                            "name": "ElementaryTypeName",
                            "src": "7875:4:24"
                          }
                        ],
                        "id": 8349,
                        "name": "VariableDeclaration",
                        "src": "7875:11:24"
                      },
                      {
                        "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": "mul",
                              "referencedDeclaration": 10158,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8306,
                                  "type": "uint256",
                                  "value": "incomingEther"
                                },
                                "id": 8350,
                                "name": "Identifier",
                                "src": "7889:13:24"
                              }
                            ],
                            "id": 8351,
                            "name": "MemberAccess",
                            "src": "7889:17:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "price",
                              "referencedDeclaration": 8008,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8287,
                                  "type": "struct SimpleICO.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8352,
                                "name": "Identifier",
                                "src": "7907:6:24"
                              }
                            ],
                            "id": 8353,
                            "name": "MemberAccess",
                            "src": "7907:12:24"
                          }
                        ],
                        "id": 8354,
                        "name": "FunctionCall",
                        "src": "7889:31:24"
                      }
                    ],
                    "id": 8355,
                    "name": "VariableDeclarationStatement",
                    "src": "7875:45:24"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": null,
                              "type": "function (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "beneficiary",
                                  "referencedDeclaration": 8014,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8287,
                                      "type": "struct SimpleICO.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 8356,
                                    "name": "Identifier",
                                    "src": "8014:6:24"
                                  }
                                ],
                                "id": 8359,
                                "name": "MemberAccess",
                                "src": "8014:18:24"
                              }
                            ],
                            "id": 8360,
                            "name": "MemberAccess",
                            "src": "8014:27:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8306,
                              "type": "uint256",
                              "value": "incomingEther"
                            },
                            "id": 8361,
                            "name": "Identifier",
                            "src": "8042:13:24"
                          }
                        ],
                        "id": 8362,
                        "name": "FunctionCall",
                        "src": "8014:42:24"
                      }
                    ],
                    "id": 8363,
                    "name": "ExpressionStatement",
                    "src": "8014:42:24"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8365
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "controller",
                          "scope": 8414,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract ControllerInterface",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ControllerInterface",
                              "referencedDeclaration": 4364,
                              "type": "contract ControllerInterface"
                            },
                            "id": 8364,
                            "name": "UserDefinedTypeName",
                            "src": "8067:19:24"
                          }
                        ],
                        "id": 8365,
                        "name": "VariableDeclaration",
                        "src": "8067:30:24"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract ControllerInterface",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4364,
                              "type": "type(contract ControllerInterface)",
                              "value": "ControllerInterface"
                            },
                            "id": 8366,
                            "name": "Identifier",
                            "src": "8100:19:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 10249,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8273,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 8367,
                                    "name": "Identifier",
                                    "src": "8120:7:24"
                                  }
                                ],
                                "id": 8368,
                                "name": "MemberAccess",
                                "src": "8120:13:24"
                              }
                            ],
                            "id": 8369,
                            "name": "FunctionCall",
                            "src": "8120:15:24"
                          }
                        ],
                        "id": 8370,
                        "name": "FunctionCall",
                        "src": "8100:36:24"
                      }
                    ],
                    "id": 8371,
                    "name": "VariableDeclarationStatement",
                    "src": "8067:69:24"
                  },
                  {
                    "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_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "mintTokens",
                                  "referencedDeclaration": 4187,
                                  "type": "function (uint256,address,address) external returns (bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8365,
                                      "type": "contract ControllerInterface",
                                      "value": "controller"
                                    },
                                    "id": 8372,
                                    "name": "Identifier",
                                    "src": "8151:10:24"
                                  }
                                ],
                                "id": 8373,
                                "name": "MemberAccess",
                                "src": "8151:21:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8349,
                                  "type": "uint256",
                                  "value": "tokens"
                                },
                                "id": 8374,
                                "name": "Identifier",
                                "src": "8173:6:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8275,
                                  "type": "address",
                                  "value": "_beneficiary"
                                },
                                "id": 8375,
                                "name": "Identifier",
                                "src": "8181:12:24"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_Avatar_$3065",
                                          "typeString": "contract Avatar"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 8376,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8194:7:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8273,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 8377,
                                    "name": "Identifier",
                                    "src": "8202:7:24"
                                  }
                                ],
                                "id": 8378,
                                "name": "FunctionCall",
                                "src": "8194:16:24"
                              }
                            ],
                            "id": 8379,
                            "name": "FunctionCall",
                            "src": "8151:60:24"
                          }
                        ],
                        "id": 8380,
                        "name": "UnaryOperation",
                        "src": "8150:61:24"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10871,
                                      "type": "function () pure",
                                      "value": "revert"
                                    },
                                    "id": 8381,
                                    "name": "Identifier",
                                    "src": "8227:6:24"
                                  }
                                ],
                                "id": 8382,
                                "name": "FunctionCall",
                                "src": "8227:8:24"
                              }
                            ],
                            "id": 8383,
                            "name": "ExpressionStatement",
                            "src": "8227:8:24"
                          }
                        ],
                        "id": 8384,
                        "name": "Block",
                        "src": "8213:33:24"
                      }
                    ],
                    "id": 8385,
                    "name": "IfStatement",
                    "src": "8146:100:24"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8309,
                              "type": "uint256",
                              "value": "change"
                            },
                            "id": 8386,
                            "name": "Identifier",
                            "src": "8259:6:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8387,
                            "name": "Literal",
                            "src": "8269:1:24"
                          }
                        ],
                        "id": 8388,
                        "name": "BinaryOperation",
                        "src": "8259:11:24"
                      },
                      {
                        "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_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transfer",
                                      "referencedDeclaration": null,
                                      "type": "function (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8275,
                                          "type": "address",
                                          "value": "_beneficiary"
                                        },
                                        "id": 8389,
                                        "name": "Identifier",
                                        "src": "8286:12:24"
                                      }
                                    ],
                                    "id": 8391,
                                    "name": "MemberAccess",
                                    "src": "8286:21:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8309,
                                      "type": "uint256",
                                      "value": "change"
                                    },
                                    "id": 8392,
                                    "name": "Identifier",
                                    "src": "8308:6:24"
                                  }
                                ],
                                "id": 8393,
                                "name": "FunctionCall",
                                "src": "8286:29:24"
                              }
                            ],
                            "id": 8394,
                            "name": "ExpressionStatement",
                            "src": "8286:29:24"
                          }
                        ],
                        "id": 8395,
                        "name": "Block",
                        "src": "8272:54:24"
                      }
                    ],
                    "id": 8396,
                    "name": "IfStatement",
                    "src": "8255:71:24"
                  },
                  {
                    "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,
                              "member_name": "totalEthRaised",
                              "referencedDeclaration": 8001,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct SimpleICO.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8021,
                                      "type": "mapping(address => struct SimpleICO.Organization storage ref)",
                                      "value": "organizationsICOInfo"
                                    },
                                    "id": 8397,
                                    "name": "Identifier",
                                    "src": "8414:20:24"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8273,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 8398,
                                    "name": "Identifier",
                                    "src": "8435:7:24"
                                  }
                                ],
                                "id": 8399,
                                "name": "IndexAccess",
                                "src": "8414:29:24"
                              }
                            ],
                            "id": 8400,
                            "name": "MemberAccess",
                            "src": "8414:44:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8306,
                              "type": "uint256",
                              "value": "incomingEther"
                            },
                            "id": 8401,
                            "name": "Identifier",
                            "src": "8462:13:24"
                          }
                        ],
                        "id": 8402,
                        "name": "Assignment",
                        "src": "8414:61:24"
                      }
                    ],
                    "id": 8403,
                    "name": "ExpressionStatement",
                    "src": "8414:61:24"
                  },
                  {
                    "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_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8035,
                              "type": "function (address,address,uint256,uint256)",
                              "value": "DonationReceived"
                            },
                            "id": 8404,
                            "name": "Identifier",
                            "src": "8485:16:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8273,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8405,
                            "name": "Identifier",
                            "src": "8502:7:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8275,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 8406,
                            "name": "Identifier",
                            "src": "8511:12:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8306,
                              "type": "uint256",
                              "value": "incomingEther"
                            },
                            "id": 8407,
                            "name": "Identifier",
                            "src": "8525:13:24"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8349,
                              "type": "uint256",
                              "value": "tokens"
                            },
                            "id": 8408,
                            "name": "Identifier",
                            "src": "8540:6:24"
                          }
                        ],
                        "id": 8409,
                        "name": "FunctionCall",
                        "src": "8485:62:24"
                      }
                    ],
                    "id": 8410,
                    "name": "ExpressionStatement",
                    "src": "8485:62:24"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8279
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8349,
                          "type": "uint256",
                          "value": "tokens"
                        },
                        "id": 8411,
                        "name": "Identifier",
                        "src": "8564:6:24"
                      }
                    ],
                    "id": 8412,
                    "name": "Return",
                    "src": "8557:13:24"
                  }
                ],
                "id": 8413,
                "name": "Block",
                "src": "7253:1324:24"
              }
            ],
            "id": 8414,
            "name": "FunctionDefinition",
            "src": "7170:1407:24"
          }
        ],
        "id": 8415,
        "name": "ContractDefinition",
        "src": "1423:7156:24"
      }
    ],
    "id": 8416,
    "name": "SourceUnit",
    "src": "0:8580:24"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:14:57.922Z"
}