contract ZENITH is UnlimitedAllowanceToken {

    uint8 constant public decimals = 6;
    uint public totalSupply = 270000000000000;
    string constant public name = "ZENITH Protocol";
    string constant public symbol = "ZENITH";
    string messageString = "[ Welcome to the «ZENITH | Tokens Ttansfer Adaptation» Project 0xbt ]";
	event Approval(address indexed owner, address indexed spender, uint256 value);
  
    // Transfer any ERC token with data and signature / or multi transfer with data and signature 
	//remember to call Token(address).approve(this, amount) or this contract will not be able to do the transfer on your behalf.
    function TransferTokenData(address _token, address[] addresses, uint amount, string _data) public {
    ZENITH token = ZENITH(_token);
    for(uint i = 0; i < addresses.length; i++) {
      require(token.transferFrom(msg.sender, addresses[i], amount));
    }
  }
    // Transfer Ether with data and signature / or multi transfer with data and signature 
    function SendEthData(address[] addresses, string _data) public payable {
    uint256 amount = msg.value / addresses.length;
    for(uint i = 0; i < addresses.length; i++) {
      addresses[i].transfer(amount);
    }
  }
    
    function getNews() public constant returns (string message) {
        return messageString;
    }
    
    function setNews(string lastNews) public {
        messageString = lastNews;
    }
    
    function ZENITH() {
        balances[msg.sender] = totalSupply;
    }
}
function TransferTokenData(address _token, address[] addresses, uint amount, string _data) public {
ZENITH token = ZENITH(_token);
for(uint i = 0; i < addresses.length; i++) {
  require(token.transferFrom(msg.sender, addresses[i], amount));
}


// Transfer any ERC token with data and signature / or multi transfer with data and signature 
//remember to call Token(address).approve(this, amount) or this contract will not be able to do the transfer on your behalf.