contract DSToken is DSTokenBase(0), DSStop {

    string  public  symbol = "";
    uint256  public  decimals = 18; // standard token precision. override to customize

    function DSToken(string symbol_) public {
        symbol = symbol_;
    }

    function transfer(address dst, uint wad) public stoppable note returns (bool) {
        return super.transfer(dst, wad);
    }

    function transferFrom(
        address src, address dst, uint wad
    ) public stoppable note returns (bool) {
        return super.transferFrom(src, dst, wad);
    }

    function approve(address guy, uint wad) public stoppable note returns (bool) {
        return super.approve(guy, wad);
    }

    function push(address dst, uint128 wad) public returns (bool) {
        return transfer(dst, wad);
    }

    function pull(address src, uint128 wad) public returns (bool) {
        return transferFrom(src, msg.sender, wad);
    }

    function mint(uint128 wad) public auth stoppable note {
        _balances[msg.sender] = add(_balances[msg.sender], wad);
        _supply = add(_supply, wad);
    }

    function burn(uint128 wad) public auth stoppable note {
        _balances[msg.sender] = sub(_balances[msg.sender], wad);
        _supply = sub(_supply, wad);
    }

    // Optional token name
    string   public  name = "MDGT Token";
    
    function setName(string name_) public auth {
        name = name_;
    }

}
function DSToken(string symbol_) public {
        symbol = symbol_;
    }
// standard token precision. override to customize