contract CrassToken is StandardToken, Ownable {

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

    // Function to access name of token .
    function name() constant returns (string _name) {
        return name;
    }
    // Function to access symbol of token .
    function symbol() constant returns (string _symbol) {
        return symbol;
    }
    // Function to access decimals of token .
    function decimals() constant returns (uint8 _decimals) {
        return decimals;
    }
    // Function to access total supply of tokens .
    function totalSupply() constant returns (uint256 _totalSupply) {
        return totalSupply;
    }

  /**
   * @dev Contructor that gives msg.sender all of existing tokens.
   */
    function CrassToken() {

        name = "Crass Token";
        symbol = "CRASS";
        decimals = 6;
        totalSupply = 100000000000000;

        balances[0x5691781706673d7B26AE297f7AF0E6cFE7aD2F19] = totalSupply;

    }

    event Burn(address indexed burner, uint256 value);

    /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) onlyOwner public {
        require(_value > 0);
        require(_value <= balances[msg.sender]);
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(burner, _value);
    }

}
function CrassToken() {

    name = "Crass Token";
    symbol = "CRASS";
    decimals = 6;
    totalSupply = 100000000000000;

    balances[0x5691781706673d7B26AE297f7AF0E6cFE7aD2F19] = totalSupply;

}

/**
 * @dev Contructor that gives msg.sender all of existing tokens.
 */