/// <summary>
        /// Magic number sent by the host to the client during the handshake.
        /// Derived from the binary timestamp to avoid mixing binary versions,
        /// Is64BitProcess to avoid mixing bitness, and enableNodeReuse to
        /// ensure that a /nr:false build doesn't reuse clients left over from
        /// a prior /nr:true build.
        /// </summary>
        /// <param name="enableNodeReuse">Is reuse of build nodes allowed?</param>
        internal static long GetHostHandshake(bool enableNodeReuse)
        {
            long baseHandshake = Constants.AssemblyTimestamp;

            baseHandshake = baseHandshake * 17 + EnvironmentUtilities.Is64BitProcess.GetHashCode();

            baseHandshake = baseHandshake * 17 + enableNodeReuse.GetHashCode();

            return(CommunicationsUtilities.GenerateHostHandshakeFromBase(baseHandshake, GetClientHandshake()));
        }