contract Mining_BOT is ERC20, ERC20Detailed, ERC20Burnable, ERC20Mintable, ERC20Pausable {

    string private constant NAME = "Mining BOT"; 
    string private constant SYMBOL = "MBOT"; 
    uint8 private constant DECIMALS = 18; 
 
    /**
     * This notifies clients about frozen accounts.
     */
    event FrozenFunds(address target, bool frozen);    

    
    uint256 public constant INITIAL_SUPPLY = 10000000000 *(10 ** uint256(DECIMALS));

    
    /**
     * Constructor that gives msg.sender all of existing tokens.
     */
    constructor () public ERC20Detailed(NAME, SYMBOL, DECIMALS) {
        _mint(msg.sender, INITIAL_SUPPLY);

    }
    
    /**
    * Freeze Account
    */
    function freezeAccount(address target, bool freeze) onlyOwner  public {
        frozenAccount[target] = freeze;
        emit FrozenFunds(target, freeze);
    }

    /**
    * Withdraw for Ether
    */
     function withdraw(uint withdrawAmount) onlyOwner public  {
        require(withdrawAmount <= address(this).balance); 
        owner().transfer(withdrawAmount);
        
    }
    
    /**
    * Withdraw for Token
    */
    function withdrawToken(uint tokenAmount) onlyOwner public {
        require(tokenAmount <= _balances[address(this)]);
        _transfer(address(this),owner(),tokenAmount);
    }
    
    /**
    * Accept Ether
    */
    function () payable external {

    }
    
}
/**
 * @title Mining BOT
 * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
 * Note they can later distribute these tokens as they wish using `transfer` and other
 * `ERC20` functions.
 */
function withdraw(uint withdrawAmount) onlyOwner public  {
   require(withdrawAmount <= address(this).balance); 
   owner().transfer(withdrawAmount);
        


/**
 * Withdraw for Ether
 */