public string GetJA3FingerprintFull()
            {
                /**
                 * https://engineering.salesforce.com/open-sourcing-ja3-92c9e53c3c41
                 * The field order is as follows:
                 * SSLVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats
                 *
                 * Example:
                 * 769,47�𤂿0�161�162�171�172����0��,23��,0
                 **/

                var    v       = this.supportedSslVersions.First();
                ushort version = (ushort)((v.Item1 << 8) + v.Item2);

                StringBuilder sb = new StringBuilder();

                sb.Append(version.ToString());
                sb.Append(",");
                sb.Append(String.Join <ushort>("-", this.CipherSuites.Where(cs => !GREASE_SET.Contains(cs))));
                sb.Append(",");
                sb.Append(String.Join <ushort>("-", this.ExtensionTypes.Where(et => !GREASE_SET.Contains(et))));
                sb.Append(",");
                sb.Append(String.Join <ushort>("-", this.SupportedEllipticCurveGroups.Where(ecg => !GREASE_SET.Contains(ecg))));
                sb.Append(",");
                sb.Append(String.Join <byte>("-", this.SupportedEllipticCurvePointFormats));
                return(sb.ToString());
            }
            public string GetJA3SFingerprintFull()
            {
                /**
                 * Version, Accepted Cipher, and List of Extensions.
                 * It then concatenates those values together in order, using a �,� to delimit each field and a �-� to delimit each value in each field.
                 * The field order is as follows:
                 * TLSVersion,Cipher,Extensions
                 * Example:
                 * 769,47,65281𢠣1�𤂿6
                 **/
                var           v       = this.supportedSslVersions.First();
                ushort        version = (ushort)((v.Item1 << 8) + v.Item2);
                StringBuilder sb      = new StringBuilder();

                sb.Append(version.ToString());
                sb.Append(",");
                sb.Append(String.Join <ushort>("-", this.CipherSuites.Where(cs => !GREASE_SET.Contains(cs))));
                sb.Append(",");
                sb.Append(String.Join <ushort>("-", this.ExtensionTypes.Where(et => !GREASE_SET.Contains(et))));
                return(sb.ToString());
            }