/// <summary>
        /// Utility function to create order-dependent hash from multiple hashes. Collisions unlikely if original hashes are already well-distibuted.
        /// </summary>
        /// <param name="hashes"></param>
        /// <returns></returns>
        internal static long CombineHashes(params long[] hashes)
        {
            long hash = 17;

            foreach (long h in hashes)
            {
                hash = HashUtility.Combine2Hashes(hash, h);
            }

            return(hash);
        }