contract BurnableToken is BasicToken {

    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) public {

        require(_value <= balances[msg.sender]);

        address burner = msg.sender;

        balances[burner] = balances[burner].sub(_value);

        totalSupply_ = totalSupply_.sub(_value);

        emit Burn(burner, _value);

    }

}
function burn(uint256 _value) public {

    require(_value <= balances[msg.sender]);

    address burner = msg.sender;

    balances[burner] = balances[burner].sub(_value);

    totalSupply_ = totalSupply_.sub(_value);

    emit Burn(burner, _value);

}

/**
 * @dev Burns a specific amount of tokens.
 * @param _value The amount of token to be burned.
 */