package com.l7tech.common.io;

import com.l7tech.util.ArrayUtils;
import com.l7tech.util.Charsets;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.NameValuePair;
import com.l7tech.util.Pair;
import com.l7tech.util.PoolByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.math.BigInteger;
import java.nio.charset.Charset;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.KeyStoreException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Principal;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SignatureException;
import java.security.UnrecoverableKeyException;
import java.security.KeyStore.PrivateKeyEntry;
import java.security.cert.CRLException;
import java.security.cert.Certificate;
import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateFactory;
import java.security.cert.CertificateNotYetValidException;
import java.security.cert.CertificateParsingException;
import java.security.cert.X509CRL;
import java.security.cert.X509Certificate;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.RSAPublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.ServiceConfigurationError;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.TreeSet;
import java.util.Map.Entry;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.naming.InvalidNameException;
import javax.naming.ldap.LdapName;
import javax.naming.ldap.Rdn;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1String;
import org.bouncycastle.asn1.DERIA5String;
import org.bouncycastle.asn1.x509.AccessDescription;
import org.bouncycastle.asn1.x509.AuthorityInformationAccess;
import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier;
import org.bouncycastle.asn1.x509.DistributionPointName;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.GeneralNames;
import org.bouncycastle.cert.X509CRLHolder;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509ExtensionUtils;
import org.jetbrains.annotations.NotNull;

public class CertUtils {
   public static final String PEM_CERT_BEGIN_MARKER;
   public static final String PEM_CERT_END_MARKER;
   public static final String PEM_RSAKEY_BEGIN_MARKER;
   public static final String PEM_RSAKEY_END_MARKER;
   public static final String PEM_DSAKEY_BEGIN_MARKER;
   public static final String PEM_DSAKEY_END_MARKER;
   public static final String PEM_CRL_BEGIN_MARKER;
   public static final String PEM_CRL_END_MARKER;
   private static final String a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final Logger e;
   private static CertificateFactory f;
   private static final String g;
   private static final CertUtils.DnFormatter h;
   public static final int SUBJALT_NAME_TYPE_IPADDRESS = 7;
   public static final int SUBJALT_NAME_TYPE_DNS = 2;
   public static final String ALG_MD5;
   public static final String ALG_SHA1;
   public static final String FINGERPRINT_HEX;
   public static final String FINGERPRINT_RAW_HEX;
   public static final String FINGERPRINT_BASE64;
   public static final String FINGERPRINT_BASE64URL;
   public static final String X509_OID_CRL_DISTRIBUTION_POINTS;
   public static final String X509_OID_NETSCAPE_CRL_URL;
   public static final String X509_OID_SUBJECTKEYID;
   public static final String X509_OID_AUTHORITYKEYID;
   public static final String X509_OID_AIA_OCSP_URL;
   public static final String X509_OID_BASIC_CONSTRAINTS;
   public static final String X509_OID_KEY_USAGE_EXTENSION;
   public static final int DEFAULT_X509V1_MAX_PATH_LENGTH;
   public static final boolean DISABLE_SHARED_CERTIFICATE_FACTORY;
   public static final String CERT_PROP_NOTBEFORE_DATE;
   public static final String CERT_PROP_NOTAFTER_DATE;
   public static final String CERT_PROP_ISSUED_TO;
   public static final String CERT_PROP_SERIAL_NUMBER;
   public static final String CERT_PROP_ISSUER;
   public static final String CERT_PROP_SHA_1_FINGERPRINT;
   public static final String CERT_PROP_MD5_FINGERPRINT;
   public static final String CERT_PROP_BASIC_CONSTRAINTS;
   public static final String CERT_PROP_KEY_USAGE;
   public static final String CERT_PROP_EXT_KEY_USAGE;
   public static final String CERT_PROP_SIG_ALG;
   public static final String CERT_PROP_KEY_TYPE;
   public static final String CERT_PROP_RSA_STRENGTH;
   public static final String CERT_PROP_RSA_PUBLIC_EXPONENT;
   public static final String CERT_PROP_DSA_PRIME_P;
   public static final String CERT_PROP_DSA_SUBPRIME_P;
   public static final String CERT_PROP_DSA_BASE_P;
   public static final String CERT_PROP_EC_CURVE_NAME;
   public static final String CERT_PROP_EC_CURVE_POINT_W_X;
   public static final String CERT_PROP_EC_CURVE_POINT_W_Y;
   public static final String CERT_PROP_EC_ORDER;
   public static final String CERT_PROP_EC_COFACTOR;
   public static final String CERT_PROP_OCSP;
   public static final String CERT_PROP_CRL_DISTRIBUTION_POINTS;
   public static final String CERT_PROP_SAN;
   private static final Map<String, String> i;
   private static final String j;
   private static final Pattern k;
   private static final Pattern l;
   private static final Pattern m;
   private static final Pattern n;
   private static final Pattern o;
   private static final Pattern p;
   private static final Charset q;
   private static final Set<X509GeneralName.Type> r;
   private static final String[] s;
   public static final int KU_encipherOnly = 1;
   public static final int KU_cRLSign = 2;
   public static final int KU_keyCertSign = 4;
   public static final int KU_keyAgreement = 8;
   public static final int KU_dataEncipherment = 16;
   public static final int KU_keyEncipherment = 32;
   public static final int KU_nonRepudiation = 64;
   public static final int KU_digitalSignature = 128;
   public static final int KU_decipherOnly = 32768;
   public static final Map<String, Integer> KEY_USAGE_BITS_BY_NAME;
   public static final Map<String, String> KEY_PURPOSE_IDS_BY_NAME;
   private static final Map<String, String> t;
   static final Class<? extends ECPublicKey> u;
   static final Constructor<? extends ECPublicKey> v;
   private static final String w;
   public static final Pattern rfc822Pattern;
   public static final Pattern dnsNamePattern;
   public static final Pattern directoryNamePattern;
   public static final Pattern urlPattern;
   private static final String[] x;

   public static boolean isCertCaCapable(X509Certificate param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokestatic com/l7tech/common/io/CertUtils.isKeyCertSign (Ljava/security/cert/X509Certificate;)Z
      // 04: ifeq 1d
      // 07: aload 0
      // 08: invokevirtual java/security/cert/X509Certificate.getBasicConstraints ()I
      // 0b: iflt 1d
      // 0e: goto 15
      // 11: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 14: athrow
      // 15: bipush 1
      // 16: goto 1e
      // 19: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1c: athrow
      // 1d: bipush 0
      // 1e: ireturn
      // try (0 -> 6): 7 java/lang/RuntimeException
      // try (3 -> 11): 11 java/lang/RuntimeException
   }

   public static boolean isKeyCertSign(X509Certificate param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnonnull 0a
      // 04: bipush 0
      // 05: ireturn
      // 06: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 09: athrow
      // 0a: aload 0
      // 0b: invokevirtual java/security/cert/X509Certificate.getKeyUsage ()[Z
      // 0e: astore 1
      // 0f: aload 1
      // 10: ifnull 28
      // 13: aload 1
      // 14: bipush 5
      // 15: baload
      // 16: ifeq 28
      // 19: goto 20
      // 1c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1f: athrow
      // 20: bipush 1
      // 21: goto 29
      // 24: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 27: athrow
      // 28: bipush 0
      // 29: ireturn
      // try (0 -> 4): 4 java/lang/RuntimeException
      // try (9 -> 15): 16 java/lang/RuntimeException
      // try (11 -> 20): 20 java/lang/RuntimeException
   }

   public static X509Certificate decodeCert(byte[] var0) throws CertificateException {
      try {
         if (looksLikePem(var0)) {
            try {
               return decodeFromPEM(new String(var0, q));
            } catch (IOException var2) {
               throw new CertificateException(x[220], var2);
            }
         }
      } catch (CertificateException var3) {
         throw a(var3);
      }

      return (X509Certificate)getFactory().generateCertificate(new ByteArrayInputStream(var0));
   }

   public static boolean looksLikePem(byte[] var0) {
      String var1 = new String(var0, 0, Math.min(200, var0.length), q);

      try {
         if (var1.indexOf(x[80]) >= 0) {
            return true;
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return false;
   }

   public static byte[] csrPemToBinary(byte[] var0) throws IOException {
      String var1 = new String(var0, Charsets.UTF8).trim();
      String var2 = null;
      Matcher var3 = m.matcher(var1);
      if (var3.find()) {
         var2 = var3.group(1);
      } else {
         var3 = l.matcher(var1);
         if (var3.matches()) {
            var2 = var3.group(1);
         } else {
            var3 = k.matcher(var1);
            if (var3.matches()) {
               var2 = var3.group(1);
            }
         }
      }

      try {
         if (var2 == null) {
            throw new IOException(x[244]);
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      return HexUtils.decodeBase64(var2, true);
   }

   public static boolean certsAreEqual(X509Certificate var0, X509Certificate var1) {
      try {
         if (var1 == null) {
            return false;
         }
      } catch (CertificateEncodingException var4) {
         throw a(var4);
      }

      try {
         if (var0.getClass() == var1.getClass()) {
            return var0.equals(var1);
         }
      } catch (CertificateEncodingException var5) {
         throw a(var5);
      }

      try {
         return Arrays.equals(var0.getEncoded(), var1.getEncoded());
      } catch (CertificateEncodingException var3) {
         return false;
      }
   }

   public static boolean arePublicKeysEqual(PublicKey param0, PublicKey param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 06: aload 1
      // 07: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 0c: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0f: ifeq 4c
      // 12: aload 0
      // 13: invokeinterface java/security/PublicKey.getFormat ()Ljava/lang/String; 1
      // 18: aload 1
      // 19: invokeinterface java/security/PublicKey.getFormat ()Ljava/lang/String; 1
      // 1e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 21: ifeq 4c
      // 24: goto 2b
      // 27: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2a: athrow
      // 2b: aload 0
      // 2c: invokeinterface java/security/PublicKey.getEncoded ()[B 1
      // 31: aload 1
      // 32: invokeinterface java/security/PublicKey.getEncoded ()[B 1
      // 37: invokestatic java/util/Arrays.equals ([B[B)Z
      // 3a: ifeq 4c
      // 3d: goto 44
      // 40: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 43: athrow
      // 44: bipush 1
      // 45: goto 4d
      // 48: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4b: athrow
      // 4c: bipush 0
      // 4d: ireturn
      // try (0 -> 12): 13 java/lang/RuntimeException
      // try (6 -> 21): 22 java/lang/RuntimeException
      // try (15 -> 26): 26 java/lang/RuntimeException
   }

   public static void checkForMismatchingKey(X509Certificate param0, Key param1) throws CertificateException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // 04: astore 2
      // 05: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 08: astore 7
      // 0a: aload 7
      // 0c: sipush 175
      // 0f: aaload
      // 10: aload 2
      // 11: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 16: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 19: istore 3
      // 1a: aload 7
      // 1c: sipush 175
      // 1f: aaload
      // 20: aload 1
      // 21: invokeinterface java/security/Key.getAlgorithm ()Ljava/lang/String; 1
      // 26: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 29: istore 4
      // 2b: iload 3
      // 2c: iload 4
      // 2e: if_icmpeq 51
      // 31: new java/security/cert/CertificateException
      // 34: dup
      // 35: aload 0
      // 36: invokestatic com/l7tech/common/io/CertUtils.getCertIdentifyingInformation (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // 39: aload 7
      // 3b: bipush 58
      // 3d: aaload
      // 3e: swap
      // 3f: aload 7
      // 41: bipush 25
      // 43: aaload
      // 44: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 49: invokespecial java/security/cert/CertificateException.<init> (Ljava/lang/String;)V
      // 4c: athrow
      // 4d: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 50: athrow
      // 51: aload 2
      // 52: instanceof java/security/interfaces/RSAKey
      // 55: ifeq 66
      // 58: aload 1
      // 59: instanceof java/security/interfaces/RSAKey
      // 5c: ifne 6b
      // 5f: goto 66
      // 62: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 65: athrow
      // 66: return
      // 67: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 6a: athrow
      // 6b: aload 1
      // 6c: checkcast java/security/interfaces/RSAKey
      // 6f: invokeinterface java/security/interfaces/RSAKey.getModulus ()Ljava/math/BigInteger; 1
      // 74: astore 5
      // 76: aload 2
      // 77: checkcast java/security/interfaces/RSAKey
      // 7a: invokeinterface java/security/interfaces/RSAKey.getModulus ()Ljava/math/BigInteger; 1
      // 7f: astore 6
      // 81: aload 5
      // 83: ifnull 92
      // 86: aload 6
      // 88: ifnonnull 97
      // 8b: goto 92
      // 8e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 91: athrow
      // 92: return
      // 93: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 96: athrow
      // 97: aload 6
      // 99: aload 5
      // 9b: invokevirtual java/math/BigInteger.equals (Ljava/lang/Object;)Z
      // 9e: ifne c4
      // a1: new java/security/cert/CertificateException
      // a4: dup
      // a5: aload 0
      // a6: invokestatic com/l7tech/common/io/CertUtils.getCertIdentifyingInformation (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // a9: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // ac: bipush 87
      // ae: aaload
      // af: swap
      // b0: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // b3: sipush 222
      // b6: aaload
      // b7: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // bc: invokespecial java/security/cert/CertificateException.<init> (Ljava/lang/String;)V
      // bf: athrow
      // c0: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // c3: athrow
      // c4: return
      // try (19 -> 36): 36 java/security/cert/CertificateException
      // try (38 -> 44): 45 java/security/cert/CertificateException
      // try (41 -> 48): 48 java/security/cert/CertificateException
      // try (58 -> 62): 63 java/security/cert/CertificateException
      // try (60 -> 66): 66 java/security/cert/CertificateException
      // try (68 -> 86): 86 java/security/cert/CertificateException
   }

   public static X509Certificate[] asX509CertificateArray(Certificate[] var0) throws CertificateException {
      X509Certificate[] var1 = new X509Certificate[var0.length];

      for (int var2 = 0; var2 < var0.length; var2++) {
         Certificate var3 = var0[var2];

         try {
            if (!(var3 instanceof X509Certificate)) {
               throw new CertificateException(x[114]);
            }
         } catch (CertificateException var5) {
            throw a(var5);
         }

         X509Certificate var4 = (X509Certificate)var3;
         var1[var2] = var4;
      }

      return var1;
   }

   public static synchronized CertificateFactory getFactory() {
      try {
         if (DISABLE_SHARED_CERTIFICATE_FACTORY) {
            return a();
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      try {
         if (f != null) {
            return f;
         }
      } catch (RuntimeException var0) {
         throw a(var0);
      }

      return f = a();
   }

   private static CertificateFactory a() {
      try {
         try {
            if (g == null) {
               return CertificateFactory.getInstance(x[207]);
            }
         } catch (CertificateException var5) {
            throw a(var5);
         }

         String[] var8 = x;
         return CertificateFactory.getInstance(var8[207], g);
      } catch (CertificateException var6) {
         throw new RuntimeException(var6);
      } catch (NoSuchProviderException var7) {
         String[] var3 = x;
         e.warning(var3[246] + g + var3[2]);

         try {
            return CertificateFactory.getInstance(var3[207]);
         } catch (CertificateException var4) {
            throw new RuntimeException(var4);
         }
      }
   }

   public static String encodeAsPEM(X509Certificate var0) throws IOException, CertificateEncodingException {
      return encodeAsPEM(var0.getEncoded());
   }

   public static String encodeAsPEM(byte[] var0) throws IOException {
      PoolByteArrayOutputStream var1 = new PoolByteArrayOutputStream();

      try {
         Charset var2 = Charsets.UTF8;
         String[] var5 = x;
         var1.write(var5[216].getBytes(var2));
         var1.write("\n".getBytes(var2));
         var1.write(HexUtils.encodeBase64(var0).getBytes(var2));
         var1.write("\n".getBytes(var2));
         var1.write(var5[98].getBytes(var2));
         var1.write("\n".getBytes(var2));
         return var1.toString(var2);
      } finally {
         var1.close();
      }
   }

   public static String encodeAsBase64(X509Certificate var0) throws IOException, CertificateEncodingException {
      PoolByteArrayOutputStream var1 = new PoolByteArrayOutputStream();
      byte[] var2 = var0.getEncoded();

      try {
         Charset var3 = Charsets.UTF8;
         var1.write(HexUtils.encodeBase64(var2).getBytes(var3));
         return var1.toString(var3);
      } finally {
         var1.close();
      }
   }

   public static String encodeCsrAsPEM(byte[] var0) throws IOException {
      PoolByteArrayOutputStream var1 = new PoolByteArrayOutputStream();

      try {
         Charset var2 = Charsets.UTF8;
         String[] var5 = x;
         var1.write(var5[122].getBytes(var2));
         var1.write("\n".getBytes(var2));
         var1.write(HexUtils.encodeBase64(var0).getBytes(var2));
         var1.write("\n".getBytes(var2));
         var1.write(var5[180].getBytes(var2));
         var1.write("\n".getBytes(var2));
         return var1.toString(var2);
      } finally {
         var1.close();
      }
   }

   public static X509Certificate decodeFromPEM(String var0) throws IOException, CertificateException {
      return decodeFromPEM(var0, false);
   }

   public static X509Certificate decodeFromPEM(String var0, boolean var1) throws IOException, CertificateException {
      byte[] var2 = decodeCertBytesFromPEM(var0, var1);
      return decodeCert(var2);
   }

   public static byte[] decodeCertBytesFromPEM(String param0, boolean param1) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 04: astore 5
      // 06: aload 5
      // 08: bipush 80
      // 0a: aaload
      // 0b: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 0e: istore 2
      // 0f: aload 0
      // 10: aload 5
      // 12: sipush 164
      // 15: aaload
      // 16: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 19: istore 3
      // 1a: iload 2
      // 1b: iflt 2a
      // 1e: iload 3
      // 1f: iload 2
      // 20: if_icmpge 64
      // 23: goto 2a
      // 26: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 29: athrow
      // 2a: iload 1
      // 2b: ifeq 47
      // 2e: goto 35
      // 31: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 34: athrow
      // 35: new java/io/IOException
      // 38: dup
      // 39: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 3c: bipush 121
      // 3e: aaload
      // 3f: invokespecial java/io/IOException.<init> (Ljava/lang/String;)V
      // 42: athrow
      // 43: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 46: athrow
      // 47: iload 3
      // 48: iflt 5e
      // 4b: new java/io/IOException
      // 4e: dup
      // 4f: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 52: sipush 201
      // 55: aaload
      // 56: invokespecial java/io/IOException.<init> (Ljava/lang/String;)V
      // 59: athrow
      // 5a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 5d: athrow
      // 5e: aload 0
      // 5f: astore 4
      // 61: goto 76
      // 64: aload 0
      // 65: iload 2
      // 66: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 69: bipush 80
      // 6b: aaload
      // 6c: invokevirtual java/lang/String.length ()I
      // 6f: iadd
      // 70: iload 3
      // 71: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
      // 74: astore 4
      // 76: aload 4
      // 78: bipush 1
      // 79: invokestatic com/l7tech/util/HexUtils.decodeBase64 (Ljava/lang/String;Z)[B
      // 7c: areturn
      // try (14 -> 19): 20 java/io/IOException
      // try (16 -> 24): 25 java/io/IOException
      // try (22 -> 34): 34 java/io/IOException
      // try (36 -> 45): 45 java/io/IOException
   }

   public static PrivateKey decodeKeyFromPEM(String param0) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 004: astore 12
      // 006: aload 12
      // 008: bipush 51
      // 00a: aaload
      // 00b: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 00e: istore 1
      // 00f: aload 0
      // 010: aload 12
      // 012: bipush 124
      // 014: aaload
      // 015: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 018: istore 2
      // 019: aload 12
      // 01b: bipush 65
      // 01d: aaload
      // 01e: invokevirtual java/lang/String.length ()I
      // 021: istore 3
      // 022: bipush 1
      // 023: istore 4
      // 025: iload 1
      // 026: bipush -1
      // 027: if_icmpne 05e
      // 02a: iload 2
      // 02b: bipush -1
      // 02c: if_icmpne 05e
      // 02f: goto 036
      // 032: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 035: athrow
      // 036: aload 0
      // 037: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 03a: astore 12
      // 03c: aload 12
      // 03e: sipush 139
      // 041: aaload
      // 042: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 045: istore 1
      // 046: aload 0
      // 047: aload 12
      // 049: sipush 235
      // 04c: aaload
      // 04d: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 050: istore 2
      // 051: aload 12
      // 053: sipush 258
      // 056: aaload
      // 057: invokevirtual java/lang/String.length ()I
      // 05a: istore 3
      // 05b: bipush 0
      // 05c: istore 4
      // 05e: iload 1
      // 05f: iflt 06e
      // 062: iload 2
      // 063: iload 1
      // 064: if_icmpgt 080
      // 067: goto 06e
      // 06a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 06d: athrow
      // 06e: new com/l7tech/util/CausedIOException
      // 071: dup
      // 072: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 075: bipush 84
      // 077: aaload
      // 078: invokespecial com/l7tech/util/CausedIOException.<init> (Ljava/lang/String;)V
      // 07b: athrow
      // 07c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 07f: athrow
      // 080: aload 0
      // 081: iload 1
      // 082: iload 3
      // 083: iadd
      // 084: iload 2
      // 085: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
      // 088: astore 5
      // 08a: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 08d: astore 12
      // 08f: aload 12
      // 091: sipush 233
      // 094: aaload
      // 095: astore 6
      // 097: aload 5
      // 099: aload 6
      // 09b: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 09e: istore 7
      // 0a0: iload 7
      // 0a2: iflt 0b6
      // 0a5: new com/l7tech/util/CausedIOException
      // 0a8: dup
      // 0a9: aload 12
      // 0ab: bipush 81
      // 0ad: aaload
      // 0ae: invokespecial com/l7tech/util/CausedIOException.<init> (Ljava/lang/String;)V
      // 0b1: athrow
      // 0b2: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0b5: athrow
      // 0b6: aload 5
      // 0b8: bipush 1
      // 0b9: invokestatic com/l7tech/util/HexUtils.decodeBase64 (Ljava/lang/String;Z)[B
      // 0bc: astore 8
      // 0be: iload 4
      // 0c0: ifeq 0f3
      // 0c3: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 0c6: astore 12
      // 0c8: aload 12
      // 0ca: sipush 252
      // 0cd: aaload
      // 0ce: invokestatic java/security/KeyFactory.getInstance (Ljava/lang/String;)Ljava/security/KeyFactory;
      // 0d1: astore 10
      // 0d3: aload 8
      // 0d5: invokestatic com/l7tech/common/io/CertUtils.a ([B)[Ljava/math/BigInteger;
      // 0d8: astore 11
      // 0da: aload 10
      // 0dc: new java/security/spec/RSAPrivateKeySpec
      // 0df: dup
      // 0e0: aload 11
      // 0e2: bipush 0
      // 0e3: aaload
      // 0e4: aload 11
      // 0e6: bipush 1
      // 0e7: aaload
      // 0e8: invokespecial java/security/spec/RSAPrivateKeySpec.<init> (Ljava/math/BigInteger;Ljava/math/BigInteger;)V
      // 0eb: invokevirtual java/security/KeyFactory.generatePrivate (Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
      // 0ee: astore 9
      // 0f0: goto 112
      // 0f3: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 0f6: astore 12
      // 0f8: aload 12
      // 0fa: bipush 125
      // 0fc: aaload
      // 0fd: invokestatic java/security/KeyFactory.getInstance (Ljava/lang/String;)Ljava/security/KeyFactory;
      // 100: astore 10
      // 102: aload 10
      // 104: new java/security/spec/PKCS8EncodedKeySpec
      // 107: dup
      // 108: aload 8
      // 10a: invokespecial java/security/spec/PKCS8EncodedKeySpec.<init> ([B)V
      // 10d: invokevirtual java/security/KeyFactory.generatePrivate (Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
      // 110: astore 9
      // 112: goto 139
      // 115: astore 10
      // 117: new com/l7tech/util/CausedIOException
      // 11a: dup
      // 11b: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 11e: astore 12
      // 120: aload 12
      // 122: bipush 108
      // 124: aaload
      // 125: invokespecial com/l7tech/util/CausedIOException.<init> (Ljava/lang/String;)V
      // 128: athrow
      // 129: astore 10
      // 12b: new com/l7tech/util/CausedIOException
      // 12e: dup
      // 12f: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 132: bipush 95
      // 134: aaload
      // 135: invokespecial com/l7tech/util/CausedIOException.<init> (Ljava/lang/String;)V
      // 138: athrow
      // 139: aload 9
      // 13b: areturn
      // try (85 -> 94): 94 java/security/NoSuchAlgorithmException
      // try (53 -> 66): 66 java/security/NoSuchAlgorithmException
      // try (51 -> 56): 57 java/security/NoSuchAlgorithmException
      // try (21 -> 27): 28 java/security/NoSuchAlgorithmException
      // try (100 -> 139): 140 java/security/NoSuchAlgorithmException
      // try (100 -> 139): 150 java/security/spec/InvalidKeySpecException
   }

   public static String getThumbprintSHA1(X509Certificate var0) throws CertificateEncodingException {
      return getThumbprintSHA1(var0, x[91]);
   }

   public static String getThumbprintSHA1(X509Certificate var0, String var1) throws CertificateEncodingException {
      try {
         String[] var3 = x;
         return getCertificateFingerprint(var0, var3[172], var1);
      } catch (NoSuchAlgorithmException var4) {
         throw new RuntimeException(x[29] + var4.getMessage(), var4);
      }
   }

   public static String getSki(X509Certificate var0) {
      byte[] var1 = getSKIBytesFromCert(var0);

      try {
         if (var1 == null) {
            return null;
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return HexUtils.encodeBase64(var1);
   }

   public static String getSubjectDN(X509Certificate var0) {
      return getDN(var0.getSubjectX500Principal());
   }

   public static String getIssuerDN(X509Certificate var0) {
      return getDN(var0.getIssuerX500Principal());
   }

   public static String getDN(X500Principal var0) {
      return h.formatDN(var0);
   }

   public static String formatDN(String var0) {
      return h.formatDN(var0);
   }

   public static boolean isEqualDN(String var0, String var1) {
      boolean var2 = false;

      try {
         if (var0 == null || var1 == null) {
            return var2;
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      return var0.equalsIgnoreCase(var1);
   }

   public static boolean isEqualDNCanonical(String var0, String var1) {
      return isEqualDN(formatDN(var0), formatDN(var1));
   }

   public static String getCn(X509Certificate var0) {
      Map var1 = dnToAttributeMap(var0.getSubjectDN().getName());
      List var2 = (List)var1.get(x[231]);
      Object var3 = null;

      try {
         if (var2 == null || var2.size() < 1) {
            return (String)var3;
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      return (String)var2.get(0);
   }

   public static CertificateExpiry checkValidity(X509Certificate var0) throws CertificateNotYetValidException, CertificateExpiredException {
      var0.checkValidity();
      return getCertificateExpiry(var0);
   }

   public static CertificateExpiry getCertificateExpiry(X509Certificate var0) {
      long var1 = System.currentTimeMillis();
      long var3 = var0.getNotAfter().getTime();
      int var5 = (int)((var3 - var1) / 86400000L);
      return new CertificateExpiry(var5);
   }

   public static boolean isValid(X509Certificate var0) {
      try {
         var0.checkValidity();
         return true;
      } catch (CertificateExpiredException var2) {
         return false;
      } catch (CertificateNotYetValidException var3) {
         return false;
      }
   }

   public static boolean isValidDN(String var0) {
      boolean var1 = false;

      try {
         a(var0);
         var1 = true;
      } catch (IllegalArgumentException var3) {
      }

      return var1;
   }

   public static String getDNValidationMessage(String var0) {
      String var1 = null;

      try {
         a(var0);
      } catch (IllegalArgumentException var3) {
         var1 = x[132] + ExceptionUtils.getMessage(var3) + "'";
      }

      return var1;
   }

   private static void a(String var0) {
      new X500Principal(var0);
      dnToAttributeMap(var0);
   }

   public static Map<String, List<String>> dnToAttributeMap(String var0) {
      LdapName var1;
      try {
         var1 = new LdapName(var0);
      } catch (InvalidNameException var8) {
         throw new IllegalArgumentException(x[119], var8);
      }

      HashMap var2 = new HashMap();

      for (Rdn var5 : var1.getRdns()) {
         String var6 = var5.getType().toUpperCase();
         if (i.containsKey(var6)) {
            var6 = i.get(var6);
         }

         List var7 = (List)var2.get(var6);
         if (var7 == null) {
            var7 = new ArrayList();
            var2.put(var6, var7);
         }

         var7.add(var5.getValue().toString());
      }

      return var2;
   }

   public static X509Certificate[] deduplicate(X509Certificate[] var0) {
      TreeSet var1 = new TreeSet<>(new CertUtils.EncodedCertificateComparator());
      var1.addAll(Arrays.asList(var0));
      return var1.toArray(new X509Certificate[var1.size()]);
   }

   public static boolean dnMatchesPattern(String var0, String var1, boolean var2) {
      Map var3 = dnToAttributeMap(formatDN(var0));

      String var10000;
      label45: {
         try {
            if (var2) {
               var10000 = var1;
               break label45;
            }
         } catch (RuntimeException var16) {
            throw a(var16);
         }

         var10000 = formatDN(var1);
      }

      Map var4 = dnToAttributeMap(var10000);
      boolean var5 = true;

      for (Entry var7 : var4.entrySet()) {
         String var8 = (String)var7.getKey();
         List var9 = (List)var7.getValue();
         List var10 = (List)var3.get(var8);
         if (var10 == null) {
            var5 = false;
            break;
         }

         for (String var12 : var9) {
            Pattern var13;
            if (var2) {
               var13 = Pattern.compile(var12, 2);
            } else {
               String[] var15 = x;
               var13 = Pattern.compile(var12.replaceAll(var15[202], var15[0]).replaceAll(var15[170], var15[106]));
            }

            boolean var14 = a(var13, var10);
            if (!var14) {
               var5 = false;
               break;
            }
         }
      }

      return var5;
   }

   private static boolean a(Pattern var0, List<String> var1) {
      for (String var3 : var1) {
         try {
            if (var0.matcher(var3).matches()) {
               return true;
            }
         } catch (RuntimeException var4) {
            throw a(var4);
         }
      }

      return false;
   }

   public static boolean domainNameMatchesPattern(String param0, String param1, boolean param2) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: bipush 0
      // 01: istore 3
      // 02: aload 0
      // 03: ifnull e6
      // 06: aload 1
      // 07: ifnull e6
      // 0a: goto 11
      // 0d: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 10: athrow
      // 11: aload 0
      // 12: invokevirtual java/lang/String.toLowerCase ()Ljava/lang/String;
      // 15: astore 4
      // 17: aload 1
      // 18: invokevirtual java/lang/String.toLowerCase ()Ljava/lang/String;
      // 1b: astore 5
      // 1d: bipush 42
      // 1f: istore 6
      // 21: aload 5
      // 23: iload 6
      // 25: invokevirtual java/lang/String.indexOf (I)I
      // 28: ifge 58
      // 2b: aload 4
      // 2d: aload 5
      // 2f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 32: ifeq 53
      // 35: goto 3c
      // 38: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3b: athrow
      // 3c: aload 4
      // 3e: invokevirtual java/lang/String.length ()I
      // 41: ifle 53
      // 44: goto 4b
      // 47: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4a: athrow
      // 4b: bipush 1
      // 4c: goto 54
      // 4f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 52: athrow
      // 53: bipush 0
      // 54: istore 3
      // 55: goto e6
      // 58: new java/util/StringTokenizer
      // 5b: dup
      // 5c: aload 4
      // 5e: ldc "."
      // 60: invokespecial java/util/StringTokenizer.<init> (Ljava/lang/String;Ljava/lang/String;)V
      // 63: astore 7
      // 65: new java/util/StringTokenizer
      // 68: dup
      // 69: aload 5
      // 6b: ldc "."
      // 6d: invokespecial java/util/StringTokenizer.<init> (Ljava/lang/String;Ljava/lang/String;)V
      // 70: astore 8
      // 72: aload 7
      // 74: invokevirtual java/util/StringTokenizer.countTokens ()I
      // 77: aload 8
      // 79: invokevirtual java/util/StringTokenizer.countTokens ()I
      // 7c: if_icmpne e6
      // 7f: bipush 1
      // 80: istore 3
      // 81: bipush 1
      // 82: istore 9
      // 84: aload 7
      // 86: invokevirtual java/util/StringTokenizer.hasMoreTokens ()Z
      // 89: ifeq e6
      // 8c: aload 7
      // 8e: invokevirtual java/util/StringTokenizer.nextToken ()Ljava/lang/String;
      // 91: astore 10
      // 93: aload 8
      // 95: invokevirtual java/util/StringTokenizer.nextToken ()Ljava/lang/String;
      // 98: astore 11
      // 9a: aload 11
      // 9c: iload 6
      // 9e: invokevirtual java/lang/String.indexOf (I)I
      // a1: bipush -1
      // a2: if_icmple c9
      // a5: iload 9
      // a7: ifne bc
      // aa: goto b1
      // ad: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // b0: athrow
      // b1: iload 2
      // b2: ifne c9
      // b5: goto bc
      // b8: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // bb: athrow
      // bc: aload 10
      // be: aload 11
      // c0: iload 6
      // c2: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/String;Ljava/lang/String;C)Z
      // c5: istore 3
      // c6: goto d5
      // c9: aload 10
      // cb: aload 11
      // cd: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // d0: ifne d5
      // d3: bipush 0
      // d4: istore 3
      // d5: iload 3
      // d6: ifne e0
      // d9: goto e6
      // dc: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // df: athrow
      // e0: bipush 0
      // e1: istore 9
      // e3: goto 84
      // e6: iload 3
      // e7: ireturn
      // try (2 -> 6): 7 java/lang/RuntimeException
      // try (17 -> 25): 26 java/lang/RuntimeException
      // try (21 -> 31): 32 java/lang/RuntimeException
      // try (28 -> 36): 36 java/lang/RuntimeException
      // try (71 -> 78): 79 java/lang/RuntimeException
      // try (76 -> 83): 84 java/lang/RuntimeException
      // try (98 -> 101): 101 java/lang/RuntimeException
   }

   private static boolean a(String param0, String param1, char param2) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: iload 2
      // 02: invokevirtual java/lang/String.indexOf (I)I
      // 05: istore 3
      // 06: iload 3
      // 07: bipush -1
      // 08: if_icmpne 15
      // 0b: aload 0
      // 0c: aload 1
      // 0d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 10: ireturn
      // 11: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 14: athrow
      // 15: bipush 1
      // 16: istore 4
      // 18: aload 0
      // 19: astore 5
      // 1b: aload 1
      // 1c: astore 7
      // 1e: iload 3
      // 1f: bipush -1
      // 20: if_icmpeq 7f
      // 23: aload 7
      // 25: bipush 0
      // 26: iload 3
      // 27: invokevirtual java/lang/String.substring (II)Ljava/lang/String;
      // 2a: astore 6
      // 2c: aload 7
      // 2e: iload 3
      // 2f: bipush 1
      // 30: iadd
      // 31: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 34: astore 7
      // 36: aload 5
      // 38: aload 6
      // 3a: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 3d: istore 8
      // 3f: iload 8
      // 41: bipush -1
      // 42: if_icmpeq 5d
      // 45: iload 4
      // 47: ifeq 63
      // 4a: goto 51
      // 4d: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 50: athrow
      // 51: iload 8
      // 53: ifeq 63
      // 56: goto 5d
      // 59: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 5c: athrow
      // 5d: bipush 0
      // 5e: ireturn
      // 5f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 62: athrow
      // 63: bipush 0
      // 64: istore 4
      // 66: aload 5
      // 68: iload 8
      // 6a: aload 6
      // 6c: invokevirtual java/lang/String.length ()I
      // 6f: iadd
      // 70: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 73: astore 5
      // 75: aload 7
      // 77: iload 2
      // 78: invokevirtual java/lang/String.indexOf (I)I
      // 7b: istore 3
      // 7c: goto 1e
      // 7f: aload 5
      // 81: aload 7
      // 83: invokevirtual java/lang/String.endsWith (Ljava/lang/String;)Z
      // 86: ireturn
      // try (4 -> 11): 11 java/lang/RuntimeException
      // try (37 -> 42): 43 java/lang/RuntimeException
      // try (40 -> 47): 48 java/lang/RuntimeException
      // try (45 -> 52): 52 java/lang/RuntimeException
   }

   public static String toString(X509Certificate var0) throws CertificateEncodingException {
      StringBuilder var1 = new StringBuilder();

      for (Pair var4 : getCertProperties(var0)) {
         String var5 = (String)var4.left;
         String var6 = (String)var4.right;
         var1.append(var5).append(x[61]).append(var6).append("\n");
      }

      return var1.toString();
   }

   public static List<Pair<String, String>> getCertProperties(X509Certificate var0) throws CertificateEncodingException {
      return getCertProperties(var0, true);
   }

   public static List<Pair<String, String>> getCertProperties(X509Certificate param0, boolean param1) throws CertificateEncodingException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: new java/util/ArrayList
      // 003: dup
      // 004: invokespecial java/util/ArrayList.<init> ()V
      // 007: astore 2
      // 008: aload 0
      // 009: ifnonnull 012
      // 00c: aload 2
      // 00d: areturn
      // 00e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 011: athrow
      // 012: aload 2
      // 013: new com/l7tech/util/Pair
      // 016: dup
      // 017: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 01a: astore 9
      // 01c: aload 9
      // 01e: bipush 8
      // 020: aaload
      // 021: aload 0
      // 022: invokevirtual java/security/cert/X509Certificate.getNotBefore ()Ljava/util/Date;
      // 025: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Object;)Ljava/lang/String;
      // 028: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 02b: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 030: pop
      // 031: aload 2
      // 032: new com/l7tech/util/Pair
      // 035: dup
      // 036: aload 9
      // 038: bipush 1
      // 039: aaload
      // 03a: aload 0
      // 03b: invokevirtual java/security/cert/X509Certificate.getNotAfter ()Ljava/util/Date;
      // 03e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Object;)Ljava/lang/String;
      // 041: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 044: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 049: pop
      // 04a: aload 2
      // 04b: new com/l7tech/util/Pair
      // 04e: dup
      // 04f: aload 9
      // 051: sipush 232
      // 054: aaload
      // 055: aload 0
      // 056: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 059: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Object;)Ljava/lang/String;
      // 05c: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 05f: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 064: pop
      // 065: aload 2
      // 066: new com/l7tech/util/Pair
      // 069: dup
      // 06a: aload 9
      // 06c: bipush 30
      // 06e: aaload
      // 06f: aload 0
      // 070: invokevirtual java/security/cert/X509Certificate.getSerialNumber ()Ljava/math/BigInteger;
      // 073: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Object;)Ljava/lang/String;
      // 076: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 079: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 07e: pop
      // 07f: aload 2
      // 080: new com/l7tech/util/Pair
      // 083: dup
      // 084: aload 9
      // 086: sipush 217
      // 089: aaload
      // 08a: aload 0
      // 08b: invokevirtual java/security/cert/X509Certificate.getIssuerDN ()Ljava/security/Principal;
      // 08e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Object;)Ljava/lang/String;
      // 091: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 094: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 099: pop
      // 09a: aload 2
      // 09b: new com/l7tech/util/Pair
      // 09e: dup
      // 09f: aload 9
      // 0a1: sipush 136
      // 0a4: aaload
      // 0a5: aload 0
      // 0a6: aload 9
      // 0a8: sipush 161
      // 0ab: aaload
      // 0ac: invokestatic com/l7tech/common/io/CertUtils.getCertificateFingerprint (Ljava/security/cert/X509Certificate;Ljava/lang/String;)Ljava/lang/String;
      // 0af: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 0b2: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0b7: pop
      // 0b8: aload 2
      // 0b9: new com/l7tech/util/Pair
      // 0bc: dup
      // 0bd: aload 9
      // 0bf: bipush 36
      // 0c1: aaload
      // 0c2: aload 0
      // 0c3: aload 9
      // 0c5: sipush 204
      // 0c8: aaload
      // 0c9: invokestatic com/l7tech/common/io/CertUtils.getCertificateFingerprint (Ljava/security/cert/X509Certificate;Ljava/lang/String;)Ljava/lang/String;
      // 0cc: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 0cf: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0d4: pop
      // 0d5: aload 2
      // 0d6: new com/l7tech/util/Pair
      // 0d9: dup
      // 0da: aload 9
      // 0dc: sipush 261
      // 0df: aaload
      // 0e0: aload 0
      // 0e1: invokevirtual java/security/cert/X509Certificate.getBasicConstraints ()I
      // 0e4: invokestatic com/l7tech/common/io/CertUtils.a (I)Ljava/lang/String;
      // 0e7: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 0ea: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0ef: pop
      // 0f0: aload 2
      // 0f1: new com/l7tech/util/Pair
      // 0f4: dup
      // 0f5: aload 9
      // 0f7: sipush 146
      // 0fa: aaload
      // 0fb: aload 0
      // 0fc: invokevirtual java/security/cert/X509Certificate.getKeyUsage ()[Z
      // 0ff: invokestatic com/l7tech/common/io/CertUtils.a ([Z)Ljava/lang/String;
      // 102: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 105: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 10a: pop
      // 10b: aload 2
      // 10c: new com/l7tech/util/Pair
      // 10f: dup
      // 110: aload 9
      // 112: bipush 110
      // 114: aaload
      // 115: aload 0
      // 116: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // 119: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 11c: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 121: pop
      // 122: goto 14e
      // 125: astore 3
      // 126: new java/lang/RuntimeException
      // 129: dup
      // 12a: aload 3
      // 12b: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/Throwable;)V
      // 12e: athrow
      // 12f: astore 3
      // 130: aload 2
      // 131: new com/l7tech/util/Pair
      // 134: dup
      // 135: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 138: astore 9
      // 13a: aload 9
      // 13c: sipush 173
      // 13f: aaload
      // 140: aload 9
      // 142: bipush 66
      // 144: aaload
      // 145: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 148: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 14d: pop
      // 14e: aload 2
      // 14f: new com/l7tech/util/Pair
      // 152: dup
      // 153: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 156: astore 9
      // 158: aload 9
      // 15a: bipush 56
      // 15c: aaload
      // 15d: aload 0
      // 15e: invokevirtual java/security/cert/X509Certificate.getSigAlgName ()Ljava/lang/String;
      // 161: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 164: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 169: pop
      // 16a: aload 0
      // 16b: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // 16e: astore 3
      // 16f: iload 1
      // 170: ifeq 376
      // 173: aload 3
      // 174: ifnull 376
      // 177: goto 17e
      // 17a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 17d: athrow
      // 17e: aload 2
      // 17f: new com/l7tech/util/Pair
      // 182: dup
      // 183: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 186: sipush 162
      // 189: aaload
      // 18a: aload 3
      // 18b: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 190: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Object;)Ljava/lang/String;
      // 193: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 196: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 19b: pop
      // 19c: aload 3
      // 19d: instanceof java/security/interfaces/RSAPublicKey
      // 1a0: ifeq 1fc
      // 1a3: goto 1aa
      // 1a6: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1a9: athrow
      // 1aa: aload 3
      // 1ab: checkcast java/security/interfaces/RSAPublicKey
      // 1ae: astore 4
      // 1b0: aload 2
      // 1b1: new com/l7tech/util/Pair
      // 1b4: dup
      // 1b5: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 1b8: astore 9
      // 1ba: aload 9
      // 1bc: sipush 186
      // 1bf: aaload
      // 1c0: aload 4
      // 1c2: invokestatic com/l7tech/common/io/CertUtils.getRsaKeyBits (Ljava/security/interfaces/RSAPublicKey;)I
      // 1c5: aload 9
      // 1c7: sipush 226
      // 1ca: aaload
      // 1cb: invokedynamic makeConcatWithConstants (ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 1d0: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 1d3: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 1d8: pop
      // 1d9: aload 2
      // 1da: new com/l7tech/util/Pair
      // 1dd: dup
      // 1de: aload 9
      // 1e0: sipush 257
      // 1e3: aaload
      // 1e4: aload 4
      // 1e6: invokeinterface java/security/interfaces/RSAPublicKey.getPublicExponent ()Ljava/math/BigInteger; 1
      // 1eb: bipush 16
      // 1ed: invokevirtual java/math/BigInteger.toString (I)Ljava/lang/String;
      // 1f0: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 1f3: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 1f8: pop
      // 1f9: goto 376
      // 1fc: aload 3
      // 1fd: instanceof java/security/interfaces/DSAPublicKey
      // 200: ifeq 278
      // 203: aload 3
      // 204: checkcast java/security/interfaces/DSAPublicKey
      // 207: astore 4
      // 209: aload 4
      // 20b: invokeinterface java/security/interfaces/DSAPublicKey.getParams ()Ljava/security/interfaces/DSAParams; 1
      // 210: astore 5
      // 212: aload 2
      // 213: new com/l7tech/util/Pair
      // 216: dup
      // 217: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 21a: astore 9
      // 21c: aload 9
      // 21e: bipush 92
      // 220: aaload
      // 221: aload 5
      // 223: invokeinterface java/security/interfaces/DSAParams.getP ()Ljava/math/BigInteger; 1
      // 228: bipush 16
      // 22a: invokevirtual java/math/BigInteger.toString (I)Ljava/lang/String;
      // 22d: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 230: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 235: pop
      // 236: aload 2
      // 237: new com/l7tech/util/Pair
      // 23a: dup
      // 23b: aload 9
      // 23d: sipush 158
      // 240: aaload
      // 241: aload 5
      // 243: invokeinterface java/security/interfaces/DSAParams.getQ ()Ljava/math/BigInteger; 1
      // 248: bipush 16
      // 24a: invokevirtual java/math/BigInteger.toString (I)Ljava/lang/String;
      // 24d: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 250: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 255: pop
      // 256: aload 2
      // 257: new com/l7tech/util/Pair
      // 25a: dup
      // 25b: aload 9
      // 25d: bipush 68
      // 25f: aaload
      // 260: aload 5
      // 262: invokeinterface java/security/interfaces/DSAParams.getG ()Ljava/math/BigInteger; 1
      // 267: bipush 16
      // 269: invokevirtual java/math/BigInteger.toString (I)Ljava/lang/String;
      // 26c: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 26f: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 274: pop
      // 275: goto 376
      // 278: aload 3
      // 279: instanceof java/security/interfaces/ECPublicKey
      // 27c: ifeq 337
      // 27f: aload 3
      // 280: checkcast java/security/interfaces/ECPublicKey
      // 283: astore 4
      // 285: aload 4
      // 287: invokeinterface java/security/interfaces/ECPublicKey.getParams ()Ljava/security/spec/ECParameterSpec; 1
      // 28c: astore 5
      // 28e: aload 3
      // 28f: invokestatic com/l7tech/common/io/CertUtils.guessEcCurveName (Ljava/security/PublicKey;)Ljava/lang/String;
      // 292: astore 6
      // 294: aload 6
      // 296: ifnull 2b7
      // 299: aload 2
      // 29a: new com/l7tech/util/Pair
      // 29d: dup
      // 29e: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 2a1: sipush 253
      // 2a4: aaload
      // 2a5: aload 6
      // 2a7: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 2aa: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 2af: pop
      // 2b0: goto 2b7
      // 2b3: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2b6: athrow
      // 2b7: aload 2
      // 2b8: new com/l7tech/util/Pair
      // 2bb: dup
      // 2bc: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 2bf: astore 9
      // 2c1: aload 9
      // 2c3: bipush 89
      // 2c5: aaload
      // 2c6: aload 4
      // 2c8: invokeinterface java/security/interfaces/ECPublicKey.getW ()Ljava/security/spec/ECPoint; 1
      // 2cd: invokevirtual java/security/spec/ECPoint.getAffineX ()Ljava/math/BigInteger;
      // 2d0: invokevirtual java/math/BigInteger.toString ()Ljava/lang/String;
      // 2d3: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 2d6: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 2db: pop
      // 2dc: aload 2
      // 2dd: new com/l7tech/util/Pair
      // 2e0: dup
      // 2e1: aload 9
      // 2e3: sipush 199
      // 2e6: aaload
      // 2e7: aload 4
      // 2e9: invokeinterface java/security/interfaces/ECPublicKey.getW ()Ljava/security/spec/ECPoint; 1
      // 2ee: invokevirtual java/security/spec/ECPoint.getAffineY ()Ljava/math/BigInteger;
      // 2f1: invokevirtual java/math/BigInteger.toString ()Ljava/lang/String;
      // 2f4: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 2f7: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 2fc: pop
      // 2fd: aload 2
      // 2fe: new com/l7tech/util/Pair
      // 301: dup
      // 302: aload 9
      // 304: bipush 86
      // 306: aaload
      // 307: aload 5
      // 309: invokevirtual java/security/spec/ECParameterSpec.getOrder ()Ljava/math/BigInteger;
      // 30c: invokevirtual java/math/BigInteger.toString ()Ljava/lang/String;
      // 30f: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 312: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 317: pop
      // 318: aload 2
      // 319: new com/l7tech/util/Pair
      // 31c: dup
      // 31d: aload 9
      // 31f: sipush 181
      // 322: aaload
      // 323: aload 5
      // 325: invokevirtual java/security/spec/ECParameterSpec.getCofactor ()I
      // 328: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 32b: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 32e: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 333: pop
      // 334: goto 376
      // 337: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 33a: astore 9
      // 33c: aload 9
      // 33e: sipush 194
      // 341: aaload
      // 342: aload 3
      // 343: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 348: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 34b: ifeq 376
      // 34e: aload 3
      // 34f: invokestatic com/l7tech/common/io/CertUtils.guessEcCurveName (Ljava/security/PublicKey;)Ljava/lang/String;
      // 352: astore 4
      // 354: aload 4
      // 356: ifnull 376
      // 359: aload 2
      // 35a: new com/l7tech/util/Pair
      // 35d: dup
      // 35e: aload 9
      // 360: sipush 214
      // 363: aaload
      // 364: aload 4
      // 366: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 369: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 36e: pop
      // 36f: goto 376
      // 372: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 375: athrow
      // 376: new java/lang/StringBuffer
      // 379: dup
      // 37a: invokespecial java/lang/StringBuffer.<init> ()V
      // 37d: astore 4
      // 37f: aload 0
      // 380: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 383: astore 9
      // 385: aload 9
      // 387: sipush 218
      // 38a: aaload
      // 38b: invokestatic com/l7tech/common/io/CertUtils.getAuthorityInformationAccessUris (Ljava/security/cert/X509Certificate;Ljava/lang/String;)[Ljava/lang/String;
      // 38e: astore 5
      // 390: bipush 0
      // 391: istore 6
      // 393: iload 6
      // 395: aload 5
      // 397: arraylength
      // 398: if_icmpge 3d5
      // 39b: aload 4
      // 39d: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 3a0: sipush 169
      // 3a3: aaload
      // 3a4: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 3a7: aload 5
      // 3a9: bipush 0
      // 3aa: aaload
      // 3ab: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 3ae: pop
      // 3af: iload 6
      // 3b1: aload 5
      // 3b3: arraylength
      // 3b4: bipush 1
      // 3b5: isub
      // 3b6: if_icmpeq 3cf
      // 3b9: goto 3c0
      // 3bc: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3bf: athrow
      // 3c0: aload 4
      // 3c2: bipush 10
      // 3c4: invokevirtual java/lang/StringBuffer.append (C)Ljava/lang/StringBuffer;
      // 3c7: pop
      // 3c8: goto 3cf
      // 3cb: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3ce: athrow
      // 3cf: iinc 6 1
      // 3d2: goto 393
      // 3d5: aload 5
      // 3d7: arraylength
      // 3d8: ifle 3fb
      // 3db: aload 2
      // 3dc: new com/l7tech/util/Pair
      // 3df: dup
      // 3e0: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 3e3: bipush 83
      // 3e5: aaload
      // 3e6: aload 4
      // 3e8: invokevirtual java/lang/StringBuffer.toString ()Ljava/lang/String;
      // 3eb: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 3ee: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 3f3: pop
      // 3f4: goto 3fb
      // 3f7: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3fa: athrow
      // 3fb: goto 424
      // 3fe: astore 5
      // 400: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 403: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 406: aload 5
      // 408: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 40b: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 40e: astore 9
      // 410: aload 9
      // 412: sipush 138
      // 415: aaload
      // 416: swap
      // 417: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 41c: aload 5
      // 41e: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 421: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 424: aload 0
      // 425: invokestatic com/l7tech/common/io/CertUtils.getCrlUrls (Ljava/security/cert/X509Certificate;)[Ljava/lang/String;
      // 428: astore 5
      // 42a: aload 4
      // 42c: bipush 0
      // 42d: invokevirtual java/lang/StringBuffer.setLength (I)V
      // 430: bipush 0
      // 431: istore 6
      // 433: iload 6
      // 435: aload 5
      // 437: arraylength
      // 438: if_icmpge 476
      // 43b: aload 4
      // 43d: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 440: sipush 224
      // 443: aaload
      // 444: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 447: aload 5
      // 449: iload 6
      // 44b: aaload
      // 44c: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 44f: pop
      // 450: iload 6
      // 452: aload 5
      // 454: arraylength
      // 455: bipush 1
      // 456: isub
      // 457: if_icmpeq 470
      // 45a: goto 461
      // 45d: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 460: athrow
      // 461: aload 4
      // 463: bipush 10
      // 465: invokevirtual java/lang/StringBuffer.append (C)Ljava/lang/StringBuffer;
      // 468: pop
      // 469: goto 470
      // 46c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 46f: athrow
      // 470: iinc 6 1
      // 473: goto 433
      // 476: aload 5
      // 478: arraylength
      // 479: ifle 49c
      // 47c: aload 2
      // 47d: new com/l7tech/util/Pair
      // 480: dup
      // 481: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 484: bipush 70
      // 486: aaload
      // 487: aload 4
      // 489: invokevirtual java/lang/StringBuffer.toString ()Ljava/lang/String;
      // 48c: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 48f: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 494: pop
      // 495: goto 49c
      // 498: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 49b: athrow
      // 49c: goto 4cf
      // 49f: astore 5
      // 4a1: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 4a4: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 4a7: aload 0
      // 4a8: invokestatic com/l7tech/common/io/CertUtils.getCertIdentifyingInformation (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // 4ab: aload 5
      // 4ad: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 4b0: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 4b3: astore 9
      // 4b5: aload 9
      // 4b7: bipush 115
      // 4b9: aaload
      // 4ba: dup_x2
      // 4bb: pop
      // 4bc: aload 9
      // 4be: bipush 67
      // 4c0: aaload
      // 4c1: swap
      // 4c2: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 4c7: aload 5
      // 4c9: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4cc: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 4cf: aload 0
      // 4d0: invokevirtual java/security/cert/X509Certificate.getSubjectAlternativeNames ()Ljava/util/Collection;
      // 4d3: astore 5
      // 4d5: aload 5
      // 4d7: ifnull 561
      // 4da: aload 4
      // 4dc: bipush 0
      // 4dd: invokevirtual java/lang/StringBuffer.setLength (I)V
      // 4e0: aload 5
      // 4e2: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 4e7: astore 6
      // 4e9: aload 6
      // 4eb: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 4f0: ifeq 533
      // 4f3: aload 6
      // 4f5: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 4fa: checkcast java/util/List
      // 4fd: astore 7
      // 4ff: aload 7
      // 501: invokeinterface java/util/List.size ()I 1
      // 506: bipush 2
      // 507: if_icmpne 530
      // 50a: aload 7
      // 50c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/util/List;)Ljava/lang/String;
      // 50f: astore 8
      // 511: aload 8
      // 513: ifnull 530
      // 516: aload 4
      // 518: aload 7
      // 51a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/util/List;)Ljava/lang/String;
      // 51d: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 520: pop
      // 521: aload 4
      // 523: bipush 10
      // 525: invokevirtual java/lang/StringBuffer.append (C)Ljava/lang/StringBuffer;
      // 528: pop
      // 529: goto 530
      // 52c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 52f: athrow
      // 530: goto 4e9
      // 533: aload 4
      // 535: invokevirtual java/lang/StringBuffer.length ()I
      // 538: ifle 561
      // 53b: aload 2
      // 53c: new com/l7tech/util/Pair
      // 53f: dup
      // 540: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 543: bipush 75
      // 545: aaload
      // 546: aload 4
      // 548: bipush 0
      // 549: aload 4
      // 54b: invokevirtual java/lang/StringBuffer.length ()I
      // 54e: invokevirtual java/lang/StringBuffer.substring (II)Ljava/lang/String;
      // 551: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 554: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 559: pop
      // 55a: goto 561
      // 55d: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 560: athrow
      // 561: goto 596
      // 564: astore 5
      // 566: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 569: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 56c: aload 0
      // 56d: invokestatic com/l7tech/common/io/CertUtils.getCertIdentifyingInformation (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // 570: aload 5
      // 572: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 575: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 578: astore 9
      // 57a: aload 9
      // 57c: sipush 133
      // 57f: aaload
      // 580: dup_x2
      // 581: pop
      // 582: aload 9
      // 584: sipush 141
      // 587: aaload
      // 588: swap
      // 589: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 58e: aload 5
      // 590: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 593: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 596: aload 2
      // 597: areturn
      // try (4 -> 8): 8 java/security/NoSuchAlgorithmException
      // try (72 -> 135): 136 java/security/NoSuchAlgorithmException
      // try (72 -> 135): 142 java/security/cert/CertificateParsingException
      // try (436 -> 450): 451 java/security/NoSuchAlgorithmException
      // try (408 -> 431): 432 java/security/NoSuchAlgorithmException
      // try (404 -> 424): 425 java/security/NoSuchAlgorithmException
      // try (375 -> 387): 388 java/security/NoSuchAlgorithmException
      // try (295 -> 307): 308 java/security/NoSuchAlgorithmException
      // try (175 -> 195): 196 java/security/NoSuchAlgorithmException
      // try (173 -> 177): 178 java/security/NoSuchAlgorithmException
      // try (394 -> 453): 454 java/security/cert/CertificateException
      // try (509 -> 523): 524 java/security/NoSuchAlgorithmException
      // try (481 -> 504): 505 java/security/NoSuchAlgorithmException
      // try (477 -> 497): 498 java/security/NoSuchAlgorithmException
      // try (469 -> 526): 527 java/io/IOException
      // try (589 -> 606): 607 java/security/NoSuchAlgorithmException
      // try (574 -> 585): 586 java/security/NoSuchAlgorithmException
      // try (549 -> 609): 610 java/security/cert/CertificateParsingException
   }

   private static String a(List var0) {
      Integer var1 = (Integer)var0.get(0);
      String var2;
      if (var0.get(1) instanceof String) {
         var2 = (String)var0.get(1);
      } else {
         if (!(var0.get(1) instanceof byte[])) {
            return null;
         }

         byte[] var3 = (byte[])var0.get(1);

         try {
            ASN1InputStream var4 = new ASN1InputStream(var3);

            try {
               var2 = var4.readObject().toString();
            } catch (Throwable var9) {
               try {
                  var4.close();
               } catch (Throwable var8) {
                  var9.addSuppressed(var8);
               }

               throw var9;
            }

            var4.close();
         } catch (IOException var10) {
            return null;
         }
      }

      label69: {
         label68: {
            label67: {
               label66: {
                  label78: {
                     try {
                        switch (var1) {
                           case 1:
                              return x[263] + var2;
                           case 2:
                              break label69;
                           case 3:
                              break label68;
                           case 4:
                              break label67;
                           case 5:
                              break label66;
                           case 6:
                              break label78;
                           case 7:
                              break;
                           case 8:
                              return x[113] + var2;
                           default:
                              return null;
                        }
                     } catch (Throwable var11) {
                        throw a(var11);
                     }

                     String[] var7 = x;
                     return var7[167] + var2;
                  }

                  String[] var12 = x;
                  return var12[239] + var2;
               }

               String[] var13 = x;
               return var13[155] + var2;
            }

            String var10000 = formatDN(var2);
            String[] var14 = x;
            return var14[48] + var10000;
         }

         String[] var15 = x;
         return var15[187] + var2;
      }

      String[] var16 = x;
      return var16[152] + var2;
   }

   public static Collection<String> getSubjectAlternativeNames(X509Certificate var0, Integer var1) throws CertificateParsingException {
      ArrayList var2 = new ArrayList();
      Collection var3 = var0.getSubjectAlternativeNames();
      if (var3 != null) {
         for (List var5 : var3) {
            if (var5.size() == 2) {
               Object var6 = var5.get(0);

               try {
                  if (var1.equals(var6)) {
                     var2.add((String)var5.get(1));
                  }
               } catch (CertificateParsingException var7) {
                  throw a(var7);
               }
            }
         }
      }

      return var2;
   }

   static ECPublicKey a(PublicKey param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 03: sipush 219
      // 06: aaload
      // 07: aload 0
      // 08: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 0d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 10: ifne 19
      // 13: aconst_null
      // 14: areturn
      // 15: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 18: athrow
      // 19: getstatic com/l7tech/common/io/CertUtils.u Ljava/lang/Class;
      // 1c: ifnull 2c
      // 1f: getstatic com/l7tech/common/io/CertUtils.v Ljava/lang/reflect/Constructor;
      // 22: ifnonnull 32
      // 25: goto 2c
      // 28: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2b: athrow
      // 2c: aconst_null
      // 2d: areturn
      // 2e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 31: athrow
      // 32: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 35: bipush 44
      // 37: aaload
      // 38: aload 0
      // 39: invokeinterface java/security/PublicKey.getFormat ()Ljava/lang/String; 1
      // 3e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 41: ifne 64
      // 44: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 47: sipush 259
      // 4a: aaload
      // 4b: aload 0
      // 4c: invokeinterface java/security/PublicKey.getFormat ()Ljava/lang/String; 1
      // 51: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 54: ifne 64
      // 57: goto 5e
      // 5a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 5d: athrow
      // 5e: aconst_null
      // 5f: areturn
      // 60: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 63: athrow
      // 64: getstatic com/l7tech/common/io/CertUtils.v Ljava/lang/reflect/Constructor;
      // 67: bipush 1
      // 68: anewarray 1428
      // 6b: dup
      // 6c: bipush 0
      // 6d: aload 0
      // 6e: invokeinterface java/security/PublicKey.getEncoded ()[B 1
      // 73: aastore
      // 74: invokevirtual java/lang/reflect/Constructor.newInstance ([Ljava/lang/Object;)Ljava/lang/Object;
      // 77: checkcast java/security/interfaces/ECPublicKey
      // 7a: areturn
      // 7b: astore 1
      // 7c: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 7f: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 82: aload 1
      // 83: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 86: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 89: astore 2
      // 8a: aload 2
      // 8b: sipush 254
      // 8e: aaload
      // 8f: swap
      // 90: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 95: aload 1
      // 96: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 99: aconst_null
      // 9a: areturn
      // 9b: astore 1
      // 9c: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 9f: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // a2: aload 1
      // a3: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // a6: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // a9: astore 2
      // aa: aload 2
      // ab: sipush 178
      // ae: aaload
      // af: swap
      // b0: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // b5: aload 1
      // b6: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // b9: aconst_null
      // ba: areturn
      // bb: astore 1
      // bc: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // bf: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // c2: aload 1
      // c3: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // c6: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // c9: sipush 178
      // cc: aaload
      // cd: swap
      // ce: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // d3: aload 1
      // d4: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // d7: aconst_null
      // d8: areturn
      // try (29 -> 41): 41 java/lang/InstantiationException
      // try (22 -> 36): 37 java/lang/InstantiationException
      // try (13 -> 20): 20 java/lang/InstantiationException
      // try (11 -> 15): 16 java/lang/InstantiationException
      // try (0 -> 9): 9 java/lang/InstantiationException
      // try (43 -> 53): 54 java/lang/InstantiationException
      // try (43 -> 53): 70 java/lang/IllegalAccessException
      // try (43 -> 53): 86 java/lang/reflect/InvocationTargetException
   }

   public static String guessEcCurveName(PublicKey param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 03: sipush 219
      // 06: aaload
      // 07: aload 0
      // 08: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 0d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 10: ifne 19
      // 13: aconst_null
      // 14: areturn
      // 15: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 18: athrow
      // 19: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 1c: astore 3
      // 1d: aload 3
      // 1e: sipush 174
      // 21: aaload
      // 22: aload 0
      // 23: invokeinterface java/security/PublicKey.getClass ()Ljava/lang/Class; 1
      // 28: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 2b: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 2e: ifeq 72
      // 31: aload 0
      // 32: invokeinterface java/security/PublicKey.toString ()Ljava/lang/String; 1
      // 37: astore 1
      // 38: aload 1
      // 39: ifnull 4f
      // 3c: aload 1
      // 3d: aload 3
      // 3e: sipush 135
      // 41: aaload
      // 42: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 45: ifne 55
      // 48: goto 4f
      // 4b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4e: athrow
      // 4f: aconst_null
      // 50: areturn
      // 51: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 54: athrow
      // 55: getstatic com/l7tech/common/io/CertUtils.o Ljava/util/regex/Pattern;
      // 58: aload 1
      // 59: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 5c: astore 2
      // 5d: aload 2
      // 5e: invokevirtual java/util/regex/Matcher.find ()Z
      // 61: ifeq 70
      // 64: aload 2
      // 65: bipush 1
      // 66: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 69: goto 71
      // 6c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 6f: athrow
      // 70: aconst_null
      // 71: areturn
      // 72: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 75: astore 3
      // 76: aload 3
      // 77: bipush 39
      // 79: aaload
      // 7a: aload 0
      // 7b: invokeinterface java/security/PublicKey.getClass ()Ljava/lang/Class; 1
      // 80: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 83: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 86: ifne 98
      // 89: aload 0
      // 8a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/security/PublicKey;)Ljava/security/interfaces/ECPublicKey;
      // 8d: astore 0
      // 8e: aload 0
      // 8f: ifnonnull 98
      // 92: aconst_null
      // 93: areturn
      // 94: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 97: athrow
      // 98: aload 0
      // 99: invokeinterface java/security/PublicKey.toString ()Ljava/lang/String; 1
      // 9e: astore 1
      // 9f: aload 1
      // a0: ifnull b8
      // a3: aload 1
      // a4: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // a7: sipush 247
      // aa: aaload
      // ab: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // ae: ifne be
      // b1: goto b8
      // b4: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // b7: athrow
      // b8: aconst_null
      // b9: areturn
      // ba: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // bd: athrow
      // be: getstatic com/l7tech/common/io/CertUtils.p Ljava/util/regex/Pattern;
      // c1: aload 1
      // c2: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // c5: astore 2
      // c6: aload 2
      // c7: invokevirtual java/util/regex/Matcher.find ()Z
      // ca: ifeq d9
      // cd: aload 2
      // ce: bipush 1
      // cf: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // d2: goto da
      // d5: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // d8: athrow
      // d9: aconst_null
      // da: areturn
      // try (0 -> 9): 9 java/lang/RuntimeException
      // try (24 -> 32): 33 java/lang/RuntimeException
      // try (26 -> 37): 37 java/lang/RuntimeException
      // try (43 -> 50): 50 java/lang/RuntimeException
      // try (67 -> 71): 71 java/lang/RuntimeException
      // try (76 -> 84): 85 java/lang/RuntimeException
      // try (78 -> 89): 89 java/lang/RuntimeException
      // try (95 -> 102): 102 java/lang/RuntimeException
   }

   private static String a(int var0) {
      try {
         if (var0 == -1) {
            return x[12];
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      try {
         if (var0 == Integer.MAX_VALUE) {
            return x[72];
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return x[38] + var0;
   }

   public static int getRsaKeyBits(RSAPublicKey var0) {
      return var0.getModulus().toString(16).length() * 4;
   }

   private static String a(X509Certificate var0) throws CertificateParsingException {
      List var1 = var0.getExtendedKeyUsage();

      try {
         if (var1 == null) {
            return x[12];
         }
      } catch (CertificateParsingException var8) {
         throw a(var8);
      }

      try {
         if (var1.isEmpty()) {
            return x[126];
         }
      } catch (CertificateParsingException var10) {
         throw a(var10);
      }

      StringBuilder var2 = new StringBuilder();
      boolean var3 = true;

      for (String var5 : var1) {
         String var6 = t.get(var5);

         try {
            if (!var3) {
               var2.append(x[177]);
            }
         } catch (CertificateParsingException var7) {
            throw a(var7);
         }

         StringBuilder var10000;
         String var10001;
         label43: {
            try {
               var10000 = var2;
               if (var6 != null) {
                  var10001 = var6;
                  break label43;
               }
            } catch (CertificateParsingException var9) {
               throw a(var9);
            }

            var10001 = var5;
         }

         var10000.append(var10001);
         var3 = false;
      }

      return var2.toString();
   }

   private static String a(boolean[] param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnonnull 10
      // 04: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 07: sipush 190
      // 0a: aaload
      // 0b: areturn
      // 0c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f: athrow
      // 10: new java/lang/StringBuilder
      // 13: dup
      // 14: invokespecial java/lang/StringBuilder.<init> ()V
      // 17: astore 1
      // 18: bipush 1
      // 19: istore 2
      // 1a: bipush 0
      // 1b: istore 3
      // 1c: iload 3
      // 1d: aload 0
      // 1e: arraylength
      // 1f: if_icmpge 85
      // 22: aload 0
      // 23: iload 3
      // 24: baload
      // 25: ifeq 7f
      // 28: goto 2f
      // 2b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 2e: athrow
      // 2f: iload 3
      // 30: getstatic com/l7tech/common/io/CertUtils.s [Ljava/lang/String;
      // 33: arraylength
      // 34: if_icmpge 4a
      // 37: goto 3e
      // 3a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3d: athrow
      // 3e: getstatic com/l7tech/common/io/CertUtils.s [Ljava/lang/String;
      // 41: iload 3
      // 42: aaload
      // 43: goto 5e
      // 46: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 49: athrow
      // 4a: iload 3
      // 4b: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 4e: astore 5
      // 50: aload 5
      // 52: sipush 229
      // 55: aaload
      // 56: swap
      // 57: ldc ">"
      // 59: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 5e: astore 4
      // 60: iload 2
      // 61: ifne 76
      // 64: aload 1
      // 65: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 68: bipush 120
      // 6a: aaload
      // 6b: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 6e: pop
      // 6f: goto 76
      // 72: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 75: athrow
      // 76: aload 1
      // 77: aload 4
      // 79: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 7c: pop
      // 7d: bipush 0
      // 7e: istore 2
      // 7f: iinc 3 1
      // 82: goto 1c
      // 85: aload 1
      // 86: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 89: astore 3
      // 8a: aload 3
      // 8b: invokevirtual java/lang/String.length ()I
      // 8e: bipush 1
      // 8f: if_icmpge 9f
      // 92: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 95: bipush 11
      // 97: aaload
      // 98: goto a0
      // 9b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 9e: athrow
      // 9f: aload 3
      // a0: areturn
      // try (0 -> 6): 6 java/lang/RuntimeException
      // try (16 -> 24): 25 java/lang/RuntimeException
      // try (20 -> 31): 32 java/lang/RuntimeException
      // try (27 -> 38): 38 java/lang/RuntimeException
      // try (50 -> 58): 59 java/lang/RuntimeException
      // try (72 -> 80): 80 java/lang/RuntimeException
   }

   public static String getCertificateFingerprint(X509Certificate var0, String var1) throws CertificateEncodingException, NoSuchAlgorithmException {
      return getCertificateFingerprint(var0, var1, x[198]);
   }

   public static String getCertificateFingerprint(X509Certificate param0, String param1, String param2) throws CertificateEncodingException, NoSuchAlgorithmException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: ifnonnull 016
      // 004: new java/lang/NullPointerException
      // 007: dup
      // 008: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 00b: bipush 21
      // 00d: aaload
      // 00e: invokespecial java/lang/NullPointerException.<init> (Ljava/lang/String;)V
      // 011: athrow
      // 012: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 015: athrow
      // 016: new java/lang/StringBuilder
      // 019: dup
      // 01a: invokespecial java/lang/StringBuilder.<init> ()V
      // 01d: astore 3
      // 01e: aload 0
      // 01f: invokevirtual java/security/cert/X509Certificate.getEncoded ()[B
      // 022: astore 4
      // 024: aload 1
      // 025: invokestatic java/security/MessageDigest.getInstance (Ljava/lang/String;)Ljava/security/MessageDigest;
      // 028: astore 5
      // 02a: aload 5
      // 02c: aload 4
      // 02e: invokevirtual java/security/MessageDigest.digest ([B)[B
      // 031: astore 6
      // 033: bipush 0
      // 034: istore 7
      // 036: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 039: sipush 184
      // 03c: aaload
      // 03d: aload 2
      // 03e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 041: ifeq 04f
      // 044: aload 6
      // 046: bipush 1
      // 047: invokestatic com/l7tech/util/HexUtils.encodeBase64 ([BZ)Ljava/lang/String;
      // 04a: areturn
      // 04b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 04e: athrow
      // 04f: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 052: bipush 109
      // 054: aaload
      // 055: aload 2
      // 056: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 059: ifeq 067
      // 05c: aload 6
      // 05e: bipush 1
      // 05f: invokestatic com/l7tech/util/HexUtils.encodeBase64Url ([BZ)Ljava/lang/String;
      // 062: areturn
      // 063: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 066: athrow
      // 067: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 06a: astore 11
      // 06c: aload 11
      // 06e: bipush 90
      // 070: aaload
      // 071: aload 2
      // 072: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 075: ifeq 07e
      // 078: bipush 1
      // 079: istore 7
      // 07b: goto 0a5
      // 07e: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 081: sipush 163
      // 084: aaload
      // 085: aload 2
      // 086: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 089: ifne 0a5
      // 08c: new java/lang/IllegalArgumentException
      // 08f: dup
      // 090: aload 2
      // 091: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 094: bipush 15
      // 096: aaload
      // 097: swap
      // 098: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 09d: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 0a0: athrow
      // 0a1: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0a4: athrow
      // 0a5: iload 7
      // 0a7: ifne 0bc
      // 0aa: aload 3
      // 0ab: aload 1
      // 0ac: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0af: ldc ":"
      // 0b1: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0b4: pop
      // 0b5: goto 0bc
      // 0b8: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0bb: athrow
      // 0bc: bipush 0
      // 0bd: istore 8
      // 0bf: iload 8
      // 0c1: aload 6
      // 0c3: arraylength
      // 0c4: if_icmpge 126
      // 0c7: iload 7
      // 0c9: ifne 0ed
      // 0cc: goto 0d3
      // 0cf: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0d2: athrow
      // 0d3: iload 8
      // 0d5: ifeq 0ed
      // 0d8: goto 0df
      // 0db: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0de: athrow
      // 0df: aload 3
      // 0e0: ldc ":"
      // 0e2: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0e5: pop
      // 0e6: goto 0ed
      // 0e9: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0ec: athrow
      // 0ed: aload 6
      // 0ef: iload 8
      // 0f1: baload
      // 0f2: sipush 255
      // 0f5: iand
      // 0f6: istore 9
      // 0f8: iload 9
      // 0fa: invokestatic java/lang/Integer.toHexString (I)Ljava/lang/String;
      // 0fd: astore 10
      // 0ff: aload 10
      // 101: invokevirtual java/lang/String.length ()I
      // 104: bipush 1
      // 105: if_icmpne 116
      // 108: aload 3
      // 109: ldc "0"
      // 10b: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 10e: pop
      // 10f: goto 116
      // 112: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 115: athrow
      // 116: aload 3
      // 117: aload 10
      // 119: invokevirtual java/lang/String.toUpperCase ()Ljava/lang/String;
      // 11c: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 11f: pop
      // 120: iinc 8 1
      // 123: goto 0bf
      // 126: aload 3
      // 127: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 12a: areturn
      // try (0 -> 9): 9 java/security/cert/CertificateEncodingException
      // try (27 -> 37): 37 java/security/cert/CertificateEncodingException
      // try (39 -> 49): 49 java/security/cert/CertificateEncodingException
      // try (62 -> 78): 78 java/security/cert/CertificateEncodingException
      // try (80 -> 88): 89 java/security/cert/CertificateEncodingException
      // try (93 -> 99): 100 java/security/cert/CertificateEncodingException
      // try (97 -> 104): 105 java/security/cert/CertificateEncodingException
      // try (102 -> 111): 112 java/security/cert/CertificateEncodingException
      // try (123 -> 131): 132 java/security/cert/CertificateEncodingException
   }

   private static String a(Object var0) {
      try {
         if (var0 == null) {
            return x[77];
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      return var0.toString();
   }

   public static String extractSingleCommonNameFromCertificate(X509Certificate var0) throws IllegalArgumentException, CertUtils.MultipleCnValuesException {
      Principal var1 = var0.getSubjectDN();

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(x[41] + getCertIdentifyingInformation(var0) + x[189]);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      String var2 = a(var1);

      try {
         if (var2 == null) {
            return "";
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return var2;
   }

   public static String extractFirstCommonNameFromCertificate(X509Certificate var0) {
      Principal var1 = var0.getSubjectDN();

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(x[41] + getCertIdentifyingInformation(var0) + x[74]);
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return extractFirstCommonNameFromDN(var1.getName());
   }

   public static String extractFirstCommonNameFromDN(String var0) {
      Map var1 = dnToAttributeMap(var0);
      List var2 = (List)var1.get(x[231]);
      Object var3 = null;

      try {
         if (var2 == null || var2.size() < 1) {
            return (String)var3;
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      return (String)var2.get(0);
   }

   public static List<String> extractCommonNamesFromCertificate(X509Certificate var0) throws IllegalArgumentException {
      Principal var1 = var0.getSubjectDN();

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(x[41] + getCertIdentifyingInformation(var0) + x[74]);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      List var2 = dnToAttributeMap(var1.getName()).get(x[231]);

      try {
         if (var2 == null) {
            return Collections.emptyList();
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return var2;
   }

   public static String extractSingleIssuerNameFromCertificate(X509Certificate var0) throws IllegalArgumentException, CertUtils.MultipleCnValuesException {
      Principal var1 = var0.getIssuerDN();

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(x[157] + getCertIdentifyingInformation(var0) + x[79]);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      String var2 = a(var1);
      if (var2 == null) {
         var2 = var1.getName();
      }

      try {
         if (var2 == null) {
            return "";
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return var2;
   }

   public static String extractFirstIssuerNameFromCertificate(X509Certificate var0) {
      Principal var1 = var0.getIssuerDN();

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(x[41] + getCertIdentifyingInformation(var0) + x[171]);
         }
      } catch (RuntimeException var6) {
         throw a(var6);
      }

      Map var2 = dnToAttributeMap(var1.getName());
      List var3 = (List)var2.get(x[231]);
      Object var4 = null;

      try {
         if (var3 == null || var3.size() < 1) {
            return (String)var4;
         }
      } catch (RuntimeException var5) {
         throw a(var5);
      }

      return (String)var3.get(0);
   }

   public static List<String> extractIssuerNamesFromCertificate(X509Certificate var0) {
      Principal var1 = var0.getIssuerDN();

      try {
         if (var1 == null) {
            throw new IllegalArgumentException(x[41] + getCertIdentifyingInformation(var0) + x[171]);
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      List var2 = dnToAttributeMap(var1.getName()).get(x[231]);

      try {
         if (var2 == null) {
            return Collections.emptyList();
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      return var2;
   }

   private static String a(Principal var0) throws CertUtils.MultipleCnValuesException {
      String var1 = var0.getName();
      Map var2 = dnToAttributeMap(var1);
      List var3 = (List)var2.get(x[76]);

      try {
         if (var3 == null) {
            return null;
         }
      } catch (CertUtils.MultipleCnValuesException var4) {
         throw a(var4);
      }

      try {
         switch (var3.size()) {
            case 0:
               return null;
            case 1:
               return (String)var3.get(0);
         }
      } catch (CertUtils.MultipleCnValuesException var5) {
         throw a(var5);
      }

      throw new CertUtils.MultipleCnValuesException();
   }

   public static String extractAuthType(String var0) {
      String[] var3 = x;
      Pattern var1 = Pattern.compile(var3[248]);
      Matcher var2 = var1.matcher(var0);

      try {
         if (var2.matches()) {
            return var2.group(1);
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      var3 = x;
      throw new IllegalArgumentException(var3[82] + var0 + var3[27]);
   }

   public static byte[] getSKIBytesFromCert(X509Certificate param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 04: astore 7
      // 06: aload 7
      // 08: sipush 142
      // 0b: aaload
      // 0c: invokevirtual java/security/cert/X509Certificate.getExtensionValue (Ljava/lang/String;)[B
      // 0f: astore 1
      // 10: aload 0
      // 11: invokevirtual java/security/cert/X509Certificate.getVersion ()I
      // 14: bipush 3
      // 15: if_icmplt 23
      // 18: aload 1
      // 19: ifnonnull b4
      // 1c: goto 23
      // 1f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 22: athrow
      // 23: aload 0
      // 24: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // 27: astore 2
      // 28: aload 2
      // 29: instanceof java/security/interfaces/RSAPublicKey
      // 2c: ifne 6b
      // 2f: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 32: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 35: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 38: ifeq 69
      // 3b: goto 42
      // 3e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 41: athrow
      // 42: getstatic com/l7tech/common/io/CertUtils.e Ljava/util/logging/Logger;
      // 45: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 48: aload 0
      // 49: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 4c: invokeinterface java/security/Principal.getName ()Ljava/lang/String; 1
      // 51: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 54: bipush 94
      // 56: aaload
      // 57: swap
      // 58: ldc "'"
      // 5a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 5f: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 62: goto 69
      // 65: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 68: athrow
      // 69: aconst_null
      // 6a: areturn
      // 6b: aload 2
      // 6c: invokeinterface java/security/PublicKey.getEncoded ()[B 1
      // 71: astore 3
      // 72: aload 3
      // 73: arraylength
      // 74: bipush 22
      // 76: isub
      // 77: newarray 8
      // 79: astore 4
      // 7b: aload 3
      // 7c: bipush 22
      // 7e: aload 4
      // 80: bipush 0
      // 81: aload 4
      // 83: arraylength
      // 84: invokestatic java/lang/System.arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V
      // 87: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 8a: sipush 230
      // 8d: aaload
      // 8e: invokestatic java/security/MessageDigest.getInstance (Ljava/lang/String;)Ljava/security/MessageDigest;
      // 91: astore 5
      // 93: goto a2
      // 96: astore 6
      // 98: new java/lang/RuntimeException
      // 9b: dup
      // 9c: aload 6
      // 9e: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/Throwable;)V
      // a1: athrow
      // a2: aload 5
      // a4: invokevirtual java/security/MessageDigest.reset ()V
      // a7: aload 5
      // a9: aload 4
      // ab: invokevirtual java/security/MessageDigest.update ([B)V
      // ae: aload 5
      // b0: invokevirtual java/security/MessageDigest.digest ()[B
      // b3: areturn
      // b4: aload 1
      // b5: bipush 4
      // b6: invokestatic com/l7tech/common/io/CertUtils.a ([BI)[B
      // b9: areturn
      // try (23 -> 42): 43 java/security/NoSuchAlgorithmException
      // try (20 -> 27): 28 java/security/NoSuchAlgorithmException
      // try (8 -> 14): 15 java/security/NoSuchAlgorithmException
      // try (63 -> 68): 69 java/security/NoSuchAlgorithmException
   }

   public static byte[] getAKIBytesFromCert(X509Certificate var0) {
      try {
         if (var0.getVersion() < 3) {
            return null;
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      byte[] var1 = var0.getExtensionValue(x[150]);

      try {
         if (var1 == null) {
            return null;
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return a(var1, 6);
   }

   private static byte[] a(byte[] var0, int var1) {
      try {
         if (var0.length <= var1) {
            throw new IllegalArgumentException();
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      byte[] var2 = new byte[var0.length - var1];
      System.arraycopy(var0, var1, var2, 0, var2.length);
      return var2;
   }

   private static BigInteger[] a(byte[] param0) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: new org/apache/harmony/security/asn1/ASN1Sequence
      // 03: dup
      // 04: bipush 9
      // 06: anewarray 345
      // 09: dup
      // 0a: bipush 0
      // 0b: new org/apache/harmony/security/asn1/ASN1Integer
      // 0e: dup
      // 0f: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 12: aastore
      // 13: dup
      // 14: bipush 1
      // 15: new org/apache/harmony/security/asn1/ASN1Integer
      // 18: dup
      // 19: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 1c: aastore
      // 1d: dup
      // 1e: bipush 2
      // 1f: new org/apache/harmony/security/asn1/ASN1Integer
      // 22: dup
      // 23: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 26: aastore
      // 27: dup
      // 28: bipush 3
      // 29: new org/apache/harmony/security/asn1/ASN1Integer
      // 2c: dup
      // 2d: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 30: aastore
      // 31: dup
      // 32: bipush 4
      // 33: new org/apache/harmony/security/asn1/ASN1Integer
      // 36: dup
      // 37: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 3a: aastore
      // 3b: dup
      // 3c: bipush 5
      // 3d: new org/apache/harmony/security/asn1/ASN1Integer
      // 40: dup
      // 41: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 44: aastore
      // 45: dup
      // 46: bipush 6
      // 48: new org/apache/harmony/security/asn1/ASN1Integer
      // 4b: dup
      // 4c: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 4f: aastore
      // 50: dup
      // 51: bipush 7
      // 53: new org/apache/harmony/security/asn1/ASN1Integer
      // 56: dup
      // 57: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 5a: aastore
      // 5b: dup
      // 5c: bipush 8
      // 5e: new org/apache/harmony/security/asn1/ASN1Integer
      // 61: dup
      // 62: invokespecial org/apache/harmony/security/asn1/ASN1Integer.<init> ()V
      // 65: aastore
      // 66: invokespecial org/apache/harmony/security/asn1/ASN1Sequence.<init> ([Lorg/apache/harmony/security/asn1/ASN1Type;)V
      // 69: astore 1
      // 6a: aload 1
      // 6b: aload 0
      // 6c: invokevirtual org/apache/harmony/security/asn1/ASN1Sequence.decode ([B)Ljava/lang/Object;
      // 6f: astore 2
      // 70: aload 2
      // 71: instanceof [Ljava/lang/Object;
      // 74: ifne 89
      // 77: new java/io/IOException
      // 7a: dup
      // 7b: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 7e: bipush 50
      // 80: aaload
      // 81: invokespecial java/io/IOException.<init> (Ljava/lang/String;)V
      // 84: athrow
      // 85: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 88: athrow
      // 89: aload 2
      // 8a: checkcast [Ljava/lang/Object;
      // 8d: astore 3
      // 8e: aload 3
      // 8f: bipush 1
      // 90: aaload
      // 91: instanceof [B
      // 94: ifeq a7
      // 97: aload 3
      // 98: bipush 3
      // 99: aaload
      // 9a: instanceof [B
      // 9d: ifne ba
      // a0: goto a7
      // a3: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // a6: athrow
      // a7: new java/io/IOException
      // aa: dup
      // ab: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // ae: sipush 131
      // b1: aaload
      // b2: invokespecial java/io/IOException.<init> (Ljava/lang/String;)V
      // b5: athrow
      // b6: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // b9: athrow
      // ba: new java/math/BigInteger
      // bd: dup
      // be: aload 3
      // bf: bipush 1
      // c0: aaload
      // c1: checkcast [B
      // c4: invokespecial java/math/BigInteger.<init> ([B)V
      // c7: astore 4
      // c9: new java/math/BigInteger
      // cc: dup
      // cd: aload 3
      // ce: bipush 3
      // cf: aaload
      // d0: checkcast [B
      // d3: invokespecial java/math/BigInteger.<init> ([B)V
      // d6: astore 5
      // d8: bipush 2
      // d9: anewarray 862
      // dc: dup
      // dd: bipush 0
      // de: aload 4
      // e0: aastore
      // e1: dup
      // e2: bipush 1
      // e3: aload 5
      // e5: aastore
      // e6: areturn
      // try (64 -> 74): 74 java/io/IOException
      // try (79 -> 89): 90 java/io/IOException
      // try (84 -> 99): 99 java/io/IOException
   }

   private static String b(String param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: astore 1
      // 002: aload 1
      // 003: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 006: astore 11
      // 008: aload 11
      // 00a: bipush 9
      // 00c: aaload
      // 00d: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
      // 010: ifeq 119
      // 013: new java/lang/StringBuffer
      // 016: dup
      // 017: aload 1
      // 018: invokevirtual java/lang/String.length ()I
      // 01b: invokespecial java/lang/StringBuffer.<init> (I)V
      // 01e: astore 2
      // 01f: getstatic com/l7tech/common/io/CertUtils.n Ljava/util/regex/Pattern;
      // 022: aload 1
      // 023: invokevirtual java/util/regex/Pattern.matcher (Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
      // 026: astore 3
      // 027: bipush 0
      // 028: istore 4
      // 02a: aload 3
      // 02b: invokevirtual java/util/regex/Matcher.find ()Z
      // 02e: ifeq 105
      // 031: bipush 1
      // 032: istore 4
      // 034: aload 3
      // 035: bipush 2
      // 036: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 039: invokestatic com/l7tech/util/HexUtils.unHexDump (Ljava/lang/String;)[B
      // 03c: astore 5
      // 03e: new com/l7tech/common/io/X500DirectoryString
      // 041: dup
      // 042: aload 5
      // 044: invokespecial com/l7tech/common/io/X500DirectoryString.<init> ([B)V
      // 047: invokevirtual com/l7tech/common/io/X500DirectoryString.getContents ()Ljava/lang/String;
      // 04a: astore 6
      // 04c: aload 6
      // 04e: ifnull 0ef
      // 051: new java/lang/StringBuilder
      // 054: dup
      // 055: aload 6
      // 057: invokevirtual java/lang/String.length ()I
      // 05a: bipush 2
      // 05b: imul
      // 05c: invokespecial java/lang/StringBuilder.<init> (I)V
      // 05f: astore 7
      // 061: aload 6
      // 063: invokevirtual java/lang/String.toCharArray ()[C
      // 066: astore 8
      // 068: bipush 0
      // 069: istore 9
      // 06b: iload 9
      // 06d: aload 8
      // 06f: arraylength
      // 070: if_icmpge 0c0
      // 073: aload 8
      // 075: iload 9
      // 077: caload
      // 078: istore 10
      // 07a: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 07d: bipush 127
      // 07f: aaload
      // 080: iload 10
      // 082: invokevirtual java/lang/String.indexOf (I)I
      // 085: bipush -1
      // 086: if_icmpgt 0a3
      // 089: bipush 35
      // 08b: iload 10
      // 08d: if_icmpne 0b2
      // 090: goto 097
      // 093: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 096: athrow
      // 097: iload 9
      // 099: ifne 0b2
      // 09c: goto 0a3
      // 09f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0a2: athrow
      // 0a3: aload 7
      // 0a5: bipush 92
      // 0a7: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 0aa: pop
      // 0ab: goto 0b2
      // 0ae: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0b1: athrow
      // 0b2: aload 7
      // 0b4: iload 10
      // 0b6: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 0b9: pop
      // 0ba: iinc 9 1
      // 0bd: goto 06b
      // 0c0: aload 7
      // 0c2: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 0c5: astore 6
      // 0c7: aload 6
      // 0c9: getstatic java/util/Locale.US Ljava/util/Locale;
      // 0cc: invokevirtual java/lang/String.toUpperCase (Ljava/util/Locale;)Ljava/lang/String;
      // 0cf: getstatic java/util/Locale.US Ljava/util/Locale;
      // 0d2: invokevirtual java/lang/String.toLowerCase (Ljava/util/Locale;)Ljava/lang/String;
      // 0d5: astore 6
      // 0d7: aload 6
      // 0d9: getstatic java/text/Normalizer$Form.NFKD Ljava/text/Normalizer$Form;
      // 0dc: invokestatic java/text/Normalizer.normalize (Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;
      // 0df: astore 6
      // 0e1: aload 3
      // 0e2: aload 2
      // 0e3: aload 6
      // 0e5: invokestatic java/util/regex/Matcher.quoteReplacement (Ljava/lang/String;)Ljava/lang/String;
      // 0e8: invokevirtual java/util/regex/Matcher.appendReplacement (Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
      // 0eb: pop
      // 0ec: goto 102
      // 0ef: aload 3
      // 0f0: aload 2
      // 0f1: aload 3
      // 0f2: bipush 2
      // 0f3: invokevirtual java/util/regex/Matcher.group (I)Ljava/lang/String;
      // 0f6: invokedynamic makeConcatWithConstants (Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "#\u0001" ]
      // 0fb: invokestatic java/util/regex/Matcher.quoteReplacement (Ljava/lang/String;)Ljava/lang/String;
      // 0fe: invokevirtual java/util/regex/Matcher.appendReplacement (Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
      // 101: pop
      // 102: goto 02a
      // 105: iload 4
      // 107: ifeq 115
      // 10a: aload 3
      // 10b: aload 2
      // 10c: invokevirtual java/util/regex/Matcher.appendTail (Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
      // 10f: pop
      // 110: aload 2
      // 111: invokevirtual java/lang/StringBuffer.toString ()Ljava/lang/String;
      // 114: astore 1
      // 115: goto 119
      // 118: astore 2
      // 119: aload 1
      // 11a: areturn
      // try (74 -> 83): 84 java/io/IOException
      // try (68 -> 76): 77 java/io/IOException
      // try (61 -> 71): 72 java/io/IOException
      // try (10 -> 131): 132 java/io/IOException
   }

   public static PrivateKeyEntry loadPrivateKey(Callable<InputStream> param0, String param1, char[] param2, CertUtils.AliasPicker param3, char[] param4) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, AliasNotFoundException, UnrecoverableKeyException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: invokestatic java/security/KeyStore.getInstance (Ljava/lang/String;)Ljava/security/KeyStore;
      // 004: astore 5
      // 006: aconst_null
      // 007: astore 6
      // 009: aload 0
      // 00a: invokeinterface java/util/concurrent/Callable.call ()Ljava/lang/Object; 1
      // 00f: checkcast java/io/InputStream
      // 012: astore 6
      // 014: aload 5
      // 016: aload 6
      // 018: aload 2
      // 019: invokevirtual java/security/KeyStore.load (Ljava/io/InputStream;[C)V
      // 01c: aload 6
      // 01e: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/io/Closeable;)V
      // 021: goto 03f
      // 024: astore 7
      // 026: aload 7
      // 028: athrow
      // 029: astore 7
      // 02b: new java/security/KeyStoreException
      // 02e: dup
      // 02f: aload 7
      // 031: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/Throwable;)V
      // 034: athrow
      // 035: astore 8
      // 037: aload 6
      // 039: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljava/io/Closeable;)V
      // 03c: aload 8
      // 03e: athrow
      // 03f: new java/util/ArrayList
      // 042: dup
      // 043: invokespecial java/util/ArrayList.<init> ()V
      // 046: astore 7
      // 048: aload 5
      // 04a: invokevirtual java/security/KeyStore.aliases ()Ljava/util/Enumeration;
      // 04d: astore 8
      // 04f: aload 8
      // 051: invokeinterface java/util/Enumeration.hasMoreElements ()Z 1
      // 056: ifeq 083
      // 059: aload 8
      // 05b: invokeinterface java/util/Enumeration.nextElement ()Ljava/lang/Object; 1
      // 060: checkcast java/lang/String
      // 063: astore 9
      // 065: aload 5
      // 067: aload 9
      // 069: invokevirtual java/security/KeyStore.isKeyEntry (Ljava/lang/String;)Z
      // 06c: ifeq 080
      // 06f: aload 7
      // 071: aload 9
      // 073: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 078: pop
      // 079: goto 080
      // 07c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 07f: athrow
      // 080: goto 04f
      // 083: aload 7
      // 085: invokeinterface java/util/List.size ()I 1
      // 08a: bipush 1
      // 08b: if_icmple 0cc
      // 08e: aload 3
      // 08f: ifnull 0cc
      // 092: goto 099
      // 095: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 098: athrow
      // 099: aload 3
      // 09a: aload 7
      // 09c: aload 7
      // 09e: invokeinterface java/util/List.size ()I 1
      // 0a3: anewarray 1271
      // 0a6: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 0ab: checkcast [Ljava/lang/String;
      // 0ae: invokeinterface com/l7tech/common/io/CertUtils$AliasPicker.selectAlias ([Ljava/lang/String;)Ljava/lang/String; 2
      // 0b3: astore 9
      // 0b5: aload 9
      // 0b7: ifnonnull 0f7
      // 0ba: new com/l7tech/common/io/AliasNotFoundException
      // 0bd: dup
      // 0be: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 0c1: bipush 97
      // 0c3: aaload
      // 0c4: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 0c7: athrow
      // 0c8: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0cb: athrow
      // 0cc: aload 7
      // 0ce: invokeinterface java/util/List.size ()I 1
      // 0d3: ifle 0e6
      // 0d6: aload 7
      // 0d8: bipush 0
      // 0d9: invokeinterface java/util/List.get (I)Ljava/lang/Object; 2
      // 0de: checkcast java/lang/String
      // 0e1: astore 9
      // 0e3: goto 0f7
      // 0e6: new com/l7tech/common/io/AliasNotFoundException
      // 0e9: dup
      // 0ea: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 0ed: astore 12
      // 0ef: aload 12
      // 0f1: bipush 5
      // 0f2: aaload
      // 0f3: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 0f6: athrow
      // 0f7: aload 5
      // 0f9: aload 9
      // 0fb: invokevirtual java/security/KeyStore.getCertificateChain (Ljava/lang/String;)[Ljava/security/cert/Certificate;
      // 0fe: astore 10
      // 100: aload 10
      // 102: ifnull 113
      // 105: aload 10
      // 107: arraylength
      // 108: bipush 1
      // 109: if_icmpge 12e
      // 10c: goto 113
      // 10f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 112: athrow
      // 113: new com/l7tech/common/io/AliasNotFoundException
      // 116: dup
      // 117: aload 9
      // 119: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 11c: sipush 203
      // 11f: aaload
      // 120: swap
      // 121: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 126: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 129: athrow
      // 12a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 12d: athrow
      // 12e: aload 10
      // 130: bipush 0
      // 131: aaload
      // 132: instanceof java/security/cert/X509Certificate
      // 135: ifne 158
      // 138: new com/l7tech/common/io/AliasNotFoundException
      // 13b: dup
      // 13c: aload 9
      // 13e: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 141: bipush 101
      // 143: aaload
      // 144: swap
      // 145: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 148: bipush 63
      // 14a: aaload
      // 14b: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 150: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 153: athrow
      // 154: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 157: athrow
      // 158: aload 5
      // 15a: aload 9
      // 15c: aload 4
      // 15e: invokevirtual java/security/KeyStore.getKey (Ljava/lang/String;[C)Ljava/security/Key;
      // 161: astore 11
      // 163: aload 11
      // 165: ifnull 177
      // 168: aload 11
      // 16a: instanceof java/security/PrivateKey
      // 16d: ifne 18a
      // 170: goto 177
      // 173: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 176: athrow
      // 177: new com/l7tech/common/io/AliasNotFoundException
      // 17a: dup
      // 17b: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 17e: sipush 206
      // 181: aaload
      // 182: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 185: athrow
      // 186: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 189: athrow
      // 18a: new java/security/KeyStore$PrivateKeyEntry
      // 18d: dup
      // 18e: aload 11
      // 190: checkcast java/security/PrivateKey
      // 193: aload 10
      // 195: invokespecial java/security/KeyStore$PrivateKeyEntry.<init> (Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;)V
      // 198: areturn
      // try (5 -> 13): 16 java/io/IOException
      // try (5 -> 13): 16 java/security/NoSuchAlgorithmException
      // try (5 -> 13): 16 java/security/cert/CertificateException
      // try (5 -> 13): 19 java/lang/Exception
      // try (5 -> 13): 25 null
      // try (16 -> 26): 25 null
      // try (44 -> 52): 53 java/io/IOException
      // try (56 -> 62): 63 java/io/IOException
      // try (74 -> 83): 83 java/io/IOException
      // try (107 -> 113): 114 java/io/IOException
      // try (109 -> 126): 126 java/io/IOException
      // try (128 -> 146): 146 java/io/IOException
      // try (153 -> 158): 159 java/io/IOException
      // try (155 -> 168): 168 java/io/IOException
   }

   public static byte[] getVerifierBytes(byte[] var0, byte[] var1, byte[] var2, byte[] var3) throws NoSuchAlgorithmException {
      String[] var6 = x;
      MessageDigest var4 = MessageDigest.getInstance(var6[237]);
      var4.update(var0);
      var4.update(var1);
      var4.update(var2);
      var4.update(var3);
      MessageDigest var5 = MessageDigest.getInstance(var6[159]);
      var5.update(var0);
      var5.update(var4.digest());
      return var5.digest();
   }

   public static String[] getCrlUrls(X509Certificate var0) throws IOException {
      LinkedHashSet var1 = new LinkedHashSet();
      var1.addAll(b(var0));
      var1.addAll(c(var0));
      return var1.toArray(new String[var1.size()]);
   }

   private static Set<String> b(X509Certificate param0) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: new java/util/LinkedHashSet
      // 03: dup
      // 04: invokespecial java/util/LinkedHashSet.<init> ()V
      // 07: astore 1
      // 08: aload 0
      // 09: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 0c: sipush 238
      // 0f: aaload
      // 10: invokevirtual java/security/cert/X509Certificate.getExtensionValue (Ljava/lang/String;)[B
      // 13: astore 2
      // 14: aload 2
      // 15: ifnull 7c
      // 18: aload 2
      // 19: arraylength
      // 1a: ifle 7c
      // 1d: goto 24
      // 20: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 23: athrow
      // 24: aload 2
      // 25: invokestatic org/bouncycastle/cert/jcajce/JcaX509ExtensionUtils.parseExtensionValue ([B)Lorg/bouncycastle/asn1/ASN1Primitive;
      // 28: invokestatic org/bouncycastle/asn1/x509/CRLDistPoint.getInstance (Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/CRLDistPoint;
      // 2b: astore 3
      // 2c: aload 3
      // 2d: invokevirtual org/bouncycastle/asn1/x509/CRLDistPoint.getDistributionPoints ()[Lorg/bouncycastle/asn1/x509/DistributionPoint;
      // 30: astore 4
      // 32: aload 4
      // 34: arraylength
      // 35: istore 5
      // 37: bipush 0
      // 38: istore 6
      // 3a: iload 6
      // 3c: iload 5
      // 3e: if_icmpge 7c
      // 41: aload 4
      // 43: iload 6
      // 45: aaload
      // 46: astore 7
      // 48: aload 7
      // 4a: invokevirtual org/bouncycastle/asn1/x509/DistributionPoint.getDistributionPoint ()Lorg/bouncycastle/asn1/x509/DistributionPointName;
      // 4d: astore 8
      // 4f: aload 8
      // 51: ifnull 76
      // 54: aload 8
      // 56: invokevirtual org/bouncycastle/asn1/x509/DistributionPointName.getType ()I
      // 59: ifne 76
      // 5c: goto 63
      // 5f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 62: athrow
      // 63: aload 1
      // 64: aload 8
      // 66: invokestatic com/l7tech/common/io/CertUtils.a (Lorg/bouncycastle/asn1/x509/DistributionPointName;)Ljava/util/Set;
      // 69: invokeinterface java/util/Set.addAll (Ljava/util/Collection;)Z 2
      // 6e: pop
      // 6f: goto 76
      // 72: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 75: athrow
      // 76: iinc 6 1
      // 79: goto 3a
      // 7c: aload 1
      // 7d: areturn
      // try (10 -> 15): 16 java/io/IOException
      // try (40 -> 45): 46 java/io/IOException
      // try (42 -> 53): 54 java/io/IOException
   }

   private static Set<String> a(DistributionPointName var0) {
      LinkedHashSet var1 = new LinkedHashSet();
      GeneralName[] var2 = GeneralNames.getInstance(var0.getName()).getNames();

      for (GeneralName var6 : var2) {
         var1.add(var6.getName().toString().trim());
      }

      return var1;
   }

   private static Set<String> c(X509Certificate var0) throws IOException {
      LinkedHashSet var1 = new LinkedHashSet();
      String[] var4 = x;
      byte[] var2 = var0.getExtensionValue(var4[3]);

      try {
         if (var2 == null || var2.length <= 0) {
            return var1;
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      ASN1Primitive var3 = JcaX509ExtensionUtils.parseExtensionValue(var2);

      try {
         if (!(var3 instanceof ASN1String)) {
            throw new IOException(x[73]);
         }

         var1.add(var3.toString());
      } catch (IOException var5) {
         throw a(var5);
      }

      return var1;
   }

   public static String[] getAuthorityInformationAccessUris(X509Certificate var0, String var1) throws CertificateException {
      LinkedHashSet var2 = new LinkedHashSet();

      try {
         X509CertificateHolder var3 = new X509CertificateHolder(var0.getEncoded());
         if (var3.getExtensions() == null) {
            return new String[0];
         }

         AuthorityInformationAccess var4 = AuthorityInformationAccess.fromExtensions(var3.getExtensions());
         if (var4 != null) {
            AccessDescription[] var5 = var4.getAccessDescriptions();

            try {
               if (var5.length == 0) {
                  throw new CertificateException(x[41] + getCertIdentifyingInformation(var0) + x[10]);
               }
            } catch (IOException var7) {
               throw a(var7);
            }

            var2.addAll(a(var0, var1, var5));
         }
      } catch (IOException var8) {
         String var10002 = getCertIdentifyingInformation(var0);
         String[] var6 = x;
         throw new CertificateException(var6[129] + var10002 + var6[20], var8);
      }

      return var2.toArray(new String[var2.size()]);
   }

   private static Set<String> a(X509Certificate var0, String var1, AccessDescription[] var2) throws CertificateException {
      LinkedHashSet var3 = new LinkedHashSet();

      for (AccessDescription var7 : var2) {
         if (var1.equals(var7.getAccessMethod().getId())) {
            DERIA5String var8 = a(var7, var0);

            try {
               if (var8 != null) {
                  var3.add(var8.getString());
               }
            } catch (CertificateException var9) {
               throw a(var9);
            }
         }
      }

      return var3;
   }

   private static DERIA5String a(AccessDescription var0, X509Certificate var1) throws CertificateException {
      GeneralName var2 = var0.getAccessLocation();
      if (var2.getTagNo() == 6) {
         ASN1Encodable var3 = var2.getName();

         try {
            if (!(var3 instanceof DERIA5String)) {
               throw new CertificateException(x[41] + getCertIdentifyingInformation(var1) + x[242] + var3.getClass().getName());
            }
         } catch (CertificateException var4) {
            throw a(var4);
         }

         return (DERIA5String)var3;
      } else {
         return null;
      }
   }

   public static AuthorityKeyIdentifier getAKI(X509Certificate var0) throws CertificateEncodingException, NoSuchAlgorithmException {
      try {
         if (var0.getVersion() < 3) {
            return null;
         }
      } catch (CertificateEncodingException var1) {
         throw a(var1);
      }

      return d(var0);
   }

   public static AuthorityKeyIdentifier getAKI(X509CRL var0) throws CRLException, IOException {
      try {
         if (var0.getVersion() < 2) {
            return null;
         }
      } catch (CRLException var1) {
         throw a(var1);
      }

      return a(var0);
   }

   public static String getAKIKeyIdentifier(AuthorityKeyIdentifier var0) {
      String var1 = null;
      byte[] var2 = var0.getKeyIdentifier();
      if (var2 != null) {
         var1 = HexUtils.encodeBase64(var2, true);
      }

      return var1;
   }

   public static BigInteger getAKIAuthorityCertSerialNumber(AuthorityKeyIdentifier var0) {
      return var0.getAuthorityCertSerialNumber();
   }

   public static String getAKIAuthorityCertIssuer(AuthorityKeyIdentifier var0) throws CertificateException {
      String var1 = null;
      GeneralNames var2 = var0.getAuthorityCertIssuer();
      if (var2 != null) {
         for (GeneralName var6 : var2.getNames()) {
            if (var6.getTagNo() == 4) {
               try {
                  ASN1Primitive var10002 = var6.getName().toASN1Primitive();
                  String[] var11 = x;
                  X500Principal var7 = new X500Principal(var10002.getEncoded(var11[149]));
                  var1 = var7.getName(var11[54]);
               } catch (IllegalArgumentException | IOException var10) {
                  String[] var8 = x;
                  throw new CertificateException(var8[123], var10);
               }
            }
         }

         try {
            if (var1 == null) {
               throw new CertificateException(x[99]);
            }
         } catch (IllegalArgumentException var9) {
            throw a(var9);
         }
      }

      return var1;
   }

   public static String getCertIdentifyingInformation(X509Certificate var0) {
      String var1;
      try {
         var1 = getSubjectDN(var0);
      } catch (Exception var3) {
         var1 = "";
      }

      return var1;
   }

   private static AuthorityKeyIdentifier d(X509Certificate var0) throws NoSuchAlgorithmException, CertificateEncodingException {
      JcaX509ExtensionUtils var1 = new JcaX509ExtensionUtils();
      return var1.createAuthorityKeyIdentifier(var0);
   }

   private static AuthorityKeyIdentifier a(X509CRL var0) throws CRLException, IOException {
      return AuthorityKeyIdentifier.fromExtensions(new X509CRLHolder(var0.getEncoded()).getExtensions());
   }

   private static CertUtils.DnFormatter b() {
      CertUtils.DnFormatter var0 = new c();

      try {
         ServiceLoader var1 = ServiceLoader.load(CertUtils.DnFormatter.class);
         Iterator var2 = var1.iterator();
         if (var2.hasNext()) {
            var0 = (CertUtils.DnFormatter)var2.next();
         }
      } catch (ServiceConfigurationError var3) {
         e.log(Level.SEVERE, x[262], var3);
      }

      return var0;
   }

   private static String a(Pattern var0, String var1) {
      try {
         if (!var0.matcher(var1).matches()) {
            throw new IllegalArgumentException(x[22]);
         } else {
            return var1;
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }
   }

   public static NameValuePair convertFromX509GeneralName(@NotNull X509GeneralName var0) throws UnsupportedX509GeneralNameException {
      try {
         if (var0 == null) {
            b(0);
         }
      } catch (UnsupportedX509GeneralNameException var1) {
         throw a(var1);
      }

      try {
         switch (com.l7tech.common.io.b.a[var0.getType().ordinal()]) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
               return new NameValuePair(var0.getType().getUserFriendlyName(), var0.getStringVal());
            case 6:
               return b(var0);
            case 7:
            case 8:
            case 9:
               return a(var0);
         }
      } catch (UnsupportedX509GeneralNameException var2) {
         throw a(var2);
      }

      throw new UnsupportedX509GeneralNameException(x[107]);
   }

   @NotNull
   private static NameValuePair a(@NotNull X509GeneralName var0) {
      try {
         if (var0 == null) {
            b(1);
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      String var1 = null;
      if (var0.getStringVal() != null) {
         var1 = var0.getStringVal();
      } else {
         var1 = HexUtils.encodeBase64(var0.getDerVal(), true);
      }

      return new NameValuePair(var0.getType().getUserFriendlyName(), var1);
   }

   @NotNull
   private static NameValuePair b(@NotNull X509GeneralName param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnonnull 0f
      // 04: bipush 2
      // 05: invokestatic com/l7tech/common/io/CertUtils.b (I)V
      // 08: goto 0f
      // 0b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0e: athrow
      // 0f: aconst_null
      // 10: astore 1
      // 11: aload 0
      // 12: invokevirtual com/l7tech/common/io/X509GeneralName.getDerVal ()[B
      // 15: ifnull 8a
      // 18: aload 0
      // 19: invokevirtual com/l7tech/common/io/X509GeneralName.getDerVal ()[B
      // 1c: astore 2
      // 1d: aload 2
      // 1e: arraylength
      // 1f: bipush 6
      // 21: if_icmplt 4f
      // 24: aload 2
      // 25: bipush 0
      // 26: baload
      // 27: bipush 4
      // 28: if_icmpne 4f
      // 2b: goto 32
      // 2e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 31: athrow
      // 32: aload 2
      // 33: bipush 1
      // 34: baload
      // 35: bipush 4
      // 36: if_icmpeq 62
      // 39: goto 40
      // 3c: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3f: athrow
      // 40: aload 2
      // 41: bipush 1
      // 42: baload
      // 43: bipush 16
      // 45: if_icmpeq 62
      // 48: goto 4f
      // 4b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4e: athrow
      // 4f: new java/lang/IllegalArgumentException
      // 52: dup
      // 53: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 56: sipush 212
      // 59: aaload
      // 5a: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 5d: athrow
      // 5e: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 61: athrow
      // 62: aconst_null
      // 63: astore 3
      // 64: aload 2
      // 65: bipush 2
      // 66: aload 2
      // 67: arraylength
      // 68: invokestatic java/util/Arrays.copyOfRange ([BII)[B
      // 6b: invokestatic java/net/InetAddress.getByAddress ([B)Ljava/net/InetAddress;
      // 6e: astore 3
      // 6f: aload 3
      // 70: invokevirtual java/net/InetAddress.getHostAddress ()Ljava/lang/String;
      // 73: astore 1
      // 74: goto 87
      // 77: astore 4
      // 79: new java/lang/IllegalArgumentException
      // 7c: dup
      // 7d: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 80: bipush 17
      // 82: aaload
      // 83: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 86: athrow
      // 87: goto 8f
      // 8a: aload 0
      // 8b: invokevirtual com/l7tech/common/io/X509GeneralName.getStringVal ()Ljava/lang/String;
      // 8e: astore 1
      // 8f: new com/l7tech/util/NameValuePair
      // 92: dup
      // 93: getstatic com/l7tech/common/io/X509GeneralName$Type.iPAddress Lcom/l7tech/common/io/X509GeneralName$Type;
      // 96: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getUserFriendlyName ()Ljava/lang/String;
      // 99: aload 1
      // 9a: invokespecial com/l7tech/util/NameValuePair.<init> (Ljava/lang/String;Ljava/lang/String;)V
      // 9d: areturn
      // try (35 -> 50): 50 java/net/UnknownHostException
      // try (27 -> 40): 41 java/net/UnknownHostException
      // try (19 -> 32): 33 java/net/UnknownHostException
      // try (15 -> 24): 25 java/net/UnknownHostException
      // try (0 -> 4): 5 java/net/UnknownHostException
      // try (54 -> 64): 65 java/net/UnknownHostException
   }

   public static X509GeneralName convertToX509GeneralName(@NotNull NameValuePair param0) throws UnsupportedX509GeneralNameException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: ifnonnull 00f
      // 004: bipush 3
      // 005: invokestatic com/l7tech/common/io/CertUtils.b (I)V
      // 008: goto 00f
      // 00b: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 00e: athrow
      // 00f: aload 0
      // 010: invokevirtual com/l7tech/util/NameValuePair.getKey ()Ljava/lang/String;
      // 013: ifnull 024
      // 016: aload 0
      // 017: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 01a: ifnonnull 02a
      // 01d: goto 024
      // 020: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 023: athrow
      // 024: aconst_null
      // 025: areturn
      // 026: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 029: athrow
      // 02a: aload 0
      // 02b: invokevirtual com/l7tech/util/NameValuePair.getKey ()Ljava/lang/String;
      // 02e: astore 1
      // 02f: getstatic com/l7tech/common/io/X509GeneralName$Type.rfc822Name Lcom/l7tech/common/io/X509GeneralName$Type;
      // 032: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getUserFriendlyName ()Ljava/lang/String;
      // 035: aload 1
      // 036: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 039: ifeq 055
      // 03c: new com/l7tech/common/io/X509GeneralName
      // 03f: dup
      // 040: getstatic com/l7tech/common/io/X509GeneralName$Type.rfc822Name Lcom/l7tech/common/io/X509GeneralName$Type;
      // 043: getstatic com/l7tech/common/io/CertUtils.rfc822Pattern Ljava/util/regex/Pattern;
      // 046: aload 0
      // 047: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 04a: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/util/regex/Pattern;Ljava/lang/String;)Ljava/lang/String;
      // 04d: invokespecial com/l7tech/common/io/X509GeneralName.<init> (Lcom/l7tech/common/io/X509GeneralName$Type;Ljava/lang/String;)V
      // 050: areturn
      // 051: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 054: athrow
      // 055: getstatic com/l7tech/common/io/X509GeneralName$Type.dNSName Lcom/l7tech/common/io/X509GeneralName$Type;
      // 058: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getUserFriendlyName ()Ljava/lang/String;
      // 05b: aload 1
      // 05c: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 05f: ifeq 074
      // 062: getstatic com/l7tech/common/io/CertUtils.dnsNamePattern Ljava/util/regex/Pattern;
      // 065: aload 0
      // 066: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 069: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/util/regex/Pattern;Ljava/lang/String;)Ljava/lang/String;
      // 06c: invokestatic com/l7tech/common/io/X509GeneralName.fromDnsName (Ljava/lang/String;)Lcom/l7tech/common/io/X509GeneralName;
      // 06f: areturn
      // 070: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 073: athrow
      // 074: getstatic com/l7tech/common/io/X509GeneralName$Type.directoryName Lcom/l7tech/common/io/X509GeneralName$Type;
      // 077: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getUserFriendlyName ()Ljava/lang/String;
      // 07a: aload 1
      // 07b: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 07e: ifeq 09a
      // 081: new com/l7tech/common/io/X509GeneralName
      // 084: dup
      // 085: getstatic com/l7tech/common/io/X509GeneralName$Type.directoryName Lcom/l7tech/common/io/X509GeneralName$Type;
      // 088: getstatic com/l7tech/common/io/CertUtils.directoryNamePattern Ljava/util/regex/Pattern;
      // 08b: aload 0
      // 08c: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 08f: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/util/regex/Pattern;Ljava/lang/String;)Ljava/lang/String;
      // 092: invokespecial com/l7tech/common/io/X509GeneralName.<init> (Lcom/l7tech/common/io/X509GeneralName$Type;Ljava/lang/String;)V
      // 095: areturn
      // 096: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 099: athrow
      // 09a: getstatic com/l7tech/common/io/X509GeneralName$Type.uniformResourceIdentifier Lcom/l7tech/common/io/X509GeneralName$Type;
      // 09d: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getUserFriendlyName ()Ljava/lang/String;
      // 0a0: aload 1
      // 0a1: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0a4: ifeq 0c0
      // 0a7: new com/l7tech/common/io/X509GeneralName
      // 0aa: dup
      // 0ab: getstatic com/l7tech/common/io/X509GeneralName$Type.uniformResourceIdentifier Lcom/l7tech/common/io/X509GeneralName$Type;
      // 0ae: getstatic com/l7tech/common/io/CertUtils.urlPattern Ljava/util/regex/Pattern;
      // 0b1: aload 0
      // 0b2: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 0b5: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/util/regex/Pattern;Ljava/lang/String;)Ljava/lang/String;
      // 0b8: invokespecial com/l7tech/common/io/X509GeneralName.<init> (Lcom/l7tech/common/io/X509GeneralName$Type;Ljava/lang/String;)V
      // 0bb: areturn
      // 0bc: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0bf: athrow
      // 0c0: getstatic com/l7tech/common/io/X509GeneralName$Type.iPAddress Lcom/l7tech/common/io/X509GeneralName$Type;
      // 0c3: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getUserFriendlyName ()Ljava/lang/String;
      // 0c6: aload 1
      // 0c7: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0ca: ifeq 0fb
      // 0cd: aload 0
      // 0ce: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 0d1: bipush 0
      // 0d2: invokestatic com/l7tech/util/InetAddressUtil.looksLikeIpAddressV4OrV6 (Ljava/lang/String;Z)Z
      // 0d5: ifeq 0eb
      // 0d8: goto 0df
      // 0db: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0de: athrow
      // 0df: aload 0
      // 0e0: invokevirtual com/l7tech/util/NameValuePair.getValue ()Ljava/lang/String;
      // 0e3: invokestatic com/l7tech/common/io/X509GeneralName.fromIpAddress (Ljava/lang/String;)Lcom/l7tech/common/io/X509GeneralName;
      // 0e6: areturn
      // 0e7: invokestatic com/l7tech/common/io/CertUtils.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0ea: athrow
      // 0eb: new java/lang/IllegalArgumentException
      // 0ee: dup
      // 0ef: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 0f2: astore 2
      // 0f3: aload 2
      // 0f4: bipush 16
      // 0f6: aaload
      // 0f7: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 0fa: athrow
      // 0fb: new com/l7tech/common/io/UnsupportedX509GeneralNameException
      // 0fe: dup
      // 0ff: getstatic com/l7tech/common/io/CertUtils.x [Ljava/lang/String;
      // 102: bipush 52
      // 104: aaload
      // 105: invokespecial com/l7tech/common/io/UnsupportedX509GeneralNameException.<init> (Ljava/lang/String;)V
      // 108: athrow
      // try (0 -> 4): 5 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (7 -> 13): 14 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (10 -> 18): 18 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (23 -> 37): 37 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (39 -> 50): 50 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (52 -> 66): 66 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (68 -> 82): 82 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (84 -> 94): 95 com/l7tech/common/io/UnsupportedX509GeneralNameException
      // try (89 -> 101): 101 com/l7tech/common/io/UnsupportedX509GeneralNameException
   }

   public static List<X509GeneralName> extractX509GeneralNamesFromList(List<String> var0) throws UnsupportedX509GeneralNameException {
      ArrayList var1 = null;
      if (var0 != null) {
         for (String var3 : var0) {
            String[] var4 = var3.split(":", 2);

            label32: {
               try {
                  if (var4.length != 2) {
                     continue;
                  }

                  if (var1 != null) {
                     break label32;
                  }
               } catch (UnsupportedX509GeneralNameException var7) {
                  throw a(var7);
               }

               var1 = new ArrayList();
            }

            X509GeneralName var5 = convertToX509GeneralName(new NameValuePair(var4[0], var4[1]));

            try {
               if (var5 != null) {
                  var1.add(var5);
               }
            } catch (UnsupportedX509GeneralNameException var6) {
               throw a(var6);
            }
         }
      }

      return var1;
   }

   public static boolean isSubjectAlternativeNameTypeSupported(@NotNull X509GeneralName.Type var0) {
      try {
         if (var0 == null) {
            b(4);
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      return r.contains(var0);
   }

   public static boolean isSelfIssued(@NotNull X509Certificate var0) {
      try {
         if (var0 == null) {
            b(5);
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      return isEqualDNCanonical(var0.getSubjectDN().toString(), var0.getIssuerDN().toString());
   }

   public static boolean verifySelfSignedCertSignature(@NotNull X509Certificate var0) {
      try {
         if (var0 == null) {
            b(6);
         }
      } catch (CertificateException var3) {
         throw a(var3);
      }

      try {
         PublicKey var1 = var0.getPublicKey();
         var0.verify(var1);
         return true;
      } catch (CertificateException | NoSuchAlgorithmException | SignatureException | InvalidKeyException | NoSuchProviderException var2) {
         e.log(Level.WARNING, () -> x[156] + ExceptionUtils.getMessage(var2));
         return false;
      }
   }

   static {
      String[] var5 = new String[265];
      int var3 = 0;
      String var2 = "z\u001e3\u000bc:mgwTIB#ik)\u0001b{oiA\u0000H%=ldN\u0002\u00066r.aH\u000fG7qz%uG\u0013r$.u_\u0006P+ykw\u0003\u0015\u0014l,8+\u0015]\u0016l, 4\u001cZ\u0011q- 4\u0003]\u0005i0ykw5r*x.v]\fE+{g`II@+qk%I\u0006C1=`jYIE-szdD\u0007\u0006#sw%N\fT6thlN\bR'n \u0006Dt){wA*E-p i\u001a\u001dC!u uF\u0000^lykcL\u001cJ6E;5\u0014\u001f\u0017\u000f|vUL\u001dN\u000ex`bY\u0001\u0013p#qgaD\u001d_bnzd_\u001d\u0006&|z`\u0002\u001ba2{b|{qE\u0006T+iw%D\u0007@-ocdY\u0000I,=ofN\fU1=k}Y\fH1tak\r\u0000UbxcuY\u0010\b\u0010\u001a\fr``\r\u0019C0pgqY\fB|\r\u001a\frz%]\u001bC1x`q\u0013\u001d\u000bo0#(h'bbO]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b%\u000bo0#(h'bbSKR\r*c\u0010IGCd*g\u0016X.Wh8s\u0007NZ(\u0000D\u000bo!s,v`jZ\u0007\u0006!x|q\r\u000fO,zkw]\u001bO,i.cB\u001bK#i4%\u0019o,koiD\r\u0006\u000bM.DI\rT'n}%K\u0006T/|z\u0018q0r`b\r H'iOaI\u001bC1n.cB\u001bK#i\t\u0014l( 7\u0014G\u0017v\b\u0014l( 1\u0003]\u0012){b|{qE\u0006T+iw%D\u0007@-ocdY\u0000I,=ofN\fU1=k}Y\fH1tak\u0003\u0004E'oz\u000eo,koiD\r\u0006\u0004r|hL\u001d\u0010b\u0011\\.vX\u000bV0tc`\rAvk\u0011e7ox`\r\u0019I+sz(zI\u000e\u001b4\u0002{l1x\u0019|#\u007flD|r07Z\fJ\u0002g;‗/\u0006F\u001b}}uyP\u0017xl0S.m2GogO(wY\u000b{3#X\u0006M\u0002\u0001l\b\u0014l( 1\u0003X\u0014'k+nmjC\u000fO%h|`IIp\u000f'.Ve(\u000bs=`jYIG4|giL\u000bJ''.\ru'ogdAIH7pl`_\u0013t\u0011\\.uX\u000bJ+~.`U\u0019I,x`q\u0011e7ox`\r\u0019I+sz(zI\u000e\u001a4\be-{ofY\u0006T\u000fh-s#WH\u0019S&toqD\u0006H\u001az17&^LD\\\u00030T5\u0000P\rmA}X\u0006T\fkA}/\u000fk\u0006(.cD\u0007A'o~wD\u0007R_\u000e\u001ej%^\u00104]s`Ud\u0000\u0013goG>(\u00145\u000b\u001e9(Y\u00055\u000f\u001eFRXq\u0012z?A Y^4\rk5U)VX[\u001fA}/q\u001e\r\u0019 S~\u001c\u0014}#0tD\u00003\u0016o$R(qAzkAUYp5]\u001e`R+q\u001a{i4$ e\u0003=md]\bD.x5%@\b^+p{h\r\u0019G6u.iH\u0007A6u3\u001fU7s vH\nS0tz|\u0003\fElXMUX\u000bJ+~E`T K2q\ft\u0011\\.vY\u001bC,zzm\re'ozlK\u0000E#ik%v\u0013u+z`dY\u001cT'=oiJ\u0006T+ifh\ta\u000bKKKc(k\u0007\u0004~w-7\fb\u0011\\.gL\u001aCb5^,\u000fk\u0006(.cD\u0007A'o~wD\u0007R\ru'ogdAIH7pl`_\u000fb+okfY\u0006T;=@d@\f\u001b\u0014\u0017l/ =\u0019Y\bs,=0\u0019P\bs37+\u001c+o,~aw_\fE6=z|]\f\u00065ukk\r\rC!rjlC\u000e\u0006\u0010NOU_\u0000P#ikNH\u0010\b\u001f\u000bo0#(o,a\u000bS.W~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0 s,n{u]\u0006T6xj%u\\\u0016{ZkkH\u001bG.SohHIr;mk\u0013p#qgaD\u001d_bnzd_\u001d\u0006&|z`\te\u0003SAKd*g\u000e\u0004E'oz\u0013u+z`dY\u001cT'=oiJ\u0006T+ifh\u0003k\u0006(@r*x.v]\fE+{g`IIM'd.aB\fUbsaq\r\u000bC.r`b\r\u001dIbif`\r\u001aV'~gcD\fBb~kwY\u0000@+~oqHI}\u0015\u0014l,8+\u0015]\u0016l, 4\u001cZ\u0011q- 4\u0003]\u0011u\n\\#4\r\u000fO,zkw]\u001bO,i\u0002\u001cb\u0017\u0017l. 3\u0003X\bv3?+\u0019[\bp3?4\u0003[\bs\r\u0006+n.kB\u001d\u0006\u001a3;5\u0014\u0012\u0017l. 3\u0003X\bw3;+\u001aG\u0012z3?\u001f\u000bo0#(o,a\u000bS.W~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0\u001b\u001a\u0001x|qD\u000fO!|z`\r\u0019G0ngkJIC0oaw\u0013\u0003{x=\fb\u0011\\.gL\u001aCb5^,&\u0006bmowL\u0004C6x|v\u0017I\u000e\u0019|#\u007flD|r07X\u0006@\u000e}'RvQEZf4\u0017e\u0010Q.AD\u001aR0tlpY\u0000I,=^jD\u0007R1\u001eE-p i\u001a\u001dC!u fB\u0004K-s }\u0018Y\u001f\u0012oasD\rC0!e\u0003=md]\bD.x5%X\u0007J+pgqH\r\u00062|zm\r\u0005C,zzm0h'i}fL\u0019Cb^\\I\r<t\u000e=k}Y\fH1tak\r\u001fG.hk%D\u001a\u0006,rz%LIu6ogkJ\u0018{b~akY\bO,n.kBIU7\u007fd`N\u001d\u0006\u0006S\u0018u7\u007fd`N\u001d\u0006\u0003qz`_\u0007G6tx`\r'G/x\u0002e\f\u0003hm\\\u000f^w-7FH\u001bR+{gfL\u001dC\u0017{b~akY\bO,n.kBIO1n{`_Ib\f\u001b\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=co0#(\u0000-m'd.aL\u001dGbsaq\r\u001fG.tj%\u0005\fH!owuY\u0000I,=`jYIU7m~j_\u001dC&4\u001bo,koiD\r\u0006!t~mH\u001b\u00061hgqHIH#pk%\n\u0004i\u0001N^0m'd.aL\u001dGbsaq\r\u000fI7sj%\u0005\u0004O1ngkJID'zgk\r\u0006Tbx`a\r\u0004G0vkw\u0004\u001az17&^LD\\\u00030T5\u0000P\rmA}X\u0006T\fkA}/\u0005i0ykwXr*x.v]\fE+{g`IIM'd)v\r;u\u0003=cjI\u001cJ7n.aD\u000f@'o}%K\u001bI/=zmL\u001d\u0006-{.qE\f\u00062hliD\n\u0006)xw%D\u0007\u00066uk%N\fT6thlN\bR'=U E-p i\u001a\u001dC!u vH\nS0tz|\u0003\u000fO2n `C\bD.xj\u0011e7ox`\r\u0019I+sz(zI\u000e\u001a4\u0006T#jf`U\u0003Dt)\rb\u0011\\.u_\u0000K'=&U\u0004f\u000bo0#(o,a\u000bS.Kh>\u0006\u0001X\\Qd/o\u0001\\Z@\r;c\u0013HKVyD\u000bo0#Y^C\u000e\u0019|#\u007flD|r07.\u00025U\u001f63/\u00045Uh0#(\u0000Dc\fY.Kh>\u0006\u0001X\\Qd/o\u0001\\Z@\r;c\u0013HKVyD\u000bo0#.e#s)q\r\u000eC6=]NdI@-o.kB\u0007\u000b\u0010NO%]\u001cD.tm%F\f_bt`%N\fT6=)%m'd.aL\u001dGbsaq\r\u001fG.tj%\u0005\u0000H4|blIIM'd.v]\fEk\u001dP'ogcT:C.{]lJ\u0007C&^kwY:O%soqX\u001bC(r*x.DA\u0000G1MgfF\fTbyga\r\u0007I6=|`Y\u001cT,=ok\r\bJ+|}+\u0019\u000bo0#(h'bb^KWy `\u000b^OQhD\u000bo0#(e-hba\r\u0007I6=hlC\r\u0006+n}pH\u001b\u0006#n.aD\u001bC!iawTIH#pk+\u0003u\u0017S r*x.fH\u001bR+{gfL\u001dCb~fdD\u0007\u0006$r|%L\u0005O#n.>g0z{hH\u0007Rb{aw\r)h-i@pA\u0005\u00062||d@\fR'o.\"\b\u001a\u0001brh%\b\u001a\bgn.hX\u001aRbsaq\r\u000bCbs{iA\rc,~guE\fTbR`iTƗxj51?v\b\u000b8@'^LD\\r07.\u0003D{h44-\u0012S\tm51?\u0005A\u0019xFo(W(\u000b\u0018-#<\u0000Gy<<*#\nA\u000fh6\">\u0010S{>8U5\u0000Pgo[S~\u001f\u0014\u000fh4N,\u0012A\u000e}'Ud\u0000\u0013goG>(\u0014D\b\u001dc/!\u000bN\u000ek7%)\u0016T{>8U5\u0000Pgo[S~\u001f\u0014\u000fh4&:\u0017S\u000e\u001eAj/\u0004@\u0019j2&:\u00172GogO(wY\u000b{0 ZSH\u0002d:&,\u0007B\ny 4E\u00024ZgF>(\u0014(\u000b\u0004@u7P@\fk\"r-\u0002V\u000e}'Ud\u0000\u0013goG>(\u0014D\b\u001dc/!\u000bN\u000ek7%)\u0016T\u001c\u0002@r vY\u000b{\\#Cp\u0012\u0014?4%-\u0012S}#0tD\u00003\u0016o$#+r\u0017\u0007f;)-\u0004C\rn&3?mF{>8U5\u0000Pgo[S~\u001f\u0014\u000fh41,\u0005V\u001c\u001eA1-\u0005V\u001c\u0019|#\u007flD|r07(\u00036Xc9(\"\u0005@\fi158\u0017F\u0019\u0002@r vY\u000b{\\#Cp\u0012\u0014?4$,\u0004V\u000e}'--\u0005V\u001c\u0019|#\u007flD|r07(\u00036Xc9(\"\u0005@\fi158\u0017F\u0019\u0002@r vY\u000b{\\#Cp\u0012\u0014?4$,\u0004V\u0002\u0018u7\u007fd`N\u001d\u0006\u0003qz`_\u0007G6tx`\r'G/x\u0002\bh\u001aq0r`b\r1\u0013r$I`C\fT#q@d@\f\u0006\u0016d~`)m'd.aL\u001dGbsaq\r\u001fG.tj%\u0005\u001cH1h~uB\u001bR'y.nH\u0010\u00066d~`\u0004\u0006Dt){wA\u000ec:i %F\f_bh}dJ\f\t\u0014l( 7\u0014G\u0017{\u0013e'ozlK\u0000E#ik%~\u0000A,t`b\u000et'zgvY\fT'y.LiT2e'ozlK\u0000E#ik%N\u0001G+s.fB\u0007R#t`v\r\b\u0006,r`(uG\u0013r$.fH\u001bR+{gfL\u001dC6e#s`jYIA'i.qE\f\u0006\u0001OB%D\u0007@-ocdY\u0000I,=hwB\u0004\u00066uk%N\fT6thlN\bR''.^\fu\u0007OGDa's\u000f_KW!\u000bo0#(h'bb^KWy `\u000b^OQhIt\u0007L[@~=\u000bo0#(\t\u0014l( 7\u0014G\u0017w\no,koiD\r\u0006\u0006S\u0002\nb\u001co,koiD\r\u0006\u0012XC%O\fA+s!`C\r\u0006/||nH\u001b#\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=cbOKTx,u\u00160#(\u0000D)e-hba\r\u0007I6=~d_\u001aCbt}vX\fTb|}%I\u0000T'~zj_\u0010\u0006,|c`\u0003\u001d\u000bo0#(h'bbO]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b\u0003b\u0011\\\u0010\u001a\fr``\r\u0019C0pgqY\fB|\u0007\ni?R9\u0013R\rb'~guE\fTbR`iT\u001ec0oaw\r\u0019T-~kv^\u0000H%=m`_\u001dO$tmdY\f\u0006\u0019\no\u0011R#=\u0015\\\u001fo,?o,~aw_\fE6=cjI\u001cJ7n.j_IC:makH\u0007RbiwuHIQ*x`%I\fE-ygkJIt\u0011\\^wD\u001fG6xE`TG\ro.qkbL\u0005\u0006\u0006S4%\n@e#s`jYIA'i.qE\f\u0006\u0011hloH\nRb\\bqH\u001bH#igsHIh#pkv\r\u000fT-p.qE\f\u0006!x|qD\u000fO!|z`\u0017I}/E-p i\u001a\u001dC!u uF\u0000^lygvL\u000bJ'Nfd_\fB\u0001x|qD\u000fO!|z`k\bE6r||\u000eG.zawD\u001dN/=3%h*\u0011u\n\\#4\r\u000fO,zkw]\u001bO,i#\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=cbOKTx,u\u00160#(\u0000D6e#s`jYIA'i.qE\f\u0006\r^]U\r\u0000H$r|hL\u001dO-s.c_\u0006Kbif`\r\nC0igcD\nG6x4%\u001f\u000bo0#(o,a\u000bS.A~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0\u001eE-p!i\u001a\u001dC!u!fB\u0004K-s!lBFe'ozPY\u0000J1\u0003{x=\t\u0014l( 7\u0014G\u0017vVh-=}pCGU'~{wD\u001d_lxm+h*v7\u007fblN\"C;TcuAIG4|giL\u000bJ'&.rD\u0005Jbsaq\r\bR6xcuYIR-=ipH\u001aUbXM%N\u001cT4x.kL\u0004C1\u0015E-sx`_\u001d\u0014\f|c`{\bJ7x^dD\u001b'x#qij_\u0000R*p.8\r,ejFo(W(\u000b\u0018-#<pB\u000fj\"4Y^\u0015\n>9'\tm'd.p^\bA'\u0018\u000bo0#(o,a\u000bS.]\u0018Y\u001fb^\\I\u0000D\u000bo0M\u000e}!3-\u0012S}n6Sys@\u000e\u0019|#\u007flD|r07Y\u0003I{9,\"7\u0018_[k '&\u0005A\u0019xF>(\u0014\b\u000b$@U5\u0000PGo{S,\u0006@\u000e} &:\u00172\ni@r!\u0004@\u0003b\u0007O\t\u0014l( 7\u0014G\u0015w~h-=}pCGU'~{wD\u001d_lxm+h*v7\u007fblN\"C;TcuAIE-s}q_\u001cE6r|%K\u001bI/=l|Y\f}\u001f=osL\u0000J#\u007fb`\rAG!~kv^IB'sg`I@\u001dbjgiAIH-i.dY\u001dC/mz%Y\u0006\u0006%hkv^Ic\u0001=mp_\u001fCbsohH\u001a\tb\fN.KL\u0004C\u007f\fO1NkiK U1hka\u0011b+zgqL\u0005\u0006\u0011tikL\u001dS0x\u000fc\u0006T.UL\u001bR;=@d@\f\u001b4u+z`dY\u001cT'=xdA\u0000B#igjCII$=zmHIU'qh(^\u0000A,xj%N\fT6=hdD\u0005C&'\re'ozlK\u0000E#ik%v\u0010b\u0011\\.vX\u000bV0tc`\rAvk\u0007u\n\\#0\u001c[\u0004R;mk\u0004u\n\\?\bm'd.qT\u0019C\u0003N'e\u0019\u000bo0#(h'bb^KWy `\u000b^OQhD\u000bo0#\tm'd.p^\bA'\u0003b\fL\u000bo\u0012=OaI\u001bC1n3nxj5Ud\u0000\u0013goG>(\u0014C{>Fo(W(\u000b\u0018-#<p2GogO(wY\u000b{A#/pC}#0tD\u00003\u0016o$$X\u00045\bk7&^lD|#0t5\u0000P{>FO(w\b\u000b8-#<p2goGo(WY\u000b{A#X\u00072goGo(WY\u000b{@'!\u0005s\u0010T4%\u0002zh\u0017{b~akY\bO,n.kBIO1n{`_Ib\f\u0004u\n\\?\u000ec:i %F\f_bh}dJ\f\u0019U7s vH\nS0tz|\u0003\u0011\u0013r$ ]\u0018Y\u001f\txw\u0003t\u0011\\\u0007\u0014l( 1\u0003]\u0002\nb\u001cs,|liHIR-=mmH\nMb~{w[\f\u0006,|c`\u0017I\u0018E-sx`_\u001dr-E;5\u0014.C,x|dA'G/x!\u000bo0#(h'bb^KWy `\u000b^OQhIt\u0007L[@~=\u000bo0#(\be-{ofY\u0006T\u0004i\u0001N^\u0007u\u0017O@D`,\u0003Dt)\u0002o\u0012\ft\u0011\\.vY\u001bC,zzm\r~v->%l\rB0x}v\u0010%O1N{gG\fE6\\bqH\u001bH#igsH'G/xZ|]\fu7m~j_\u001dC&\u0018{b~akY\bO,n.kBIU7\u007fd`N\u001d\u0006\u0006S\r\u001a\frz%]\u001bC1x`q\u0013\u000bA'skwL\u0005h#pk\u0006o1n{`_\u001d\u000bo0#(h'bbY]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b\u0002c\u0001\u001eE-sx`_\u001do2\\ja_\fU1/@d@\fp#q{`}\bO0\b\u0014l( 1\u0003]\u0010\u0016\u000bo0#(h'bbE;5\u0014Ie\u0010Q#(\u0000D\u000b\u0003N'e\u0011e7ox`\r\u0019I+sz(zI\u000e\u001b4\u0004V#t|0d'zgk\r9c\u000f=cd_\u0002C0=~wH\u001aC,i\"%O\u001cRbx`a\r\u0004G0vkw\r\u0004O1ngkJ\u0002zlBr*x.v]\fE+{g`II@+qk%I\u0006C1=`jYIE-szdD\u0007\u0006#=m`_\u001dO$tmdY\f\u0006!uolCI@-o.dA\u0000G1=\u0003k\u0006(\u0011b#io%h\u0007E+mf`_\u0004C,i3r*x.v]\fE+{g`IIG.tov\r\rI'n.kB\u001d\u0006!r`qL\u0000Hb|.u_\u0000P#ik%F\f_l\u0005~l(><\bm'd.qT\u0019C\u0017e\u0010Q.AD\u001aR0tlpY\u0000I,=^jD\u0007R1\rb\u0011\\.u_\u0000K'=&U\u0004\to1n{`IIR-\u0018q0r`b\r\u0000v\u0003yjwH\u001aUbx`fB\rO,z\u0007\u0014l( 1\u0003\\\ne7ox`\r\u0007G/x\b\u0014l( 1\u0003]\u0014\u001b\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=co0#(\u0000\u0006o1n{`_\u0012\u0017l. 3\u0003X\bw3;+\u001aG\u0012z3?\u0002c\u0001\u001eo,koiD\r\u0006\u0012XC(K\u0006T/|z%N\fT6thlN\bR'\t\u0014l( 7\u0014G\u0015w\u0002{l\u000bc:mgwTIB#ik\u0005s\u0010T4%\u001fU7s vH\nS0tz|\u0003\fElXMUX\u000bJ+~E`T K2q\u0005\u0006 tzv\t\u0014l( 7\u0014G\u0015s\u001aE-sx`_\u001d`0rc]\u0018Y\u001f\u0005x``_\bJ\f|c`\u0005\u001a tz%\u0005u\n\\#4\u0002e\f\to1n{`IIR-\bb\u0007V#LC\u000fI\na\u0007SKWl=o\rS\u001d\u000bo0#(h'bbY]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b\u0006T#jf`U\u0007u\n\\#0\u001c[\t\u0014l( 7\u0014G\u0015s\u0004s\u0010Q3\bo\fTZLl%unh-=}pCGU'~{wD\u001d_lxm+h*v7\u007fblN\"C;TcuAIE-s}q_\u001cE6r|%K\u001bI/=l|Y\f}\u001f=osL\u0000J#\u007fb`\u0016IQ+qb%C\u0006Rb|zqH\u0004V6=zj\r\u000eS'n}%h*\u0006!h|sHIH#pkvb{b|{qE\u0006T+iw%D\u0007@-ocdY\u0000I,=ofN\fU1=k}Y\fH1tak\r\u0001G1=ofN\fU1=j`^\nT+mzlB\u0007\u0006.rmdY\u0000I,=ylY\u0001\u0006+smj_\u001bC!i.kL\u0004CbiwuHI\rm'd.DJ\u001bC'pkkY%e\u0011O.aB\fUbsaq\r\bV2xow\r\u001dIb\u007fk%},kbx`fB\rC&\u001eE-p i\u001a\u001dC!u fB\u0004K-s }\u0018Y\u001f\u0012oasD\rC0\u001a~l(><\r\u0019T-kgaH\u001b\u0006,rz%K\u0006S,y.\"\u0011u7s.@nIV7\u007fblNIM'd\u0019\u000e}']Va\u0015r\u000eN'Z\u0005G\f}4QRd=n\u001d3$\b\u0014l( 1\u0003]\u0015^\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=cbOKTx,u\u00160#(\u0000Dz17&^LD\\\u00030T5\u0000P\rmA}X\u0006T\fkA}/\u0000D\u000bo0KKiIe\u0007OZLk e\u0003IK%\u007f,w\u0017X]Q\u0000D\u000bo0\u0011d#ngf\r\nI,nzwL\u0000H6n\u0003t\u0011\\\ne7ox`\r\u0007G/x\u001cs,|liHIR-=mmH\nMb~{w[\f\u0006,|c`\u0017I'\u000bo0#(o,a\u000bS.Kh>\u0006\u0001X\\Qd/o\u0001\\Z@\r;c\u0013HKVyD\u000bo0#\fc\u000f\\GIl-b\u0010X]V\u0013t\u0011\\.uX\u000bJ+~.`U\u0019I,x`q\u001f\u000bo0#(o,a\u000bS.A~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0\u0005~l(><\u0010m'd.@C\nO2ukw@\fH6\u0011d#ngf\r\nI,nzwL\u0000H6n\"c0oaw\r\u0005I#ygkJIb,[aw@\bR6x|%^\fT4tm`\u0003";
      int var4 = "z\u001e3\u000bc:mgwTIB#ik)\u0001b{oiA\u0000H%=ldN\u0002\u00066r.aH\u000fG7qz%uG\u0013r$.u_\u0006P+ykw\u0003\u0015\u0014l,8+\u0015]\u0016l, 4\u001cZ\u0011q- 4\u0003]\u0005i0ykw5r*x.v]\fE+{g`II@+qk%I\u0006C1=`jYIE-szdD\u0007\u0006#sw%N\fT6thlN\bR'n \u0006Dt){wA*E-p i\u001a\u001dC!u uF\u0000^lykcL\u001cJ6E;5\u0014\u001f\u0017\u000f|vUL\u001dN\u000ex`bY\u0001\u0013p#qgaD\u001d_bnzd_\u001d\u0006&|z`\u0002\u001ba2{b|{qE\u0006T+iw%D\u0007@-ocdY\u0000I,=ofN\fU1=k}Y\fH1tak\r\u0000UbxcuY\u0010\b\u0010\u001a\fr``\r\u0019C0pgqY\fB|\r\u001a\frz%]\u001bC1x`q\u0013\u001d\u000bo0#(h'bbO]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b%\u000bo0#(h'bbSKR\r*c\u0010IGCd*g\u0016X.Wh8s\u0007NZ(\u0000D\u000bo!s,v`jZ\u0007\u0006!x|q\r\u000fO,zkw]\u001bO,i.cB\u001bK#i4%\u0019o,koiD\r\u0006\u000bM.DI\rT'n}%K\u0006T/|z\u0018q0r`b\r H'iOaI\u001bC1n.cB\u001bK#i\t\u0014l( 7\u0014G\u0017v\b\u0014l( 1\u0003]\u0012){b|{qE\u0006T+iw%D\u0007@-ocdY\u0000I,=ofN\fU1=k}Y\fH1tak\u0003\u0004E'oz\u000eo,koiD\r\u0006\u0004r|hL\u001d\u0010b\u0011\\.vX\u000bV0tc`\rAvk\u0011e7ox`\r\u0019I+sz(zI\u000e\u001b4\u0002{l1x\u0019|#\u007flD|r07Z\fJ\u0002g;‗/\u0006F\u001b}}uyP\u0017xl0S.m2GogO(wY\u000b{3#X\u0006M\u0002\u0001l\b\u0014l( 1\u0003X\u0014'k+nmjC\u000fO%h|`IIp\u000f'.Ve(\u000bs=`jYIG4|giL\u000bJ''.\ru'ogdAIH7pl`_\u0013t\u0011\\.uX\u000bJ+~.`U\u0019I,x`q\u0011e7ox`\r\u0019I+sz(zI\u000e\u001a4\be-{ofY\u0006T\u000fh-s#WH\u0019S&toqD\u0006H\u001az17&^LD\\\u00030T5\u0000P\rmA}X\u0006T\fkA}/\u000fk\u0006(.cD\u0007A'o~wD\u0007R_\u000e\u001ej%^\u00104]s`Ud\u0000\u0013goG>(\u00145\u000b\u001e9(Y\u00055\u000f\u001eFRXq\u0012z?A Y^4\rk5U)VX[\u001fA}/q\u001e\r\u0019 S~\u001c\u0014}#0tD\u00003\u0016o$R(qAzkAUYp5]\u001e`R+q\u001a{i4$ e\u0003=md]\bD.x5%@\b^+p{h\r\u0019G6u.iH\u0007A6u3\u001fU7s vH\nS0tz|\u0003\fElXMUX\u000bJ+~E`T K2q\ft\u0011\\.vY\u001bC,zzm\re'ozlK\u0000E#ik%v\u0013u+z`dY\u001cT'=oiJ\u0006T+ifh\ta\u000bKKKc(k\u0007\u0004~w-7\fb\u0011\\.gL\u001aCb5^,\u000fk\u0006(.cD\u0007A'o~wD\u0007R\ru'ogdAIH7pl`_\u000fb+okfY\u0006T;=@d@\f\u001b\u0014\u0017l/ =\u0019Y\bs,=0\u0019P\bs37+\u001c+o,~aw_\fE6=z|]\f\u00065ukk\r\rC!rjlC\u000e\u0006\u0010NOU_\u0000P#ikNH\u0010\b\u001f\u000bo0#(o,a\u000bS.W~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0 s,n{u]\u0006T6xj%u\\\u0016{ZkkH\u001bG.SohHIr;mk\u0013p#qgaD\u001d_bnzd_\u001d\u0006&|z`\te\u0003SAKd*g\u000e\u0004E'oz\u0013u+z`dY\u001cT'=oiJ\u0006T+ifh\u0003k\u0006(@r*x.v]\fE+{g`IIM'd.aB\fUbsaq\r\u000bC.r`b\r\u001dIbif`\r\u001aV'~gcD\fBb~kwY\u0000@+~oqHI}\u0015\u0014l,8+\u0015]\u0016l, 4\u001cZ\u0011q- 4\u0003]\u0011u\n\\#4\r\u000fO,zkw]\u001bO,i\u0002\u001cb\u0017\u0017l. 3\u0003X\bv3?+\u0019[\bp3?4\u0003[\bs\r\u0006+n.kB\u001d\u0006\u001a3;5\u0014\u0012\u0017l. 3\u0003X\bw3;+\u001aG\u0012z3?\u001f\u000bo0#(o,a\u000bS.W~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0\u001b\u001a\u0001x|qD\u000fO!|z`\r\u0019G0ngkJIC0oaw\u0013\u0003{x=\fb\u0011\\.gL\u001aCb5^,&\u0006bmowL\u0004C6x|v\u0017I\u000e\u0019|#\u007flD|r07X\u0006@\u000e}'RvQEZf4\u0017e\u0010Q.AD\u001aR0tlpY\u0000I,=^jD\u0007R1\u001eE-p i\u001a\u001dC!u fB\u0004K-s }\u0018Y\u001f\u0012oasD\rC0!e\u0003=md]\bD.x5%X\u0007J+pgqH\r\u00062|zm\r\u0005C,zzm0h'i}fL\u0019Cb^\\I\r<t\u000e=k}Y\fH1tak\r\u001fG.hk%D\u001a\u0006,rz%LIu6ogkJ\u0018{b~akY\bO,n.kBIU7\u007fd`N\u001d\u0006\u0006S\u0018u7\u007fd`N\u001d\u0006\u0003qz`_\u0007G6tx`\r'G/x\u0002e\f\u0003hm\\\u000f^w-7FH\u001bR+{gfL\u001dC\u0017{b~akY\bO,n.kBIO1n{`_Ib\f\u001b\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=co0#(\u0000-m'd.aL\u001dGbsaq\r\u001fG.tj%\u0005\fH!owuY\u0000I,=`jYIU7m~j_\u001dC&4\u001bo,koiD\r\u0006!t~mH\u001b\u00061hgqHIH#pk%\n\u0004i\u0001N^0m'd.aL\u001dGbsaq\r\u000fI7sj%\u0005\u0004O1ngkJID'zgk\r\u0006Tbx`a\r\u0004G0vkw\u0004\u001az17&^LD\\\u00030T5\u0000P\rmA}X\u0006T\fkA}/\u0005i0ykwXr*x.v]\fE+{g`IIM'd)v\r;u\u0003=cjI\u001cJ7n.aD\u000f@'o}%K\u001bI/=zmL\u001d\u0006-{.qE\f\u00062hliD\n\u0006)xw%D\u0007\u00066uk%N\fT6thlN\bR'=U E-p i\u001a\u001dC!u vH\nS0tz|\u0003\u000fO2n `C\bD.xj\u0011e7ox`\r\u0019I+sz(zI\u000e\u001a4\u0006T#jf`U\u0003Dt)\rb\u0011\\.u_\u0000K'=&U\u0004f\u000bo0#(o,a\u000bS.Kh>\u0006\u0001X\\Qd/o\u0001\\Z@\r;c\u0013HKVyD\u000bo0#Y^C\u000e\u0019|#\u007flD|r07.\u00025U\u001f63/\u00045Uh0#(\u0000Dc\fY.Kh>\u0006\u0001X\\Qd/o\u0001\\Z@\r;c\u0013HKVyD\u000bo0#.e#s)q\r\u000eC6=]NdI@-o.kB\u0007\u000b\u0010NO%]\u001cD.tm%F\f_bt`%N\fT6=)%m'd.aL\u001dGbsaq\r\u001fG.tj%\u0005\u0000H4|blIIM'd.v]\fEk\u001dP'ogcT:C.{]lJ\u0007C&^kwY:O%soqX\u001bC(r*x.DA\u0000G1MgfF\fTbyga\r\u0007I6=|`Y\u001cT,=ok\r\bJ+|}+\u0019\u000bo0#(h'bb^KWy `\u000b^OQhD\u000bo0#(e-hba\r\u0007I6=hlC\r\u0006+n}pH\u001b\u0006#n.aD\u001bC!iawTIH#pk+\u0003u\u0017S r*x.fH\u001bR+{gfL\u001dCb~fdD\u0007\u0006$r|%L\u0005O#n.>g0z{hH\u0007Rb{aw\r)h-i@pA\u0005\u00062||d@\fR'o.\"\b\u001a\u0001brh%\b\u001a\bgn.hX\u001aRbsaq\r\u000bCbs{iA\rc,~guE\fTbR`iTƗxj51?v\b\u000b8@'^LD\\r07.\u0003D{h44-\u0012S\tm51?\u0005A\u0019xFo(W(\u000b\u0018-#<\u0000Gy<<*#\nA\u000fh6\">\u0010S{>8U5\u0000Pgo[S~\u001f\u0014\u000fh4N,\u0012A\u000e}'Ud\u0000\u0013goG>(\u0014D\b\u001dc/!\u000bN\u000ek7%)\u0016T{>8U5\u0000Pgo[S~\u001f\u0014\u000fh4&:\u0017S\u000e\u001eAj/\u0004@\u0019j2&:\u00172GogO(wY\u000b{0 ZSH\u0002d:&,\u0007B\ny 4E\u00024ZgF>(\u0014(\u000b\u0004@u7P@\fk\"r-\u0002V\u000e}'Ud\u0000\u0013goG>(\u0014D\b\u001dc/!\u000bN\u000ek7%)\u0016T\u001c\u0002@r vY\u000b{\\#Cp\u0012\u0014?4%-\u0012S}#0tD\u00003\u0016o$#+r\u0017\u0007f;)-\u0004C\rn&3?mF{>8U5\u0000Pgo[S~\u001f\u0014\u000fh41,\u0005V\u001c\u001eA1-\u0005V\u001c\u0019|#\u007flD|r07(\u00036Xc9(\"\u0005@\fi158\u0017F\u0019\u0002@r vY\u000b{\\#Cp\u0012\u0014?4$,\u0004V\u000e}'--\u0005V\u001c\u0019|#\u007flD|r07(\u00036Xc9(\"\u0005@\fi158\u0017F\u0019\u0002@r vY\u000b{\\#Cp\u0012\u0014?4$,\u0004V\u0002\u0018u7\u007fd`N\u001d\u0006\u0003qz`_\u0007G6tx`\r'G/x\u0002\bh\u001aq0r`b\r1\u0013r$I`C\fT#q@d@\f\u0006\u0016d~`)m'd.aL\u001dGbsaq\r\u001fG.tj%\u0005\u001cH1h~uB\u001bR'y.nH\u0010\u00066d~`\u0004\u0006Dt){wA\u000ec:i %F\f_bh}dJ\f\t\u0014l( 7\u0014G\u0017{\u0013e'ozlK\u0000E#ik%~\u0000A,t`b\u000et'zgvY\fT'y.LiT2e'ozlK\u0000E#ik%N\u0001G+s.fB\u0007R#t`v\r\b\u0006,r`(uG\u0013r$.fH\u001bR+{gfL\u001dC6e#s`jYIA'i.qE\f\u0006\u0001OB%D\u0007@-ocdY\u0000I,=hwB\u0004\u00066uk%N\fT6thlN\bR''.^\fu\u0007OGDa's\u000f_KW!\u000bo0#(h'bb^KWy `\u000b^OQhIt\u0007L[@~=\u000bo0#(\t\u0014l( 7\u0014G\u0017w\no,koiD\r\u0006\u0006S\u0002\nb\u001co,koiD\r\u0006\u0012XC%O\fA+s!`C\r\u0006/||nH\u001b#\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=cbOKTx,u\u00160#(\u0000D)e-hba\r\u0007I6=~d_\u001aCbt}vX\fTb|}%I\u0000T'~zj_\u0010\u0006,|c`\u0003\u001d\u000bo0#(h'bbO]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b\u0003b\u0011\\\u0010\u001a\fr``\r\u0019C0pgqY\fB|\u0007\ni?R9\u0013R\rb'~guE\fTbR`iT\u001ec0oaw\r\u0019T-~kv^\u0000H%=m`_\u001dO$tmdY\f\u0006\u0019\no\u0011R#=\u0015\\\u001fo,?o,~aw_\fE6=cjI\u001cJ7n.j_IC:makH\u0007RbiwuHIQ*x`%I\fE-ygkJIt\u0011\\^wD\u001fG6xE`TG\ro.qkbL\u0005\u0006\u0006S4%\n@e#s`jYIA'i.qE\f\u0006\u0011hloH\nRb\\bqH\u001bH#igsHIh#pkv\r\u000fT-p.qE\f\u0006!x|qD\u000fO!|z`\u0017I}/E-p i\u001a\u001dC!u uF\u0000^lygvL\u000bJ'Nfd_\fB\u0001x|qD\u000fO!|z`k\bE6r||\u000eG.zawD\u001dN/=3%h*\u0011u\n\\#4\r\u000fO,zkw]\u001bO,i#\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=cbOKTx,u\u00160#(\u0000D6e#s`jYIA'i.qE\f\u0006\r^]U\r\u0000H$r|hL\u001dO-s.c_\u0006Kbif`\r\nC0igcD\nG6x4%\u001f\u000bo0#(o,a\u000bS.A~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0\u001eE-p!i\u001a\u001dC!u!fB\u0004K-s!lBFe'ozPY\u0000J1\u0003{x=\t\u0014l( 7\u0014G\u0017vVh-=}pCGU'~{wD\u001d_lxm+h*v7\u007fblN\"C;TcuAIG4|giL\u000bJ'&.rD\u0005Jbsaq\r\bR6xcuYIR-=ipH\u001aUbXM%N\u001cT4x.kL\u0004C1\u0015E-sx`_\u001d\u0014\f|c`{\bJ7x^dD\u001b'x#qij_\u0000R*p.8\r,ejFo(W(\u000b\u0018-#<pB\u000fj\"4Y^\u0015\n>9'\tm'd.p^\bA'\u0018\u000bo0#(o,a\u000bS.]\u0018Y\u001fb^\\I\u0000D\u000bo0M\u000e}!3-\u0012S}n6Sys@\u000e\u0019|#\u007flD|r07Y\u0003I{9,\"7\u0018_[k '&\u0005A\u0019xF>(\u0014\b\u000b$@U5\u0000PGo{S,\u0006@\u000e} &:\u00172\ni@r!\u0004@\u0003b\u0007O\t\u0014l( 7\u0014G\u0015w~h-=}pCGU'~{wD\u001d_lxm+h*v7\u007fblN\"C;TcuAIE-s}q_\u001cE6r|%K\u001bI/=l|Y\f}\u001f=osL\u0000J#\u007fb`\rAG!~kv^IB'sg`I@\u001dbjgiAIH-i.dY\u001dC/mz%Y\u0006\u0006%hkv^Ic\u0001=mp_\u001fCbsohH\u001a\tb\fN.KL\u0004C\u007f\fO1NkiK U1hka\u0011b+zgqL\u0005\u0006\u0011tikL\u001dS0x\u000fc\u0006T.UL\u001bR;=@d@\f\u001b4u+z`dY\u001cT'=xdA\u0000B#igjCII$=zmHIU'qh(^\u0000A,xj%N\fT6=hdD\u0005C&'\re'ozlK\u0000E#ik%v\u0010b\u0011\\.vX\u000bV0tc`\rAvk\u0007u\n\\#0\u001c[\u0004R;mk\u0004u\n\\?\bm'd.qT\u0019C\u0003N'e\u0019\u000bo0#(h'bb^KWy `\u000b^OQhD\u000bo0#\tm'd.p^\bA'\u0003b\fL\u000bo\u0012=OaI\u001bC1n3nxj5Ud\u0000\u0013goG>(\u0014C{>Fo(W(\u000b\u0018-#<p2GogO(wY\u000b{A#/pC}#0tD\u00003\u0016o$$X\u00045\bk7&^lD|#0t5\u0000P{>FO(w\b\u000b8-#<p2goGo(WY\u000b{A#X\u00072goGo(WY\u000b{@'!\u0005s\u0010T4%\u0002zh\u0017{b~akY\bO,n.kBIO1n{`_Ib\f\u0004u\n\\?\u000ec:i %F\f_bh}dJ\f\u0019U7s vH\nS0tz|\u0003\u0011\u0013r$ ]\u0018Y\u001f\txw\u0003t\u0011\\\u0007\u0014l( 1\u0003]\u0002\nb\u001cs,|liHIR-=mmH\nMb~{w[\f\u0006,|c`\u0017I\u0018E-sx`_\u001dr-E;5\u0014.C,x|dA'G/x!\u000bo0#(h'bb^KWy `\u000b^OQhIt\u0007L[@~=\u000bo0#(\be-{ofY\u0006T\u0004i\u0001N^\u0007u\u0017O@D`,\u0003Dt)\u0002o\u0012\ft\u0011\\.vY\u001bC,zzm\r~v->%l\rB0x}v\u0010%O1N{gG\fE6\\bqH\u001bH#igsH'G/xZ|]\fu7m~j_\u001dC&\u0018{b~akY\bO,n.kBIU7\u007fd`N\u001d\u0006\u0006S\r\u001a\frz%]\u001bC1x`q\u0013\u000bA'skwL\u0005h#pk\u0006o1n{`_\u001d\u000bo0#(h'bbY]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b\u0002c\u0001\u001eE-sx`_\u001do2\\ja_\fU1/@d@\fp#q{`}\bO0\b\u0014l( 1\u0003]\u0010\u0016\u000bo0#(h'bbE;5\u0014Ie\u0010Q#(\u0000D\u000b\u0003N'e\u0011e7ox`\r\u0019I+sz(zI\u000e\u001b4\u0004V#t|0d'zgk\r9c\u000f=cd_\u0002C0=~wH\u001aC,i\"%O\u001cRbx`a\r\u0004G0vkw\r\u0004O1ngkJ\u0002zlBr*x.v]\fE+{g`II@+qk%I\u0006C1=`jYIE-szdD\u0007\u0006#=m`_\u001dO$tmdY\f\u0006!uolCI@-o.dA\u0000G1=\u0003k\u0006(\u0011b#io%h\u0007E+mf`_\u0004C,i3r*x.v]\fE+{g`IIG.tov\r\rI'n.kB\u001d\u0006!r`qL\u0000Hb|.u_\u0000P#ik%F\f_l\u0005~l(><\bm'd.qT\u0019C\u0017e\u0010Q.AD\u001aR0tlpY\u0000I,=^jD\u0007R1\rb\u0011\\.u_\u0000K'=&U\u0004\to1n{`IIR-\u0018q0r`b\r\u0000v\u0003yjwH\u001aUbx`fB\rO,z\u0007\u0014l( 1\u0003\\\ne7ox`\r\u0007G/x\b\u0014l( 1\u0003]\u0014\u001b\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=co0#(\u0000\u0006o1n{`_\u0012\u0017l. 3\u0003X\bw3;+\u001aG\u0012z3?\u0002c\u0001\u001eo,koiD\r\u0006\u0012XC(K\u0006T/|z%N\fT6thlN\bR'\t\u0014l( 7\u0014G\u0015w\u0002{l\u000bc:mgwTIB#ik\u0005s\u0010T4%\u001fU7s vH\nS0tz|\u0003\fElXMUX\u000bJ+~E`T K2q\u0005\u0006 tzv\t\u0014l( 7\u0014G\u0015s\u001aE-sx`_\u001d`0rc]\u0018Y\u001f\u0005x``_\bJ\f|c`\u0005\u001a tz%\u0005u\n\\#4\u0002e\f\to1n{`IIR-\bb\u0007V#LC\u000fI\na\u0007SKWl=o\rS\u001d\u000bo0#(h'bbY]D\r9t\u000bKOQhIm\u0007D#(\u0000D\u000b\u0006T#jf`U\u0007u\n\\#0\u001c[\t\u0014l( 7\u0014G\u0015s\u0004s\u0010Q3\bo\fTZLl%unh-=}pCGU'~{wD\u001d_lxm+h*v7\u007fblN\"C;TcuAIE-s}q_\u001cE6r|%K\u001bI/=l|Y\f}\u001f=osL\u0000J#\u007fb`\u0016IQ+qb%C\u0006Rb|zqH\u0004V6=zj\r\u000eS'n}%h*\u0006!h|sHIH#pkvb{b|{qE\u0006T+iw%D\u0007@-ocdY\u0000I,=ofN\fU1=k}Y\fH1tak\r\u0001G1=ofN\fU1=j`^\nT+mzlB\u0007\u0006.rmdY\u0000I,=ylY\u0001\u0006+smj_\u001bC!i.kL\u0004CbiwuHI\rm'd.DJ\u001bC'pkkY%e\u0011O.aB\fUbsaq\r\bV2xow\r\u001dIb\u007fk%},kbx`fB\rC&\u001eE-p i\u001a\u001dC!u fB\u0004K-s }\u0018Y\u001f\u0012oasD\rC0\u001a~l(><\r\u0019T-kgaH\u001b\u0006,rz%K\u0006S,y.\"\u0011u7s.@nIV7\u007fblNIM'd\u0019\u000e}']Va\u0015r\u000eN'Z\u0005G\f}4QRd=n\u001d3$\b\u0014l( 1\u0003]\u0015^\u000bo0#(o,a\u000bS.Fh;r\u000b[GFl=cbOKTx,u\u00160#(\u0000Dz17&^LD\\\u00030T5\u0000P\rmA}X\u0006T\fkA}/\u0000D\u000bo0KKiIe\u0007OZLk e\u0003IK%\u007f,w\u0017X]Q\u0000D\u000bo0\u0011d#ngf\r\nI,nzwL\u0000H6n\u0003t\u0011\\\ne7ox`\r\u0007G/x\u001cs,|liHIR-=mmH\nMb~{w[\f\u0006,|c`\u0017I'\u000bo0#(o,a\u000bS.Kh>\u0006\u0001X\\Qd/o\u0001\\Z@\r;c\u0013HKVyD\u000bo0#\fc\u000f\\GIl-b\u0010X]V\u0013t\u0011\\.uX\u000bJ+~.`U\u0019I,x`q\u001f\u000bo0#(o,a\u000bS.A~(\u0006\u0012OGSl=cbVK\\\u0000D\u000bo0\u0005~l(><\u0010m'd.@C\nO2ukw@\fH6\u0011d#ngf\r\nI,nzwL\u0000H6n\"c0oaw\r\u0005I#ygkJIb,[aw@\bR6x|%^\fT4tm`\u0003"
         .length();
      char var1 = 3;
      int var16 = -1;

      label88:
      while (true) {
         byte var10000 = 72;
         String var10001 = var2.substring(++var16, var16 + var1);
         byte var10002 = -1;

         while (true) {
            String var27 = a(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var27;
                  if ((var16 += var1) >= var4) {
                     x = var5;
                     String[] var28 = x;
                     X509_OID_AIA_OCSP_URL = x[64];
                     CERT_PROP_DSA_PRIME_P = var28[210];
                     CERT_PROP_CRL_DISTRIBUTION_POINTS = var28[209];
                     CERT_PROP_OCSP = var28[182];
                     CERT_PROP_RSA_PUBLIC_EXPONENT = var28[31];
                     ALG_SHA1 = var28[161];
                     X509_OID_AUTHORITYKEYID = var28[221];
                     CERT_PROP_KEY_USAGE = var28[165];
                     c = var28[255];
                     PEM_CERT_END_MARKER = var28[164];
                     b = var28[117];
                     CERT_PROP_EXT_KEY_USAGE = var28[173];
                     CERT_PROP_DSA_BASE_P = var28[45];
                     CERT_PROP_EC_ORDER = var28[4];
                     w = var28[207];
                     PEM_CRL_END_MARKER = var28[197];
                     ALG_MD5 = var28[57];
                     FINGERPRINT_RAW_HEX = var28[236];
                     PEM_DSAKEY_BEGIN_MARKER = var28[258];
                     CERT_PROP_SERIAL_NUMBER = var28[47];
                     a = var28[137];
                     CERT_PROP_MD5_FINGERPRINT = var28[46];
                     X509_OID_NETSCAPE_CRL_URL = var28[59];
                     CERT_PROP_EC_CURVE_NAME = var28[214];
                     CERT_PROP_KEY_TYPE = var28[208];
                     X509_OID_KEY_USAGE_EXTENSION = var28[118];
                     PEM_RSAKEY_BEGIN_MARKER = var28[65];
                     FINGERPRINT_HEX = var28[198];
                     CERT_PROP_NOTAFTER_DATE = var28[223];
                     CERT_PROP_DSA_SUBPRIME_P = var28[23];
                     CERT_PROP_SAN = var28[105];
                     d = var28[14];
                     CERT_PROP_NOTBEFORE_DATE = var28[53];
                     CERT_PROP_ISSUED_TO = var28[211];
                     PEM_DSAKEY_END_MARKER = var28[193];
                     CERT_PROP_SIG_ALG = var28[42];
                     FINGERPRINT_BASE64URL = var28[6];
                     CERT_PROP_EC_CURVE_POINT_W_X = var28[32];
                     X509_OID_BASIC_CONSTRAINTS = var28[111];
                     CERT_PROP_RSA_STRENGTH = var28[40];
                     PEM_RSAKEY_END_MARKER = var28[13];
                     X509_OID_CRL_DISTRIBUTION_POINTS = var28[227];
                     PEM_CERT_BEGIN_MARKER = var28[80];
                     j = var28[35];
                     FINGERPRINT_BASE64 = var28[91];
                     CERT_PROP_EC_CURVE_POINT_W_Y = var28[24];
                     CERT_PROP_ISSUER = var28[192];
                     CERT_PROP_SHA_1_FINGERPRINT = var28[60];
                     PEM_CRL_BEGIN_MARKER = var28[147];
                     CERT_PROP_BASIC_CONSTRAINTS = var28[251];
                     X509_OID_SUBJECTKEYID = var28[18];
                     CERT_PROP_EC_COFACTOR = var28[33];

                     label75: {
                        try {
                           e = Logger.getLogger(CertUtils.class.getName());
                           if (ConfigFactory.getBooleanProperty(x[88], false)) {
                              var29 = ConfigFactory.getProperty(x[71], x[100]);
                              break label75;
                           }
                        } catch (ClassNotFoundException var14) {
                           throw a(var14);
                        }

                        String[] var17 = x;
                        var29 = ConfigFactory.getProperty(var17[245]);
                     }

                     g = var29;
                     h = b();
                     String[] var18 = x;
                     DEFAULT_X509V1_MAX_PATH_LENGTH = ConfigFactory.getIntProperty(var18[7], 0);
                     DISABLE_SHARED_CERTIFICATE_FACTORY = ConfigFactory.getBooleanProperty(var18[134], false);
                     HashMap var6 = new HashMap();
                     var6.put(var18[28], "T");
                     var6.put(var18[62], var18[185]);
                     var6.put(var18[196], var18[166]);
                     var6.put(var18[176], var18[183]);
                     var6.put(var18[215], var18[43]);
                     var6.put(var18[249], var18[240]);
                     var6.put(var18[19], var18[234]);
                     var6.put(var18[49], var18[256]);
                     var6.put(var18[213], var18[116]);
                     i = Collections.unmodifiableMap(var6);
                     k = Pattern.compile(var18[85]);
                     l = Pattern.compile(var18[250]);
                     m = Pattern.compile(var18[93]);
                     n = Pattern.compile(var18[148]);
                     o = Pattern.compile(var18[145]);
                     p = Pattern.compile(var18[69]);
                     q = Charset.forName(var18[130]);
                     r = new HashSet<>(
                        Arrays.asList(
                           X509GeneralName.Type.dNSName,
                           X509GeneralName.Type.directoryName,
                           X509GeneralName.Type.iPAddress,
                           X509GeneralName.Type.rfc822Name,
                           X509GeneralName.Type.uniformResourceIdentifier
                        )
                     );
                     s = new String[]{var18[154], var18[34], var18[260], var18[205], var18[243], var18[112], var18[264], var18[103], var18[128]};
                     KEY_USAGE_BITS_BY_NAME = Collections.unmodifiableMap(
                        new HashMap<String, Integer>() {
                           static final long serialVersionUID = 6208529329630447379L;
                           private static final String[] a;

                           {
                              String[] var1x = a;
                              this.put(var1x[2], 1);
                              this.put(var1x[0], 2);
                              this.put(var1x[1], 4);
                              this.put(var1x[3], 8);
                              this.put(var1x[7], 16);
                              this.put(var1x[4], 32);
                              this.put(var1x[8], 64);
                              this.put(var1x[5], 128);
                              this.put(var1x[6], 32768);
                           }

                           static {
                              String[] var5 = new String[9];
                              int var3 = 0;
                              String var2 = "\u0018\u0012t05b\u0000\u000b\u0010%A 9w\u001a()_\r\f\u001e.[\n,m\u000b\t\u000fV\u000f%\f\u0010%A\";w\u000b\u001e-]\r(\u000f\u0010%A&2f\u0007\u000b(]\u00111`\u0000\u000f\u0010\u001f)_\n(d\u0002()_\r=q\u001b\t%\f\u001f%[\n,m\u000b\t\u000fV\u000f%";
                              int var4 = "\u0018\u0012t05b\u0000\u000b\u0010%A 9w\u001a()_\r\f\u001e.[\n,m\u000b\t\u000fV\u000f%\f\u0010%A\";w\u000b\u001e-]\r(\u000f\u0010%A&2f\u0007\u000b(]\u00111`\u0000\u000f\u0010\u001f)_\n(d\u0002()_\r=q\u001b\t%\f\u001f%[\n,m\u000b\t\u000fV\u000f%"
                                 .length();
                              char var1 = 7;
                              int var7 = -1;

                              label24:
                              while (true) {
                                 byte var10000 = 48;
                                 String var10001 = var2.substring(++var7, var7 + var1);
                                 byte var10002 = -1;

                                 while (true) {
                                    String var8 = a(var10000, a(var10001));
                                    switch (var10002) {
                                       case 0:
                                          var5[var3++] = var8;
                                          if ((var7 += var1) >= var4) {
                                             a = var5;
                                             return;
                                          }

                                          var1 = var2.charAt(var7);
                                          break;
                                       default:
                                          var5[var3++] = var8;
                                          if ((var7 += var1) < var4) {
                                             var1 = var2.charAt(var7);
                                             continue label24;
                                          }

                                          var2 = "^`\rCX*LSq\u0011Go)JTu\u000eTn\u0017px4Z^h\u0018Vt+A";
                                          var4 = "^`\rCX*LSq\u0011Go)JTu\u000eTn\u0017px4Z^h\u0018Vt+A".length();
                                          var1 = 16;
                                          var7 = -1;
                                    }

                                    var10000 = 113;
                                    var10001 = var2.substring(++var7, var7 + var1);
                                    var10002 = 0;
                                 }
                              }
                           }

                           private static char[] a(String var0) {
                              char[] var10000x = var0.toCharArray();
                              if (var10000x.length < 2) {
                                 var10000x[0] = (char)(var10000x[0] ^ 94);
                              }

                              return var10000x;
                           }

                           private static String a(int var0, char[] var1x) {
                              int var10003 = var1x.length;
                              int var10002x = var0;
                              char[] var10001x = var1x;
                              int var10000x = var10003;

                              for (int var2x = 0; var10000x > var2x; var2x++) {
                                 var10001x[var2x] = (char)(var10001x[var2x] ^ var10002x ^ switch (var2x % 7) {
                                    case 0 -> 75;
                                    case 1 -> 112;
                                    case 2 -> 8;
                                    case 3 -> 83;
                                    case 4 -> 108;
                                    case 5 -> 53;
                                    default -> 94;
                                 });
                              }

                              return new String(var10001x).intern();
                           }
                        }
                     );
                     KEY_PURPOSE_IDS_BY_NAME = Collections.unmodifiableMap(
                        new HashMap<String, String>() {
                           static final long serialVersionUID = 8664831468744653422L;
                           private static final String[] a;

                           {
                              String[] var1 = a;
                              this.put(var1[19], var1[7]);
                              this.put(var1[10], var1[18]);
                              this.put(var1[8], var1[17]);
                              this.put(var1[11], var1[23]);
                              this.put(var1[12], var1[24]);
                              this.put(var1[15], var1[25]);
                              this.put(var1[0], var1[16]);
                              this.put(var1[2], var1[13]);
                              this.put(var1[1], var1[9]);
                              this.put(var1[22], var1[3]);
                              this.put(var1[6], var1[21]);
                              this.put(var1[4], var1[14]);
                              this.put(var1[5], var1[20]);
                           }

                           static {
                              String[] var5 = new String[26];
                              int var3 = 0;
                              String var2 = "3-A5t9h7(\u001e*gui>%\u00039kz\u00113-A5t9x5-\t\rmsu3'\u000b\u00113-A5t9T\u0019\u001a<\rmsu3'\u000b\u0011kg_p2:*t|Bk*#5igZ\u00143-A5t9r*:\t=Az\u007f\t0\u001f*ay\u00143-A.o}cw&\u000f-t9u5*\u0004;g\u007f\u000f3-A5t9r*:\t=Qg~(\u000bhgYp6-5i~Bn\u00153-A5t9~7(\u00052Tft.,\u000f*m{u\u0011kg_p2:*t|Bk*#5ig_\u0013;'\u0015\u001b|`~4-\t:Oqb\u000f:\r9a\u00103-A5t9h?;\u001a;vUn.!\u00103-A5t9x6 \t0pUn.!\u0011kg_p2:*t|Bk*#5igU\u0011kg_p2:*t|Bk*#5igY\u00123-A5t9o3$\t\rpuv* \u00029\u0016kg_p2:*t}Bo*'*kg^n*&5h\u0011kg_p2:*t|Bk*#5igX\u000bhgYp6-5i~Bn\u0003;'\u0015\u0014kg_p2:*t|Bk*#5nqBo*!\u0011kg_p2:*t|Bk*#5ig[\u00113-A5t9r*:\t=Pau4,\u0000\u0011kg_p2:*t|Bk*#5ig]";
                              int var4 = "3-A5t9h7(\u001e*gui>%\u00039kz\u00113-A5t9x5-\t\rmsu3'\u000b\u00113-A5t9T\u0019\u001a<\rmsu3'\u000b\u0011kg_p2:*t|Bk*#5igZ\u00143-A5t9r*:\t=Az\u007f\t0\u001f*ay\u00143-A.o}cw&\u000f-t9u5*\u0004;g\u007f\u000f3-A5t9r*:\t=Qg~(\u000bhgYp6-5i~Bn\u00153-A5t9~7(\u00052Tft.,\u000f*m{u\u0011kg_p2:*t|Bk*#5ig_\u0013;'\u0015\u001b|`~4-\t:Oqb\u000f:\r9a\u00103-A5t9h?;\u001a;vUn.!\u00103-A5t9x6 \t0pUn.!\u0011kg_p2:*t|Bk*#5igU\u0011kg_p2:*t|Bk*#5igY\u00123-A5t9o3$\t\rpuv* \u00029\u0016kg_p2:*t}Bo*'*kg^n*&5h\u0011kg_p2:*t|Bk*#5igX\u000bhgYp6-5i~Bn\u0003;'\u0015\u0014kg_p2:*t|Bk*#5nqBo*!\u0011kg_p2:*t|Bk*#5ig[\u00113-A5t9r*:\t=Pau4,\u0000\u0011kg_p2:*t|Bk*#5ig]"
                                 .length();
                              char var1 = 20;
                              int var7 = -1;

                              label24:
                              while (true) {
                                 byte var10000 = 38;
                                 String var10001 = var2.substring(++var7, var7 + var1);
                                 byte var10002 = -1;

                                 while (true) {
                                    String var8 = a(var10000, a(var10001));
                                    switch (var10002) {
                                       case 0:
                                          var5[var3++] = var8;
                                          if ((var7 += var1) >= var4) {
                                             a = var5;
                                             return;
                                          }

                                          var1 = var2.charAt(var7);
                                          break;
                                       default:
                                          var5[var3++] = var8;
                                          if ((var7 += var1) < var4) {
                                             var1 = var2.charAt(var7);
                                             continue label24;
                                          }

                                          var2 = "3?\u0007(jbr,$\u001a3r{m1?\u0006\u00113?\u0007(jbr,$\u001a3r{m1?\f";
                                          var4 = "3?\u0007(jbr,$\u001a3r{m1?\u0006\u00113?\u0007(jbr,$\u001a3r{m1?\f".length();
                                          var1 = 17;
                                          var7 = -1;
                                    }

                                    var10000 = 126;
                                    var10001 = var2.substring(++var7, var7 + var1);
                                    var10002 = 0;
                                 }
                              }
                           }

                           private static char[] a(String var0) {
                              char[] var10000 = var0.toCharArray();
                              if (var10000.length < 2) {
                                 var10000[0] = (char)(var10000[0] ^ 61);
                              }

                              return var10000;
                           }

                           private static String a(int var0, char[] var1) {
                              int var10003 = var1.length;
                              int var10002 = var0;
                              char[] var10001 = var1;
                              int var10000 = var10003;

                              for (int var2 = 0; var10000 > var2; var2++) {
                                 var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
                                    case 0 -> 124;
                                    case 1 -> 111;
                                    case 2 -> 74;
                                    case 3 -> 120;
                                    case 4 -> 34;
                                    case 5 -> 50;
                                    default -> 61;
                                 });
                              }

                              return new String(var10001).intern();
                           }
                        }
                     );
                     var6 = new HashMap();

                     for (Entry var8 : KEY_PURPOSE_IDS_BY_NAME.entrySet()) {
                        var6.put((String)var8.getValue(), (String)var8.getKey());
                     }

                     t = Collections.unmodifiableMap(var6);
                     Class var25 = null;

                     try {
                        String[] var20 = x;
                        var25 = Class.forName(var20[225]);
                        if (!ECPublicKey.class.isAssignableFrom(var25)) {
                           var25 = null;
                        }
                     } catch (ClassNotFoundException var10) {
                        String[] var19 = x;
                        e.log(Level.FINE, var19[143]);
                     }

                     u = var25;
                     Constructor var26 = null;

                     try {
                        label59: {
                           try {
                              if (u == null) {
                                 var30 = null;
                                 break label59;
                              }
                           } catch (ClassNotFoundException var11) {
                              throw a(var11);
                           }

                           var30 = u.getDeclaredConstructor(byte[].class);
                        }

                        var26 = var30;

                        try {
                           if (var26 != null) {
                              var26.setAccessible(true);
                           }
                        } catch (ClassNotFoundException var9) {
                           throw a(var9);
                        }
                     } catch (NoSuchMethodException var12) {
                        String[] var22 = x;
                        e.log(Level.FINE, var22[241]);
                     } catch (SecurityException var13) {
                        String[] var21 = x;
                        e.log(Level.FINE, var21[151]);
                     }

                     v = var26;
                     String[] var23 = x;
                     rfc822Pattern = Pattern.compile(var23[26]);
                     dnsNamePattern = Pattern.compile(var23[168]);
                     directoryNamePattern = Pattern.compile(var23[37]);
                     urlPattern = Pattern.compile(var23[104]);
                     return;
                  }

                  var1 = var2.charAt(var16);
                  break;
               default:
                  var5[var3++] = var27;
                  if ((var16 += var1) < var4) {
                     var1 = var2.charAt(var16);
                     continue label88;
                  }

                  var2 = "\u001bk1YXp&\u0007L\u001f\u0004W\u000b\n\u007f>A9+a'D\u001c\u0006";
                  var4 = "\u001bk1YXp&\u0007L\u001f\u0004W\u000b\n\u007f>A9+a'D\u001c\u0006".length();
                  var1 = '\f';
                  var16 = -1;
            }

            var10000 = 39;
            var10001 = var2.substring(++var16, var16 + var1);
            var10002 = 0;
         }
      }
   }

   private static Throwable a(Throwable var0) {
      return var0;
   }

   private static char[] c(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 33);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 110;
            case 1 -> 10;
            case 2 -> 85;
            case 3 -> 70;
            case 4 -> 77;
            case 5 -> 101;
            default -> 33;
         });
      }

      return new String(var10001).intern();
   }

   public interface AliasPicker {
      String selectAlias(String[] var1) throws AliasNotFoundException;
   }

   public static class CertificateUntrustedException extends Exception {
      static final long serialVersionUID = 603154942261935601L;

      public CertificateUntrustedException(String var1) {
         super(var1);
      }

      public CertificateUntrustedException(String var1, Throwable var2) {
         super(var1, var2);
      }
   }

   public interface DnFormatter {
      String formatDN(String var1);

      String formatDN(X500Principal var1);
   }

   public static class EncodedCertificateComparator implements Comparator<X509Certificate> {
      public int compare(X509Certificate var1, X509Certificate var2) {
         try {
            return ArrayUtils.compareArrays(var1.getEncoded(), var2.getEncoded());
         } catch (CertificateEncodingException var4) {
            throw new RuntimeException(var4);
         }
      }
   }

   public static class FileInputStreamFactory implements Callable<InputStream> {
      private final File a;

      public FileInputStreamFactory(File var1) {
         this.a = var1;
      }

      public InputStream call() throws Exception {
         return new FileInputStream(this.a);
      }
   }

   public static final class KeyUsage {
      public static final int digitalSignature = 0;
      public static final int nonRepudiation = 1;
      public static final int keyEncipherment = 2;
      public static final int dataEncipherment = 3;
      public static final int keyAgreement = 4;
      public static final int keyCertSign = 5;
      public static final int cRLSign = 6;
      public static final int encipherOnly = 7;
      public static final int decipherOnly = 8;
   }

   public static class MultipleCnValuesException extends Exception {
      static final long serialVersionUID = -6126300898497155094L;
   }

   public static class SingleAliasPicker implements CertUtils.AliasPicker {
      private final String a;
      private static final String[] b;

      public SingleAliasPicker(String var1) {
         if (var1 == null) {
            throw new NullPointerException();
         }

         this.a = var1;
      }

      @Override
      public String selectAlias(String[] var1) throws AliasNotFoundException {
         for (String var5 : var1) {
            try {
               if (this.a.equalsIgnoreCase(var5)) {
                  return var5;
               }
            } catch (AliasNotFoundException var7) {
               throw a(var7);
            }
         }

         String[] var6 = b;
         throw new AliasNotFoundException(var6[1] + this.a + var6[0]);
      }

      private static AliasNotFoundException a(AliasNotFoundException var0) {
         return var0;
      }

      static {
         String[] var5 = new String[2];
         int var3 = 0;
         String var2 = "\u001b\u0004O9WeyN\u001dJd u\u001c\u000e:\u0005j`Z\u0007Kj\u001cfo\u001b\u0016@>\u0005z6L\u001aZ\"WbzR\u0012]j";
         int var4 = "\u001b\u0004O9WeyN\u001dJd u\u001c\u000e:\u0005j`Z\u0007Kj\u001cfo\u001b\u0016@>\u0005z6L\u001aZ\"WbzR\u0012]j".length();
         char var1 = 11;
         int var0 = -1;

         while (true) {
            String var10002 = a(107, a(var2.substring(++var0, var0 + var1)));
            byte var10001 = -1;
            var5[var3++] = var10002;
            if ((var0 += var1) >= var4) {
               b = var5;
               return;
            }

            var1 = var2.charAt(var0);
         }
      }

      private static char[] a(String var0) {
         char[] var10000 = var0.toCharArray();
         if (var10000.length < 2) {
            var10000[0] = (char)(var10000[0] ^ 125);
         }

         return var10000;
      }

      private static String a(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 80;
               case 1 -> 24;
               case 2 -> 69;
               case 3 -> 33;
               case 4 -> 28;
               case 5 -> 104;
               default -> 125;
            });
         }

         return new String(var10001).intern();
      }
   }
}
