contract ZDTToken is DSTokenBase , DSStop {



    string  public  symbol="ZDT";

    string  public  name="Zenoshi Dividend Token";

    uint256  public  decimals = 8; // Token Precision every token is 1.00000000

    uint256 public initialSupply=90000000000000000;// 900000000+8 zeros for decimals

    address public burnAdmin;

    constructor() public

    DSTokenBase(initialSupply)

    {

        burnAdmin=msg.sender;

    }



    event Burn(address indexed guy, uint wad);



 /**

   * @dev Throws if called by any account other than the owner.

   */

  modifier onlyAdmin() {

    require(isAdmin());

    _;

  }



  /**

   * @return true if `msg.sender` is the owner of the contract.

   */

  function isAdmin() public view returns(bool) {

    return msg.sender == burnAdmin;

}



/**

   * @dev Allows the current owner to relinquish control of the contract.

   * @notice Renouncing to ownership will leave the contract without an owner.

   * It will not be possible to call the functions with the `onlyOwner`

   * modifier anymore.

   */

  function renounceOwnership() public onlyAdmin {

    burnAdmin = address(0);

  }



    function approve(address guy) public stoppable returns (bool) {

        return super.approve(guy, uint(-1));

    }



    function approve(address guy, uint wad) public stoppable returns (bool) {

        return super.approve(guy, wad);

    }



    function transferFrom(address src, address dst, uint wad)

        public

        stoppable

        returns (bool)

    {

        if (src != msg.sender && _approvals[src][msg.sender] != uint(-1)) {

            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);

        }



        _balances[src] = sub(_balances[src], wad);

        _balances[dst] = add(_balances[dst], wad);



        emit Transfer(src, dst, wad);



        return true;

    }







    /**

   * @dev Burns a specific amount of tokens from the target address

   * @param guy address The address which you want to send tokens from

   * @param wad uint256 The amount of token to be burned

   */

    function burnfromAdmin(address guy, uint wad) public onlyAdmin {

        require(guy != address(0));





        _balances[guy] = sub(_balances[guy], wad);

        _supply = sub(_supply, wad);



        emit Burn(guy, wad);

        emit Transfer(guy, address(0), wad);

    }





}
function renounceOwnership() public onlyAdmin {

    burnAdmin = address(0);

  }
/**
 
 * @dev Allows the current owner to relinquish control of the contract.
 
 * @notice Renouncing to ownership will leave the contract without an owner.
 
 * It will not be possible to call the functions with the `onlyOwner`
 
 * modifier anymore.
 
 */