{
  "contractName": "Reputation",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "name": "balance",
          "type": "uint256"
        }
      ],
      "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": "_to",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "int256"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "int256"
        }
      ],
      "name": "Mint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x60606040526012600355341561001457600080fd5b60008054600160a060020a033316600160a060020a0319909116811782558152600160205260408120819055600255610348806100526000396000f3006060604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461007c578063313ce567146100a15780638da5cb5b146100b4578063db89c044146100e3578063f2fde38b14610102578063fd9bf3aa14610123575b600080fd5b341561008757600080fd5b61008f610159565b60405190815260200160405180910390f35b34156100ac57600080fd5b61008f61015f565b34156100bf57600080fd5b6100c7610165565b604051600160a060020a03909116815260200160405180910390f35b34156100ee57600080fd5b61008f600160a060020a0360043516610174565b341561010d57600080fd5b610121600160a060020a036004351661018f565b005b341561012e57600080fd5b610145600160a060020a036004351660243561022a565b604051901515815260200160405180910390f35b60025481565b60035481565b600054600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b60005433600160a060020a039081169116146101aa57600080fd5b600160a060020a03811615156101bf57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a0390811691161461024857600080fd5b50600160a060020a03831660009081526001602052604081205483919082011261029757600160a060020a038416600090815260016020526040902080548401905560028054840190556102c3565b50600160a060020a03831660009081526001602052604081208054600280548290039055919055600019025b83600160a060020a03167f6f734b566c5e1cb976d9c7fba184b96a698a18931dd345168b16db217f8df0dd8260405190815260200160405180910390a260019150600254600090121561031557600080fd5b50929150505600a165627a7a72305820cb6b665f925c5fb361352f7a8515736a2f42c673c814c537a5e2d6d2193e29cc0029",
  "deployedBytecode": "0x6060604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461007c578063313ce567146100a15780638da5cb5b146100b4578063db89c044146100e3578063f2fde38b14610102578063fd9bf3aa14610123575b600080fd5b341561008757600080fd5b61008f610159565b60405190815260200160405180910390f35b34156100ac57600080fd5b61008f61015f565b34156100bf57600080fd5b6100c7610165565b604051600160a060020a03909116815260200160405180910390f35b34156100ee57600080fd5b61008f600160a060020a0360043516610174565b341561010d57600080fd5b610121600160a060020a036004351661018f565b005b341561012e57600080fd5b610145600160a060020a036004351660243561022a565b604051901515815260200160405180910390f35b60025481565b60035481565b600054600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b60005433600160a060020a039081169116146101aa57600080fd5b600160a060020a03811615156101bf57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008054819033600160a060020a0390811691161461024857600080fd5b50600160a060020a03831660009081526001602052604081205483919082011261029757600160a060020a038416600090815260016020526040902080548401905560028054840190556102c3565b50600160a060020a03831660009081526001602052604081208054600280548290039055919055600019025b83600160a060020a03167f6f734b566c5e1cb976d9c7fba184b96a698a18931dd345168b16db217f8df0dd8260405190815260200160405180910390a260019150600254600090121561031557600080fd5b50929150505600a165627a7a72305820cb6b665f925c5fb361352f7a8515736a2f42c673c814c537a5e2d6d2193e29cc0029",
  "sourceMap": "252:1810:10:-;;;388:2;365:25;;759:95;;;;;;;;501:5:35;:18;;-1:-1:-1;;;;;509:10:35;501:18;-1:-1:-1;;;;;;501:18:35;;;;;;;798:20:10;;501:18:35;798:20:10;;;;;:24;;;832:11;:15;252:1810;;;;;;",
  "deployedSourceMap": "252:1810:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333:26;;;;;;;;;;;;;;;;;;;;;;;;;;;365:25;;;;;;;;;;;;238:20:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:35;;;;;;;;;;;;;;;1012:120:10;;;;;;;;;;;;-1:-1:-1;;;;;1012:120:10;;;834:169:35;;;;;;;;;;;;-1:-1:-1;;;;;834:169:35;;;;;1482:578:10;;;;;;;;;;;;-1:-1:-1;;;;;1482:578:10;;;;;;;;;;;;;;;;;;;;;;333:26;;;;:::o;365:25::-;;;;:::o;238:20:35:-;;;-1:-1:-1;;;;;238:20:35;;:::o;1012:120:10:-;-1:-1:-1;;;;;1109:16:10;1075:15;1109:16;;;-1:-1:-1;1109:16:10;;;;;;;1012:120::o;834:169:35:-;654:5;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:35;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:35;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:35;-1:-1:-1;;;;;982:16:35;;;;;;;;;;834:169::o;1482:578:10:-;1566:4;654:5:35;;1566:4:10;;640:10:35;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;;1690:13:10;;1718:1;1690:13;;;-1:-1:-1;1690:13:10;;;;;;1664:7;;1686:28;;;:33;1682:317;;-1:-1:-1;;;;;1761:13:10;;;;;;-1:-1:-1;1761:13:10;;;;;;;1757:28;;1736:50;;-1:-1:-1;1823:11:10;;1819:26;;1800:46;;1682:317;;;-1:-1:-1;;;;;;1901:13:10;;;;;;-1:-1:-1;1901:13:10;;;;;;;-1:-1:-1;1929:28:10;;;;;;;1971:17;;;-1:-1:-1;;1892:23:10;1682:317;-1:-1:-1;;;;;2009:23:10;;;2019:12;2009:23;;;;;;;;;;;;;;2049:4;2042:11;;635;;651:1;631:21;;;623:30;;;;;;1482:578;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title Simple static reputation storage\n * @dev The reputation is represented by the owner of the contract\n * which is usually the controller's address\n */\n\ncontract Reputation is Ownable {\n\n    mapping (address => uint256) balances;\n    uint256 public totalSupply;\n    uint public decimals = 18;\n\n    // Event indicating minting of reputation to an address.\n    event Mint(address indexed to, int256 amount);\n\n    /**\n    * @dev enforce a cap to avoid casting problems\n    */\n    modifier capTotalSupply() {\n        _;\n        require(int(totalSupply) >= 0);\n    }\n\n    /**\n    * @dev the constructor initiate a reputation system with no supply at all\n    */\n    function Reputation() public {\n        balances[msg.sender] = 0;\n        totalSupply = 0;\n    }\n\n    /**\n    * @dev return the reputation amount of a given owner\n    * @param _owner an address of the owner which we want to get his reputation\n    */\n    function reputationOf(address _owner) public constant returns (uint256 balance) {\n        return balances[_owner];\n    }\n\n    /**\n    * @dev adding/reducing reputation of a given address, updating the total supply,\n    * and triggering an event of the operation.\n    * @param _to the address which we gives/takes reputation amount\n    * @param _amount the reputation amount to be added/reduced\n    * @return bool which represents a successful of the function\n    */\n    function mint(address _to, int256 _amount) public onlyOwner capTotalSupply returns (bool) {\n        // create new tokens and add them to the given account\n        int amountMinted = _amount;\n\n        if (int(balances[_to]) + _amount >= 0 ) {\n            balances[_to] = uint(int(balances[_to]) + _amount);\n            totalSupply = uint(int(totalSupply) + _amount);\n        } else {\n            amountMinted = (-1)*int(balances[_to]);\n            totalSupply -= balances[_to];\n            balances[_to] = 0;\n        }\n\n        Mint(_to, amountMinted);\n        return true;\n    }\n}\n",
  "sourcePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Reputation.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Reputation.sol",
      "exportedSymbols": {
        "Reputation": [
          5352
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 5209,
        "name": "PragmaDirective",
        "src": "0:24:10"
      },
      {
        "attributes": {
          "SourceUnit": 11446,
          "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "file": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "scope": 5353,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5210,
        "name": "ImportDirective",
        "src": "26:59:10"
      },
      {
        "attributes": {
          "contractDependencies": [
            11445
          ],
          "contractKind": "contract",
          "documentation": "@title Simple static reputation storage\n@dev The reputation is represented by the owner of the contract\nwhich is usually the controller's address",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            5352,
            11445
          ],
          "name": "Reputation",
          "scope": 5353
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Ownable",
                  "referencedDeclaration": 11445,
                  "type": "contract Ownable"
                },
                "id": 5211,
                "name": "UserDefinedTypeName",
                "src": "275:7:10"
              }
            ],
            "id": 5212,
            "name": "InheritanceSpecifier",
            "src": "275:7:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "balances",
              "scope": 5352,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => uint256)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => uint256)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 5213,
                    "name": "ElementaryTypeName",
                    "src": "299:7:10"
                  },
                  {
                    "attributes": {
                      "name": "uint256",
                      "type": "uint256"
                    },
                    "id": 5214,
                    "name": "ElementaryTypeName",
                    "src": "310:7:10"
                  }
                ],
                "id": 5215,
                "name": "Mapping",
                "src": "290:28:10"
              }
            ],
            "id": 5216,
            "name": "VariableDeclaration",
            "src": "290:37:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "totalSupply",
              "scope": 5352,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 5217,
                "name": "ElementaryTypeName",
                "src": "333:7:10"
              }
            ],
            "id": 5218,
            "name": "VariableDeclaration",
            "src": "333:26:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "decimals",
              "scope": 5352,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 5219,
                "name": "ElementaryTypeName",
                "src": "365:4:10"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "3138",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 18",
                  "value": "18"
                },
                "id": 5220,
                "name": "Literal",
                "src": "388:2:10"
              }
            ],
            "id": 5221,
            "name": "VariableDeclaration",
            "src": "365:25:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Mint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "to",
                      "scope": 5227,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5222,
                        "name": "ElementaryTypeName",
                        "src": "469:7:10"
                      }
                    ],
                    "id": 5223,
                    "name": "VariableDeclaration",
                    "src": "469:18:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount",
                      "scope": 5227,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 5224,
                        "name": "ElementaryTypeName",
                        "src": "489:6:10"
                      }
                    ],
                    "id": 5225,
                    "name": "VariableDeclaration",
                    "src": "489:13:10"
                  }
                ],
                "id": 5226,
                "name": "ParameterList",
                "src": "468:35:10"
              }
            ],
            "id": 5227,
            "name": "EventDefinition",
            "src": "458:46:10"
          },
          {
            "attributes": {
              "name": "capTotalSupply",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5228,
                "name": "ParameterList",
                "src": "599:2:10"
              },
              {
                "children": [
                  {
                    "id": 5229,
                    "name": "PlaceholderStatement",
                    "src": "612:1:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5230,
                            "name": "Identifier",
                            "src": "623:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "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": "int256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(int256)",
                                      "value": "int"
                                    },
                                    "id": 5231,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "631:3:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5218,
                                      "type": "uint256",
                                      "value": "totalSupply"
                                    },
                                    "id": 5232,
                                    "name": "Identifier",
                                    "src": "635:11:10"
                                  }
                                ],
                                "id": 5233,
                                "name": "FunctionCall",
                                "src": "631:16:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 5234,
                                "name": "Literal",
                                "src": "651:1:10"
                              }
                            ],
                            "id": 5235,
                            "name": "BinaryOperation",
                            "src": "631:21:10"
                          }
                        ],
                        "id": 5236,
                        "name": "FunctionCall",
                        "src": "623:30:10"
                      }
                    ],
                    "id": 5237,
                    "name": "ExpressionStatement",
                    "src": "623:30:10"
                  }
                ],
                "id": 5238,
                "name": "Block",
                "src": "602:58:10"
              }
            ],
            "id": 5239,
            "name": "ModifierDefinition",
            "src": "576:84:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "Reputation",
              "payable": false,
              "scope": 5352,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5240,
                "name": "ParameterList",
                "src": "778:2:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5241,
                "name": "ParameterList",
                "src": "788:0:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5216,
                                  "type": "mapping(address => uint256)",
                                  "value": "balances"
                                },
                                "id": 5242,
                                "name": "Identifier",
                                "src": "798:8:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5243,
                                    "name": "Identifier",
                                    "src": "807:3:10"
                                  }
                                ],
                                "id": 5244,
                                "name": "MemberAccess",
                                "src": "807:10:10"
                              }
                            ],
                            "id": 5245,
                            "name": "IndexAccess",
                            "src": "798:20:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 5246,
                            "name": "Literal",
                            "src": "821:1:10"
                          }
                        ],
                        "id": 5247,
                        "name": "Assignment",
                        "src": "798:24:10"
                      }
                    ],
                    "id": 5248,
                    "name": "ExpressionStatement",
                    "src": "798:24:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5218,
                              "type": "uint256",
                              "value": "totalSupply"
                            },
                            "id": 5249,
                            "name": "Identifier",
                            "src": "832:11:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 5250,
                            "name": "Literal",
                            "src": "846:1:10"
                          }
                        ],
                        "id": 5251,
                        "name": "Assignment",
                        "src": "832:15:10"
                      }
                    ],
                    "id": 5252,
                    "name": "ExpressionStatement",
                    "src": "832:15:10"
                  }
                ],
                "id": 5253,
                "name": "Block",
                "src": "788:66:10"
              }
            ],
            "id": 5254,
            "name": "FunctionDefinition",
            "src": "759:95:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "reputationOf",
              "payable": false,
              "scope": 5352,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_owner",
                      "scope": 5266,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5255,
                        "name": "ElementaryTypeName",
                        "src": "1034:7:10"
                      }
                    ],
                    "id": 5256,
                    "name": "VariableDeclaration",
                    "src": "1034:14:10"
                  }
                ],
                "id": 5257,
                "name": "ParameterList",
                "src": "1033:16:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "balance",
                      "scope": 5266,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5258,
                        "name": "ElementaryTypeName",
                        "src": "1075:7:10"
                      }
                    ],
                    "id": 5259,
                    "name": "VariableDeclaration",
                    "src": "1075:15:10"
                  }
                ],
                "id": 5260,
                "name": "ParameterList",
                "src": "1074:17:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5260
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5216,
                              "type": "mapping(address => uint256)",
                              "value": "balances"
                            },
                            "id": 5261,
                            "name": "Identifier",
                            "src": "1109:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5256,
                              "type": "address",
                              "value": "_owner"
                            },
                            "id": 5262,
                            "name": "Identifier",
                            "src": "1118:6:10"
                          }
                        ],
                        "id": 5263,
                        "name": "IndexAccess",
                        "src": "1109:16:10"
                      }
                    ],
                    "id": 5264,
                    "name": "Return",
                    "src": "1102:23:10"
                  }
                ],
                "id": 5265,
                "name": "Block",
                "src": "1092:40:10"
              }
            ],
            "id": 5266,
            "name": "FunctionDefinition",
            "src": "1012:120:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mint",
              "payable": false,
              "scope": 5352,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5351,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5267,
                        "name": "ElementaryTypeName",
                        "src": "1496:7:10"
                      }
                    ],
                    "id": 5268,
                    "name": "VariableDeclaration",
                    "src": "1496:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5351,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 5269,
                        "name": "ElementaryTypeName",
                        "src": "1509:6:10"
                      }
                    ],
                    "id": 5270,
                    "name": "VariableDeclaration",
                    "src": "1509:14:10"
                  }
                ],
                "id": 5271,
                "name": "ParameterList",
                "src": "1495:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5351,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5276,
                        "name": "ElementaryTypeName",
                        "src": "1566:4:10"
                      }
                    ],
                    "id": 5277,
                    "name": "VariableDeclaration",
                    "src": "1566:4:10"
                  }
                ],
                "id": 5278,
                "name": "ParameterList",
                "src": "1565:6:10"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 5272,
                    "name": "Identifier",
                    "src": "1532:9:10"
                  }
                ],
                "id": 5273,
                "name": "ModifierInvocation",
                "src": "1532:9:10"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5239,
                      "type": "modifier ()",
                      "value": "capTotalSupply"
                    },
                    "id": 5274,
                    "name": "Identifier",
                    "src": "1542:14:10"
                  }
                ],
                "id": 5275,
                "name": "ModifierInvocation",
                "src": "1542:14:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5280
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "amountMinted",
                          "scope": 5351,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int",
                              "type": "int256"
                            },
                            "id": 5279,
                            "name": "ElementaryTypeName",
                            "src": "1645:3:10"
                          }
                        ],
                        "id": 5280,
                        "name": "VariableDeclaration",
                        "src": "1645:16:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 5270,
                          "type": "int256",
                          "value": "_amount"
                        },
                        "id": 5281,
                        "name": "Identifier",
                        "src": "1664:7:10"
                      }
                    ],
                    "id": 5282,
                    "name": "VariableDeclarationStatement",
                    "src": "1645:26:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+",
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "int256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(int256)",
                                      "value": "int"
                                    },
                                    "id": 5283,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1686:3:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5216,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 5284,
                                        "name": "Identifier",
                                        "src": "1690:8:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5268,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 5285,
                                        "name": "Identifier",
                                        "src": "1699:3:10"
                                      }
                                    ],
                                    "id": 5286,
                                    "name": "IndexAccess",
                                    "src": "1690:13:10"
                                  }
                                ],
                                "id": 5287,
                                "name": "FunctionCall",
                                "src": "1686:18:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5270,
                                  "type": "int256",
                                  "value": "_amount"
                                },
                                "id": 5288,
                                "name": "Identifier",
                                "src": "1707:7:10"
                              }
                            ],
                            "id": 5289,
                            "name": "BinaryOperation",
                            "src": "1686:28:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 5290,
                            "name": "Literal",
                            "src": "1718:1:10"
                          }
                        ],
                        "id": 5291,
                        "name": "BinaryOperation",
                        "src": "1686:33:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5216,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 5292,
                                        "name": "Identifier",
                                        "src": "1736:8:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5268,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 5293,
                                        "name": "Identifier",
                                        "src": "1745:3:10"
                                      }
                                    ],
                                    "id": 5294,
                                    "name": "IndexAccess",
                                    "src": "1736:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)",
                                          "value": "uint"
                                        },
                                        "id": 5295,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "1752:4:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+",
                                          "type": "int256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "int256",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "type(int256)",
                                                  "value": "int"
                                                },
                                                "id": 5296,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "1757:3:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5216,
                                                      "type": "mapping(address => uint256)",
                                                      "value": "balances"
                                                    },
                                                    "id": 5297,
                                                    "name": "Identifier",
                                                    "src": "1761:8:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5268,
                                                      "type": "address",
                                                      "value": "_to"
                                                    },
                                                    "id": 5298,
                                                    "name": "Identifier",
                                                    "src": "1770:3:10"
                                                  }
                                                ],
                                                "id": 5299,
                                                "name": "IndexAccess",
                                                "src": "1761:13:10"
                                              }
                                            ],
                                            "id": 5300,
                                            "name": "FunctionCall",
                                            "src": "1757:18:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5270,
                                              "type": "int256",
                                              "value": "_amount"
                                            },
                                            "id": 5301,
                                            "name": "Identifier",
                                            "src": "1778:7:10"
                                          }
                                        ],
                                        "id": 5302,
                                        "name": "BinaryOperation",
                                        "src": "1757:28:10"
                                      }
                                    ],
                                    "id": 5303,
                                    "name": "FunctionCall",
                                    "src": "1752:34:10"
                                  }
                                ],
                                "id": 5304,
                                "name": "Assignment",
                                "src": "1736:50:10"
                              }
                            ],
                            "id": 5305,
                            "name": "ExpressionStatement",
                            "src": "1736:50:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5218,
                                      "type": "uint256",
                                      "value": "totalSupply"
                                    },
                                    "id": 5306,
                                    "name": "Identifier",
                                    "src": "1800:11:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)",
                                          "value": "uint"
                                        },
                                        "id": 5307,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "1814:4:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+",
                                          "type": "int256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "int256",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "type(int256)",
                                                  "value": "int"
                                                },
                                                "id": 5308,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "1819:3:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5218,
                                                  "type": "uint256",
                                                  "value": "totalSupply"
                                                },
                                                "id": 5309,
                                                "name": "Identifier",
                                                "src": "1823:11:10"
                                              }
                                            ],
                                            "id": 5310,
                                            "name": "FunctionCall",
                                            "src": "1819:16:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5270,
                                              "type": "int256",
                                              "value": "_amount"
                                            },
                                            "id": 5311,
                                            "name": "Identifier",
                                            "src": "1838:7:10"
                                          }
                                        ],
                                        "id": 5312,
                                        "name": "BinaryOperation",
                                        "src": "1819:26:10"
                                      }
                                    ],
                                    "id": 5313,
                                    "name": "FunctionCall",
                                    "src": "1814:32:10"
                                  }
                                ],
                                "id": 5314,
                                "name": "Assignment",
                                "src": "1800:46:10"
                              }
                            ],
                            "id": 5315,
                            "name": "ExpressionStatement",
                            "src": "1800:46:10"
                          }
                        ],
                        "id": 5316,
                        "name": "Block",
                        "src": "1722:135:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5280,
                                      "type": "int256",
                                      "value": "amountMinted"
                                    },
                                    "id": 5317,
                                    "name": "Identifier",
                                    "src": "1877:12:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "*",
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "int_const -1"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "prefix": true,
                                              "type": "int_const -1"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 5318,
                                                "name": "Literal",
                                                "src": "1894:1:10"
                                              }
                                            ],
                                            "id": 5319,
                                            "name": "UnaryOperation",
                                            "src": "1893:2:10"
                                          }
                                        ],
                                        "id": 5320,
                                        "name": "TupleExpression",
                                        "src": "1892:4:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "int256",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(int256)",
                                              "value": "int"
                                            },
                                            "id": 5321,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "1897:3:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5216,
                                                  "type": "mapping(address => uint256)",
                                                  "value": "balances"
                                                },
                                                "id": 5322,
                                                "name": "Identifier",
                                                "src": "1901:8:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5268,
                                                  "type": "address",
                                                  "value": "_to"
                                                },
                                                "id": 5323,
                                                "name": "Identifier",
                                                "src": "1910:3:10"
                                              }
                                            ],
                                            "id": 5324,
                                            "name": "IndexAccess",
                                            "src": "1901:13:10"
                                          }
                                        ],
                                        "id": 5325,
                                        "name": "FunctionCall",
                                        "src": "1897:18:10"
                                      }
                                    ],
                                    "id": 5326,
                                    "name": "BinaryOperation",
                                    "src": "1892:23:10"
                                  }
                                ],
                                "id": 5327,
                                "name": "Assignment",
                                "src": "1877:38:10"
                              }
                            ],
                            "id": 5328,
                            "name": "ExpressionStatement",
                            "src": "1877:38:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5218,
                                      "type": "uint256",
                                      "value": "totalSupply"
                                    },
                                    "id": 5329,
                                    "name": "Identifier",
                                    "src": "1929:11:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5216,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 5330,
                                        "name": "Identifier",
                                        "src": "1944:8:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5268,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 5331,
                                        "name": "Identifier",
                                        "src": "1953:3:10"
                                      }
                                    ],
                                    "id": 5332,
                                    "name": "IndexAccess",
                                    "src": "1944:13:10"
                                  }
                                ],
                                "id": 5333,
                                "name": "Assignment",
                                "src": "1929:28:10"
                              }
                            ],
                            "id": 5334,
                            "name": "ExpressionStatement",
                            "src": "1929:28:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5216,
                                          "type": "mapping(address => uint256)",
                                          "value": "balances"
                                        },
                                        "id": 5335,
                                        "name": "Identifier",
                                        "src": "1971:8:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5268,
                                          "type": "address",
                                          "value": "_to"
                                        },
                                        "id": 5336,
                                        "name": "Identifier",
                                        "src": "1980:3:10"
                                      }
                                    ],
                                    "id": 5337,
                                    "name": "IndexAccess",
                                    "src": "1971:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5338,
                                    "name": "Literal",
                                    "src": "1987:1:10"
                                  }
                                ],
                                "id": 5339,
                                "name": "Assignment",
                                "src": "1971:17:10"
                              }
                            ],
                            "id": 5340,
                            "name": "ExpressionStatement",
                            "src": "1971:17:10"
                          }
                        ],
                        "id": 5341,
                        "name": "Block",
                        "src": "1863:136:10"
                      }
                    ],
                    "id": 5342,
                    "name": "IfStatement",
                    "src": "1682:317:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5227,
                              "type": "function (address,int256)",
                              "value": "Mint"
                            },
                            "id": 5343,
                            "name": "Identifier",
                            "src": "2009:4:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5268,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5344,
                            "name": "Identifier",
                            "src": "2014:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5280,
                              "type": "int256",
                              "value": "amountMinted"
                            },
                            "id": 5345,
                            "name": "Identifier",
                            "src": "2019:12:10"
                          }
                        ],
                        "id": 5346,
                        "name": "FunctionCall",
                        "src": "2009:23:10"
                      }
                    ],
                    "id": 5347,
                    "name": "ExpressionStatement",
                    "src": "2009:23:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5278
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5348,
                        "name": "Literal",
                        "src": "2049:4:10"
                      }
                    ],
                    "id": 5349,
                    "name": "Return",
                    "src": "2042:11:10"
                  }
                ],
                "id": 5350,
                "name": "Block",
                "src": "1572:488:10"
              }
            ],
            "id": 5351,
            "name": "FunctionDefinition",
            "src": "1482:578:10"
          }
        ],
        "id": 5352,
        "name": "ContractDefinition",
        "src": "252:1810:10"
      }
    ],
    "id": 5353,
    "name": "SourceUnit",
    "src": "0:2063:10"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.055Z"
}