contract MCVToken is ERC20, Owned, Freezed {
    
    constructor(string memory _name, string memory _symbol, uint8 _decimals, uint256 _total, address _fOwner, bool _freeze) 
        public 
        ERC20(_name, _symbol, _decimals, _total, _fOwner) 
        Freezed(_freeze) {
    }


	function freezeTransfers () public onlyOwner {
		_freezeTransfers();
	}

	/**
	* Unfreeze token transfers.
	* May only be called by smart contract owner.
	*/
	function unfreezeTransfers () public onlyOwner {
		_unfreezeTransfers();
	}

    /**
    * @dev Internal function that burns an amount of the token of a sender
    * @param value The amount that will be burnt.
    */

    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

    function transfer(address to, uint256 value) public onlyUnfreeze {
        super.transfer(to, value);
    }



    function transferFrom(address from, address to, uint256 value) public onlyUnfreeze {
        super.transferFrom(from, to, value);
    }

}
function burn(uint256 value) public {
    _burn(msg.sender, value);
}

/**
 * @dev Internal function that burns an amount of the token of a sender
 * @param value The amount that will be burnt.
 */