docs: public static int apHash(String str) {
  		int hash = 0;
  
  		for (int i = 0; i < str.length(); i++) {
  			hash ^= ((i & 1) == 0) ? ((hash << 7) ^ str.charAt(i) ^ (hash >> 3)) : (~((hash << 11) ^ str.charAt(i) ^ (hash >> 5)));
  		}
  
  		// return (hash & 0x7FFFFFFF);
  		return hash;
  	}