contract BurnableToken is StandardToken, Ownable {
    
    function burn(uint256 _amount) public onlyOwner returns(bool) {
        _burn(owner, _amount);
        return true;
    }
    
    /** @dev Burn `amount` tokens from the  `owner` accounr, decreasing
     * the total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `totalSupply` should be more than the balance in the owner account.
     * - 'balance' of owner should be more than the amount to be burned
     */
    
    function _burn(address account, uint256 amount) internal virtual {
        
        require(totalSupply >= amount);
        require(balances[account] >= amount);
        totalSupply -= amount;
        balances[account] -= amount;
        emit Transfer(account, address(0), amount);
    }
}
function _burn(address account, uint256 amount) internal virtual {
        
    require(totalSupply >= amount);
    require(balances[account] >= amount);
    totalSupply -= amount;
    balances[account] -= amount;
    emit Transfer(account, address(0), amount);
}

/** @dev Burn `amount` tokens from the  `owner` accounr, decreasing
 * the total supply.
 *
 * Emits a {Transfer} event with `to` set to the zero address.
 *
 * Requirements:
 *
 * - `totalSupply` should be more than the balance in the owner account.
 * - 'balance' of owner should be more than the amount to be burned
 */