package com.l7tech.server.identity.ldap;

import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.identity.AuthenticationException;
import com.l7tech.identity.BadCredentialsException;
import com.l7tech.identity.IdentityProviderConfig;
import com.l7tech.identity.IdentityProviderConfigManager;
import com.l7tech.identity.InvalidIdProviderCfgException;
import com.l7tech.identity.User;
import com.l7tech.identity.ValidationException;
import com.l7tech.identity.cert.ClientCertManager;
import com.l7tech.identity.cert.ClientCertManager.VetoSave;
import com.l7tech.identity.ldap.GroupMappingConfig;
import com.l7tech.identity.ldap.LdapIdentityProviderConfig;
import com.l7tech.identity.ldap.LdapUser;
import com.l7tech.identity.ldap.MemberStrategy;
import com.l7tech.identity.ldap.UserMappingConfig;
import com.l7tech.identity.ldap.LdapIdentityProviderConfig.UserCertificateUseType;
import com.l7tech.kerberos.KerberosServiceTicket;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.policy.assertion.credential.LoginCredentials;
import com.l7tech.policy.variable.VariableNameSyntaxException;
import com.l7tech.security.token.NtlmToken;
import com.l7tech.server.Lifecycle;
import com.l7tech.server.LifecycleException;
import com.l7tech.server.ServerConfig;
import com.l7tech.server.audit.Auditor;
import com.l7tech.server.identity.AuthenticationResult;
import com.l7tech.server.identity.ConfigurableIdentityProvider;
import com.l7tech.server.identity.SessionAuthenticator;
import com.l7tech.server.identity.cert.CertificateAuthenticator;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.server.policy.variable.ServerVariables;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import java.math.BigInteger;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Properties;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.CommunicationException;
import javax.naming.ConfigurationException;
import javax.naming.NamingException;
import javax.naming.PartialResultException;
import javax.naming.SizeLimitExceededException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.BasicControl;
import javax.naming.ldap.InitialLdapContext;
import javax.security.auth.x500.X500Principal;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

@LdapClassLoaderRequired
public class LdapIdentityProviderImpl implements LdapIdentityProvider, InitializingBean, ApplicationContextAware, ConfigurableIdentityProvider, Lifecycle {
   private static final String a;
   private static final String b;
   private static final Logger c;
   private static final BigInteger d;
   private static final BigInteger e;
   private Auditor f;
   private LdapRuntimeConfig g;
   private LdapIdentityProviderConfig h;
   private ServerConfig i;
   private IdentityProviderConfigManager j;
   private ClientCertManager k;
   private LdapUserManager l;
   private LdapGroupManager m;
   private CertificateAuthenticator n;
   private SessionAuthenticator o;
   private LdapUrlProviderImpl p;
   private String[] q;
   private ad r;
   private LdapCertificateCache s;
   private static final String[] t;

   @Override
   public void setIdentityProviderConfig(IdentityProviderConfig param1) throws InvalidIdProviderCfgException {
      // $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: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 004: ifnull 019
      // 007: new com/l7tech/identity/InvalidIdProviderCfgException
      // 00a: dup
      // 00b: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 00e: bipush 42
      // 010: aaload
      // 011: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 014: athrow
      // 015: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 018: athrow
      // 019: aload 0
      // 01a: aload 1
      // 01b: checkcast com/l7tech/identity/ldap/LdapIdentityProviderConfig
      // 01e: putfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 021: aload 0
      // 022: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 025: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getLdapUrl ()[Ljava/lang/String;
      // 028: ifnull 03e
      // 02b: aload 0
      // 02c: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 02f: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getLdapUrl ()[Ljava/lang/String;
      // 032: arraylength
      // 033: bipush 1
      // 034: if_icmpge 050
      // 037: goto 03e
      // 03a: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03d: athrow
      // 03e: new com/l7tech/identity/InvalidIdProviderCfgException
      // 041: dup
      // 042: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 045: bipush 113
      // 047: aaload
      // 048: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 04b: athrow
      // 04c: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04f: athrow
      // 050: aload 0
      // 051: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 054: ifnonnull 069
      // 057: new com/l7tech/identity/InvalidIdProviderCfgException
      // 05a: dup
      // 05b: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 05e: bipush 31
      // 060: aaload
      // 061: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 064: athrow
      // 065: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 068: athrow
      // 069: aload 0
      // 06a: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.m Lcom/l7tech/server/identity/ldap/LdapGroupManager;
      // 06d: ifnonnull 082
      // 070: new com/l7tech/identity/InvalidIdProviderCfgException
      // 073: dup
      // 074: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 077: bipush 115
      // 079: aaload
      // 07a: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 07d: athrow
      // 07e: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 081: athrow
      // 082: aload 0
      // 083: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 086: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getReturningAttributes ()[Ljava/lang/String;
      // 089: ifnull 09b
      // 08c: aload 0
      // 08d: aload 0
      // 08e: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.d ()[Ljava/lang/String;
      // 091: putfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.q [Ljava/lang/String;
      // 094: goto 09b
      // 097: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09a: athrow
      // 09b: aload 0
      // 09c: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 09f: aload 0
      // 0a0: invokeinterface com/l7tech/server/identity/ldap/LdapUserManager.configure (Lcom/l7tech/server/identity/ldap/LdapIdentityProvider;)V 2
      // 0a5: aload 0
      // 0a6: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.m Lcom/l7tech/server/identity/ldap/LdapGroupManager;
      // 0a9: aload 0
      // 0aa: invokeinterface com/l7tech/server/identity/ldap/LdapGroupManager.configure (Lcom/l7tech/server/identity/ldap/LdapIdentityProvider;)V 2
      // 0af: aload 0
      // 0b0: new com/l7tech/server/identity/SessionAuthenticator
      // 0b3: dup
      // 0b4: aload 0
      // 0b5: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0b8: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 0bb: invokespecial com/l7tech/server/identity/SessionAuthenticator.<init> (Lcom/l7tech/objectmodel/Goid;)V
      // 0be: putfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.o Lcom/l7tech/server/identity/SessionAuthenticator;
      // 0c1: aload 0
      // 0c2: new com/l7tech/server/identity/ldap/af
      // 0c5: dup
      // 0c6: aload 0
      // 0c7: aload 0
      // 0c8: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0cb: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getSearchBase ()Ljava/lang/String;
      // 0ce: aload 0
      // 0cf: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.q [Ljava/lang/String;
      // 0d2: invokespecial com/l7tech/server/identity/ldap/af.<init> (Lcom/l7tech/server/identity/ldap/LdapIdentityProviderImpl;Ljava/lang/String;[Ljava/lang/String;)V
      // 0d5: putfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 0d8: aload 0
      // 0d9: new com/l7tech/server/identity/ldap/LdapUrlProviderImpl
      // 0dc: dup
      // 0dd: aload 0
      // 0de: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0e1: aload 0
      // 0e2: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.i Lcom/l7tech/server/ServerConfig;
      // 0e5: invokespecial com/l7tech/server/identity/ldap/LdapUrlProviderImpl.<init> (Lcom/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig;Lcom/l7tech/server/ServerConfig;)V
      // 0e8: putfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.p Lcom/l7tech/server/identity/ldap/LdapUrlProviderImpl;
      // 0eb: aload 0
      // 0ec: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0ef: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getName ()Ljava/lang/String;
      // 0f2: aload 0
      // 0f3: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0f6: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 0f9: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0fc: aload 0
      // 0fd: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 100: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getVersion ()I
      // 103: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 106: bipush 108
      // 108: aaload
      // 109: dup_x2
      // 10a: pop
      // 10b: ldc ","
      // 10d: swap
      // 10e: ldc ")"
      // 110: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001" ]
      // 115: astore 2
      // 116: aload 0
      // 117: new com/l7tech/server/identity/ldap/LdapCertificateCache
      // 11a: dup
      // 11b: aload 0
      // 11c: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 11f: aload 0
      // 120: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.j Lcom/l7tech/identity/IdentityProviderConfigManager;
      // 123: aload 0
      // 124: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.g Lcom/l7tech/server/identity/ldap/LdapRuntimeConfig;
      // 127: aload 0
      // 128: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 12b: aload 0
      // 12c: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a ()Ljava/util/Set;
      // 12f: aload 2
      // 130: aload 0
      // 131: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c ()Z
      // 134: invokespecial com/l7tech/server/identity/ldap/LdapCertificateCache.<init> (Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;Lcom/l7tech/identity/IdentityProviderConfigManager;Lcom/l7tech/server/identity/ldap/LdapRuntimeConfig;Lcom/l7tech/server/identity/ldap/ad;Ljava/util/Set;Ljava/lang/String;Z)V
      // 137: putfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.s Lcom/l7tech/server/identity/ldap/LdapCertificateCache;
      // 13a: return
      // try (0 -> 10): 10 com/l7tech/identity/InvalidIdProviderCfgException
      // try (12 -> 26): 27 com/l7tech/identity/InvalidIdProviderCfgException
      // try (20 -> 36): 36 com/l7tech/identity/InvalidIdProviderCfgException
      // try (38 -> 48): 48 com/l7tech/identity/InvalidIdProviderCfgException
      // try (50 -> 60): 60 com/l7tech/identity/InvalidIdProviderCfgException
      // try (62 -> 70): 71 com/l7tech/identity/InvalidIdProviderCfgException
   }

   private Set<String> a() {
      // $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/HashSet
      // 03: dup
      // 04: invokespecial java/util/HashSet.<init> ()V
      // 07: astore 1
      // 08: aload 0
      // 09: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0c: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserMappings ()[Lcom/l7tech/identity/ldap/UserMappingConfig;
      // 0f: astore 2
      // 10: aload 2
      // 11: astore 3
      // 12: aload 3
      // 13: arraylength
      // 14: istore 4
      // 16: bipush 0
      // 17: istore 5
      // 19: iload 5
      // 1b: iload 4
      // 1d: if_icmpge 7b
      // 20: aload 3
      // 21: iload 5
      // 23: aaload
      // 24: astore 6
      // 26: aload 6
      // 28: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getUserCertAttrName ()Ljava/lang/String;
      // 2b: astore 7
      // 2d: aload 7
      // 2f: ifnull 45
      // 32: aload 7
      // 34: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 37: invokevirtual java/lang/String.length ()I
      // 3a: bipush 1
      // 3b: if_icmpge 69
      // 3e: goto 45
      // 41: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 44: athrow
      // 45: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 48: aload 6
      // 4a: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 4d: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 50: bipush 103
      // 52: aaload
      // 53: swap
      // 54: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 57: bipush 67
      // 59: aaload
      // 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.fine (Ljava/lang/String;)V
      // 62: goto 75
      // 65: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 68: athrow
      // 69: aload 1
      // 6a: aload 7
      // 6c: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 6f: invokeinterface java/util/Set.add (Ljava/lang/Object;)Z 2
      // 74: pop
      // 75: iinc 5 1
      // 78: goto 19
      // 7b: aload 1
      // 7c: areturn
      // try (25 -> 32): 33 java/lang/IllegalArgumentException
      // try (27 -> 48): 48 java/lang/IllegalArgumentException
   }

   private boolean b() {
      try {
         if (this.h.getUserCertificateUseType() != UserCertificateUseType.NONE) {
            return true;
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }

      return false;
   }

   private boolean c() {
      // $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: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 04: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserCertificateUseType ()Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType;
      // 07: getstatic com/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType.INDEX Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType;
      // 0a: if_acmpeq 21
      // 0d: aload 0
      // 0e: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 11: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserCertificateUseType ()Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType;
      // 14: getstatic com/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType.INDEX_CUSTOM Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType;
      // 17: if_acmpne 29
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: bipush 1
      // 22: goto 2a
      // 25: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 28: athrow
      // 29: bipush 0
      // 2a: ireturn
      // try (0 -> 10): 11 java/lang/IllegalArgumentException
      // try (5 -> 15): 15 java/lang/IllegalArgumentException
   }

   public void setLdapRuntimeConfig(LdapRuntimeConfig var1) {
      this.g = var1;
   }

   public void setServerConfig(ServerConfig var1) {
      this.i = var1;
   }

   public void setCertificateAuthenticator(CertificateAuthenticator var1) {
      this.n = var1;
   }

   @Override
   public LdapIdentityProviderConfig getConfig() {
      return this.h;
   }

   public LdapUserManager getUserManager() {
      return this.l;
   }

   public LdapGroupManager getGroupManager() {
      return this.m;
   }

   @Override
   public AuthenticationResult authenticate(LoginCredentials param1) throws AuthenticationException {
      // $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: aload 1
      // 002: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.findUserByCredential (Lcom/l7tech/policy/assertion/credential/LoginCredentials;)Lcom/l7tech/identity/ldap/LdapUser;
      // 005: astore 2
      // 006: goto 053
      // 009: astore 3
      // 00a: aload 1
      // 00b: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 00e: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.KERBEROSTICKET Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 011: if_acmpne 040
      // 014: aload 1
      // 015: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getPayload ()Ljava/lang/Object;
      // 018: checkcast com/l7tech/kerberos/KerberosServiceTicket
      // 01b: astore 4
      // 01d: new com/l7tech/identity/AuthenticationException
      // 020: dup
      // 021: aload 4
      // 023: invokevirtual com/l7tech/kerberos/KerberosServiceTicket.getClientPrincipalName ()Ljava/lang/String;
      // 026: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 029: astore 5
      // 02b: aload 5
      // 02d: bipush 64
      // 02f: aaload
      // 030: swap
      // 031: aload 5
      // 033: bipush 14
      // 035: aaload
      // 036: 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" ]
      // 03b: aload 3
      // 03c: invokespecial com/l7tech/identity/AuthenticationException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 03f: athrow
      // 040: new com/l7tech/identity/AuthenticationException
      // 043: dup
      // 044: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 047: astore 5
      // 049: aload 5
      // 04b: bipush 49
      // 04d: aaload
      // 04e: aload 3
      // 04f: invokespecial com/l7tech/identity/AuthenticationException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 052: athrow
      // 053: aload 2
      // 054: ifnonnull 069
      // 057: new com/l7tech/identity/AuthenticationException
      // 05a: dup
      // 05b: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 05e: bipush 77
      // 060: aaload
      // 061: invokespecial com/l7tech/identity/AuthenticationException.<init> (Ljava/lang/String;)V
      // 064: athrow
      // 065: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 068: athrow
      // 069: aload 1
      // 06a: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 06d: astore 3
      // 06e: aload 3
      // 06f: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.CLEARTEXT Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 072: if_acmpne 080
      // 075: aload 0
      // 076: aload 1
      // 077: aload 2
      // 078: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Lcom/l7tech/policy/assertion/credential/LoginCredentials;Lcom/l7tech/identity/ldap/LdapUser;)Lcom/l7tech/server/identity/AuthenticationResult;
      // 07b: areturn
      // 07c: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07f: athrow
      // 080: aload 3
      // 081: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.DIGEST Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 084: if_acmpne 091
      // 087: aload 1
      // 088: aload 2
      // 089: invokestatic com/l7tech/server/identity/DigestAuthenticator.authenticateDigestCredentials (Lcom/l7tech/policy/assertion/credential/LoginCredentials;Lcom/l7tech/identity/User;)Lcom/l7tech/server/identity/AuthenticationResult;
      // 08c: areturn
      // 08d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 090: athrow
      // 091: aload 3
      // 092: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.KERBEROSTICKET Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 095: if_acmpne 0a9
      // 098: new com/l7tech/server/identity/AuthenticationResult
      // 09b: dup
      // 09c: aload 2
      // 09d: aload 1
      // 09e: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getSecurityTokens ()[Lcom/l7tech/security/token/SecurityToken;
      // 0a1: invokespecial com/l7tech/server/identity/AuthenticationResult.<init> (Lcom/l7tech/identity/User;[Lcom/l7tech/security/token/SecurityToken;)V
      // 0a4: areturn
      // 0a5: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a8: athrow
      // 0a9: aload 3
      // 0aa: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.NTLMTOKEN Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0ad: if_acmpne 0c1
      // 0b0: new com/l7tech/server/identity/AuthenticationResult
      // 0b3: dup
      // 0b4: aload 2
      // 0b5: aload 1
      // 0b6: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getSecurityToken ()Lcom/l7tech/security/token/SecurityToken;
      // 0b9: invokespecial com/l7tech/server/identity/AuthenticationResult.<init> (Lcom/l7tech/identity/User;Lcom/l7tech/security/token/SecurityToken;)V
      // 0bc: areturn
      // 0bd: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c0: athrow
      // 0c1: aload 3
      // 0c2: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.SESSIONTOKEN Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0c5: if_acmpne 0d6
      // 0c8: aload 0
      // 0c9: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.o Lcom/l7tech/server/identity/SessionAuthenticator;
      // 0cc: aload 1
      // 0cd: aload 2
      // 0ce: invokevirtual com/l7tech/server/identity/SessionAuthenticator.authenticateSessionCredentials (Lcom/l7tech/policy/assertion/credential/LoginCredentials;Lcom/l7tech/identity/User;)Lcom/l7tech/server/identity/AuthenticationResult;
      // 0d1: areturn
      // 0d2: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d5: athrow
      // 0d6: aload 3
      // 0d7: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.CLIENTCERT Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0da: if_acmpeq 0eb
      // 0dd: aload 3
      // 0de: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.SAML Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0e1: if_acmpne 15b
      // 0e4: goto 0eb
      // 0e7: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ea: athrow
      // 0eb: aload 0
      // 0ec: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.b ()Z
      // 0ef: ifeq 146
      // 0f2: goto 0f9
      // 0f5: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f8: athrow
      // 0f9: aload 2
      // 0fa: invokevirtual com/l7tech/identity/ldap/LdapUser.getLdapCertBytes ()[B
      // 0fd: ifnull 146
      // 100: goto 107
      // 103: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 106: athrow
      // 107: aload 0
      // 108: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.n Lcom/l7tech/server/identity/cert/CertificateAuthenticator;
      // 10b: aload 1
      // 10c: aload 2
      // 10d: invokevirtual com/l7tech/identity/ldap/LdapUser.getCertificate ()Ljava/security/cert/X509Certificate;
      // 110: aload 2
      // 111: aload 0
      // 112: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 115: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getCertificateValidationType ()Lcom/l7tech/security/types/CertificateValidationType;
      // 118: aload 0
      // 119: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.f Lcom/l7tech/server/audit/Auditor;
      // 11c: bipush 0
      // 11d: invokevirtual com/l7tech/server/identity/cert/CertificateAuthenticator.authenticateX509Credentials (Lcom/l7tech/policy/assertion/credential/LoginCredentials;Ljava/security/cert/X509Certificate;Lcom/l7tech/identity/User;Lcom/l7tech/security/types/CertificateValidationType;Lcom/l7tech/gateway/common/audit/Audit;Z)Lcom/l7tech/server/identity/AuthenticationResult;
      // 120: areturn
      // 121: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 124: athrow
      // 125: astore 4
      // 127: new com/l7tech/identity/AuthenticationException
      // 12a: dup
      // 12b: aload 4
      // 12d: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 130: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 133: astore 5
      // 135: aload 5
      // 137: bipush 73
      // 139: aaload
      // 13a: swap
      // 13b: 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" ]
      // 140: aload 4
      // 142: invokespecial com/l7tech/identity/AuthenticationException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 145: athrow
      // 146: aload 0
      // 147: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.n Lcom/l7tech/server/identity/cert/CertificateAuthenticator;
      // 14a: aload 1
      // 14b: aload 2
      // 14c: aload 0
      // 14d: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 150: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getCertificateValidationType ()Lcom/l7tech/security/types/CertificateValidationType;
      // 153: aload 0
      // 154: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.f Lcom/l7tech/server/audit/Auditor;
      // 157: invokevirtual com/l7tech/server/identity/cert/CertificateAuthenticator.authenticateX509Credentials (Lcom/l7tech/policy/assertion/credential/LoginCredentials;Lcom/l7tech/identity/User;Lcom/l7tech/security/types/CertificateValidationType;Lcom/l7tech/gateway/common/audit/Audit;)Lcom/l7tech/server/identity/AuthenticationResult;
      // 15a: areturn
      // 15b: aload 1
      // 15c: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 15f: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 162: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 165: bipush 114
      // 167: aaload
      // 168: swap
      // 169: 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" ]
      // 16e: astore 4
      // 170: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 173: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 176: aload 4
      // 178: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 17b: new com/l7tech/identity/AuthenticationException
      // 17e: dup
      // 17f: aload 4
      // 181: invokespecial com/l7tech/identity/AuthenticationException.<init> (Ljava/lang/String;)V
      // 184: athrow
      // try (0 -> 4): 5 com/l7tech/objectmodel/FindException
      // try (118 -> 127): 128 com/l7tech/objectmodel/FindException
      // try (112 -> 121): 122 com/l7tech/objectmodel/FindException
      // try (109 -> 115): 116 com/l7tech/objectmodel/FindException
      // try (98 -> 107): 107 com/l7tech/objectmodel/FindException
      // try (86 -> 96): 96 com/l7tech/objectmodel/FindException
      // try (74 -> 84): 84 com/l7tech/objectmodel/FindException
      // try (65 -> 72): 72 com/l7tech/objectmodel/FindException
      // try (55 -> 63): 63 com/l7tech/objectmodel/FindException
      // try (41 -> 50): 50 com/l7tech/objectmodel/FindException
      // try (130 -> 143): 146 java/security/cert/CertificateException
      // try (124 -> 144): 144 com/l7tech/objectmodel/FindException
   }

   @Override
   public AuthenticationResult authenticate(LoginCredentials var1, boolean var2) throws AuthenticationException {
      return this.authenticate(var1);
   }

   public LdapUser findUserByCredential(LoginCredentials param1) throws FindException {
      // $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: aconst_null
      // 001: astore 2
      // 002: aload 1
      // 003: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 006: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.KERBEROSTICKET Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 009: if_acmpne 03a
      // 00c: aload 1
      // 00d: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getPayload ()Ljava/lang/Object;
      // 010: checkcast com/l7tech/kerberos/KerberosServiceTicket
      // 013: astore 3
      // 014: aload 0
      // 015: aload 0
      // 016: aload 3
      // 017: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Lcom/l7tech/kerberos/KerberosServiceTicket;)Ljava/util/Collection;
      // 01a: aload 3
      // 01b: invokevirtual com/l7tech/kerberos/KerberosServiceTicket.getClientPrincipalName ()Ljava/lang/String;
      // 01e: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 021: astore 4
      // 023: aload 4
      // 025: bipush 71
      // 027: aaload
      // 028: swap
      // 029: aload 4
      // 02b: bipush 14
      // 02d: aaload
      // 02e: 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" ]
      // 033: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/util/Collection;Ljava/lang/String;)Lcom/l7tech/identity/ldap/LdapUser;
      // 036: astore 2
      // 037: goto 128
      // 03a: aload 1
      // 03b: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 03e: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.SESSIONTOKEN Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 041: if_acmpne 062
      // 044: aload 0
      // 045: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.o Lcom/l7tech/server/identity/SessionAuthenticator;
      // 048: aload 1
      // 049: invokevirtual com/l7tech/server/identity/SessionAuthenticator.getUserId (Lcom/l7tech/policy/assertion/credential/LoginCredentials;)Ljava/lang/String;
      // 04c: astore 3
      // 04d: aload 3
      // 04e: ifnull 05f
      // 051: aload 0
      // 052: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 055: aload 3
      // 056: invokeinterface com/l7tech/server/identity/ldap/LdapUserManager.findByPrimaryKey (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 05b: checkcast com/l7tech/identity/ldap/LdapUser
      // 05e: astore 2
      // 05f: goto 128
      // 062: aload 1
      // 063: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 066: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.CLIENTCERT Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 069: if_acmpne 0d8
      // 06c: aload 0
      // 06d: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.b ()Z
      // 070: ifeq 0d8
      // 073: goto 07a
      // 076: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 079: athrow
      // 07a: getstatic com/l7tech/identity/ldap/LdapIdentityProviderConfig$UserLookupByCertMode.CERT Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserLookupByCertMode;
      // 07d: aload 0
      // 07e: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 081: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserLookupByCertMode ()Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserLookupByCertMode;
      // 084: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig$UserLookupByCertMode.equals (Ljava/lang/Object;)Z
      // 087: ifeq 0d8
      // 08a: goto 091
      // 08d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 090: athrow
      // 091: aload 0
      // 092: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.s Lcom/l7tech/server/identity/ldap/LdapCertificateCache;
      // 095: aload 1
      // 096: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getClientCert ()Ljava/security/cert/X509Certificate;
      // 099: invokevirtual com/l7tech/server/identity/ldap/LdapCertificateCache.a (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // 09c: astore 3
      // 09d: aload 3
      // 09e: ifnonnull 0a9
      // 0a1: aconst_null
      // 0a2: goto 0b6
      // 0a5: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a8: athrow
      // 0a9: aload 0
      // 0aa: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 0ad: aload 3
      // 0ae: invokeinterface com/l7tech/server/identity/ldap/LdapUserManager.findByPrimaryKey (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 0b3: checkcast com/l7tech/identity/ldap/LdapUser
      // 0b6: astore 2
      // 0b7: goto 128
      // 0ba: astore 3
      // 0bb: new com/l7tech/objectmodel/FindException
      // 0be: dup
      // 0bf: aload 3
      // 0c0: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 0c3: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0c6: astore 4
      // 0c8: aload 4
      // 0ca: bipush 105
      // 0cc: aaload
      // 0cd: swap
      // 0ce: 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" ]
      // 0d3: aload 3
      // 0d4: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0d7: athrow
      // 0d8: aload 1
      // 0d9: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getFormat ()Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0dc: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.NTLMTOKEN Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0df: if_acmpne 110
      // 0e2: aload 1
      // 0e3: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getSecurityToken ()Lcom/l7tech/security/token/SecurityToken;
      // 0e6: checkcast com/l7tech/security/token/NtlmToken
      // 0e9: astore 3
      // 0ea: aload 0
      // 0eb: aload 0
      // 0ec: aload 3
      // 0ed: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Lcom/l7tech/security/token/NtlmToken;)Ljava/util/Collection;
      // 0f0: aload 3
      // 0f1: invokevirtual com/l7tech/security/token/NtlmToken.getLogin ()Ljava/lang/String;
      // 0f4: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0f7: astore 4
      // 0f9: aload 4
      // 0fb: bipush 97
      // 0fd: aaload
      // 0fe: swap
      // 0ff: aload 4
      // 101: bipush 14
      // 103: aaload
      // 104: 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" ]
      // 109: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/util/Collection;Ljava/lang/String;)Lcom/l7tech/identity/ldap/LdapUser;
      // 10c: astore 2
      // 10d: goto 128
      // 110: aload 1
      // 111: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getLogin ()Ljava/lang/String;
      // 114: ifnull 128
      // 117: aload 0
      // 118: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 11b: aload 1
      // 11c: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getLogin ()Ljava/lang/String;
      // 11f: invokeinterface com/l7tech/server/identity/ldap/LdapUserManager.findByLogin (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 124: checkcast com/l7tech/identity/ldap/LdapUser
      // 127: astore 2
      // 128: aload 2
      // 129: areturn
      // try (72 -> 76): 76 java/security/cert/CertificateEncodingException
      // try (51 -> 63): 64 java/security/cert/CertificateEncodingException
      // try (47 -> 54): 55 java/security/cert/CertificateEncodingException
      // try (66 -> 84): 85 java/security/cert/CertificateEncodingException
   }

   private LdapUser a(Collection<IdentityHeader> param1, String param2) throws FindException {
      // $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: aconst_null
      // 01: astore 3
      // 02: aload 1
      // 03: ifnull 6b
      // 06: aload 1
      // 07: invokeinterface java/util/Collection.size ()I 1
      // 0c: bipush 1
      // 0d: if_icmple 24
      // 10: goto 17
      // 13: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16: athrow
      // 17: new com/l7tech/objectmodel/FindException
      // 1a: dup
      // 1b: aload 2
      // 1c: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;)V
      // 1f: athrow
      // 20: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23: athrow
      // 24: aload 1
      // 25: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 2a: ifne 6b
      // 2d: aload 1
      // 2e: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 33: astore 4
      // 35: aload 4
      // 37: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 3c: ifeq 6b
      // 3f: aload 4
      // 41: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 46: checkcast com/l7tech/objectmodel/IdentityHeader
      // 49: astore 5
      // 4b: aload 5
      // 4d: invokevirtual com/l7tech/objectmodel/IdentityHeader.getType ()Lcom/l7tech/objectmodel/EntityType;
      // 50: getstatic com/l7tech/objectmodel/EntityType.USER Lcom/l7tech/objectmodel/EntityType;
      // 53: if_acmpne 68
      // 56: aload 0
      // 57: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 5a: aload 5
      // 5c: invokevirtual com/l7tech/objectmodel/IdentityHeader.getStrId ()Ljava/lang/String;
      // 5f: invokeinterface com/l7tech/server/identity/ldap/LdapUserManager.findByPrimaryKey (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 64: checkcast com/l7tech/identity/ldap/LdapUser
      // 67: astore 3
      // 68: goto 35
      // 6b: aload 3
      // 6c: areturn
      // try (2 -> 8): 9 com/l7tech/objectmodel/FindException
      // try (4 -> 16): 16 com/l7tech/objectmodel/FindException
   }

   private AuthenticationResult a(LoginCredentials var1, LdapUser var2) throws BadCredentialsException {
      boolean var3 = this.l.authenticateBasic(var2.getDn(), new String(var1.getCredentials()));

      try {
         if (var3) {
            return new AuthenticationResult(var2, var1.getSecurityTokens());
         }
      } catch (BadCredentialsException var5) {
         throw a(var5);
      }

      Logger var10000 = c;
      String var10001 = var1.getLogin();
      String[] var4 = t;
      var10000.info(var4[72] + var10001);
      throw new BadCredentialsException(var4[30]);
   }

   @Override
   public Collection<String> getReturningAttributes() {
      Collection var1 = null;
      if (this.q != null) {
         var1 = Collections.unmodifiableCollection(Arrays.asList(this.q));
      }

      return var1;
   }

   public EntityHeaderSet<IdentityHeader> search(EntityType[] param1, String param2) throws FindException {
      // $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: ifnull 11
      // 04: aload 1
      // 05: arraylength
      // 06: bipush 1
      // 07: if_icmpge 23
      // 0a: goto 11
      // 0d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10: athrow
      // 11: new java/lang/IllegalArgumentException
      // 14: dup
      // 15: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 18: bipush 38
      // 1a: aaload
      // 1b: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 1e: athrow
      // 1f: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22: athrow
      // 23: bipush 0
      // 24: istore 3
      // 25: bipush 0
      // 26: istore 4
      // 28: aload 1
      // 29: astore 5
      // 2b: aload 5
      // 2d: arraylength
      // 2e: istore 6
      // 30: bipush 0
      // 31: istore 7
      // 33: iload 7
      // 35: iload 6
      // 37: if_icmpge 5f
      // 3a: aload 5
      // 3c: iload 7
      // 3e: aaload
      // 3f: astore 8
      // 41: aload 8
      // 43: getstatic com/l7tech/objectmodel/EntityType.USER Lcom/l7tech/objectmodel/EntityType;
      // 46: if_acmpne 4e
      // 49: bipush 1
      // 4a: istore 3
      // 4b: goto 59
      // 4e: aload 8
      // 50: getstatic com/l7tech/objectmodel/EntityType.GROUP Lcom/l7tech/objectmodel/EntityType;
      // 53: if_acmpne 59
      // 56: bipush 1
      // 57: istore 4
      // 59: iinc 7 1
      // 5c: goto 33
      // 5f: iload 3
      // 60: ifne 81
      // 63: iload 4
      // 65: ifne 81
      // 68: goto 6f
      // 6b: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6e: athrow
      // 6f: new java/lang/IllegalArgumentException
      // 72: dup
      // 73: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 76: bipush 123
      // 78: aaload
      // 79: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 7c: athrow
      // 7d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 80: athrow
      // 81: aload 0
      // 82: aload 2
      // 83: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.userSearchFilterWithParam (Ljava/lang/String;)Ljava/lang/String;
      // 86: astore 5
      // 88: aload 0
      // 89: aload 2
      // 8a: bipush 0
      // 8b: anewarray 819
      // 8e: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.groupSearchFilterWithParam (Ljava/lang/String;[Lcom/l7tech/identity/ldap/MemberStrategy;)Ljava/lang/String;
      // 91: astore 6
      // 93: iload 3
      // 94: ifeq d4
      // 97: iload 4
      // 99: ifeq d4
      // 9c: goto a3
      // 9f: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a2: athrow
      // a3: aload 6
      // a5: ifnonnull b6
      // a8: goto af
      // ab: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // ae: athrow
      // af: aload 5
      // b1: astore 7
      // b3: goto e3
      // b6: aload 5
      // b8: aload 6
      // ba: astore 9
      // bc: astore 10
      // be: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // c1: bipush 110
      // c3: aaload
      // c4: aload 10
      // c6: aload 9
      // c8: ldc ")"
      // ca: 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" ]
      // cf: astore 7
      // d1: goto e3
      // d4: iload 3
      // d5: ifeq df
      // d8: aload 5
      // da: astore 7
      // dc: goto e3
      // df: aload 6
      // e1: astore 7
      // e3: aload 7
      // e5: ifnonnull f0
      // e8: invokestatic com/l7tech/objectmodel/EntityHeaderSet.empty ()Lcom/l7tech/objectmodel/EntityHeaderSet;
      // eb: areturn
      // ec: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // ef: athrow
      // f0: aload 0
      // f1: aload 7
      // f3: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.b (Ljava/lang/String;)Lcom/l7tech/objectmodel/EntityHeaderSet;
      // f6: areturn
      // try (0 -> 6): 7 com/l7tech/objectmodel/FindException
      // try (2 -> 16): 16 com/l7tech/objectmodel/FindException
      // try (49 -> 53): 54 com/l7tech/objectmodel/FindException
      // try (51 -> 63): 63 com/l7tech/objectmodel/FindException
      // try (75 -> 79): 80 com/l7tech/objectmodel/FindException
      // try (77 -> 84): 85 com/l7tech/objectmodel/FindException
      // try (110 -> 114): 114 com/l7tech/objectmodel/FindException
   }

   private Collection<IdentityHeader> a(KerberosServiceTicket var1) throws FindException {
      String var2 = var1.getClientPrincipalName();
      int var3 = var2.indexOf(64);
      int var4 = var2.lastIndexOf(64);

      boolean var10000;
      label55: {
         try {
            if (var3 != var4) {
               var10000 = true;
               break label55;
            }
         } catch (FindException var13) {
            throw a(var13);
         }

         var10000 = false;
      }

      boolean var5 = var10000;
      String var6 = var2;
      if (var4 != -1) {
         var6 = var2.substring(0, var4);
      }

      try {
         if (var6.length() == 0) {
            throw new FindException(t[9] + var2 + t[65]);
         }
      } catch (FindException var11) {
         throw a(var11);
      }

      try {
         if (c.isLoggable(Level.FINEST)) {
            c.log(Level.FINEST, t[39], new Object[]{var5, var2});
         }
      } catch (FindException var12) {
         throw a(var12);
      }

      ArrayList var7 = new ArrayList();

      for (int var8 = 0; var8 < this.h.getUserMappings().length; var8++) {
         UserMappingConfig var9 = this.h.getUserMappings()[var8];
         String var10 = null;
         if (var5) {
            var10 = var9.getKerberosEnterpriseAttrName();
         }

         if (var10 == null) {
            var10 = var9.getKerberosAttrName();
            if (var10 == null) {
               var10 = var9.getLoginAttrName();
            }
         }

         var7.add(new i(var9.getObjClass(), var10, var6));
      }

      String var14 = this.a(var7.toArray(new i[var7.size()]), true);
      return this.b(var14);
   }

   private Collection<IdentityHeader> a(NtlmToken var1) throws FindException {
      String var2 = t[118] + var1.getUserSid() + ")";
      return this.b(var2);
   }

   @Override
   public X509Certificate findCertBySki(String var1) {
      X509Certificate var2 = null;
      if (this.b()) {
         var2 = this.s.a(var1);

         try {
            if (var2 != null || this.c()) {
               return var2;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         var2 = this.a(var1);
      }

      return var2;
   }

   @Override
   public X509Certificate findCertByIssuerAndSerial(X500Principal var1, BigInteger var2) {
      X509Certificate var3 = null;
      if (this.b()) {
         var3 = this.s.a(var1, var2);

         try {
            if (var3 != null || this.c()) {
               return var3;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         var3 = this.a(var1, var2);
      }

      return var3;
   }

   @Override
   public X509Certificate findCertByThumbprintSHA1(String var1) throws FindException {
      X509Certificate var2 = null;
      if (this.b()) {
         var2 = this.s.b(var1);
      }

      return var2;
   }

   @Override
   public X509Certificate findCertBySubjectDn(X500Principal var1) throws FindException {
      X509Certificate var2 = null;
      if (this.b()) {
         var2 = this.s.a(var1);
      }

      return var2;
   }

   private X509Certificate a(String var1) {
      X509Certificate var2 = null;

      try {
         String var3 = this.h.getUserCertificateSKISearchFilter();

         try {
            if (var3 == null || var3.isEmpty()) {
               return var2;
            }
         } catch (FindException var4) {
            throw a(var4);
         }

         var2 = this.a(var3, null, null, var1);
      } catch (FindException var5) {
         c.log(Level.WARNING, t[36], var5);
      }

      return var2;
   }

   private X509Certificate a(X500Principal var1, BigInteger var2) {
      X509Certificate var3 = null;

      try {
         String var4 = this.h.getUserCertificateIssuerSerialSearchFilter();

         try {
            if (var4 == null || var4.isEmpty()) {
               return var3;
            }
         } catch (FindException var5) {
            throw a(var5);
         }

         var3 = this.a(var4, var1, var2, null);
      } catch (FindException var6) {
         c.log(Level.WARNING, t[124], var6);
      }

      return var3;
   }

   private X509Certificate a(String param1, X500Principal param2, BigInteger param3, String param4) throws FindException {
      // $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: aconst_null
      // 001: astore 5
      // 003: aload 0
      // 004: aload 1
      // 005: aload 2
      // 006: aload 3
      // 007: aload 4
      // 009: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.b (Ljava/lang/String;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/lang/String;)Ljava/lang/String;
      // 00c: astore 6
      // 00e: aload 0
      // 00f: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a ()Ljava/util/Set;
      // 012: astore 7
      // 014: bipush 1
      // 015: anewarray 1206
      // 018: astore 8
      // 01a: new java/util/ArrayList
      // 01d: dup
      // 01e: invokespecial java/util/ArrayList.<init> ()V
      // 021: astore 9
      // 023: aload 0
      // 024: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 027: aload 6
      // 029: lconst_1
      // 02a: aload 7
      // 02c: new com/l7tech/server/identity/ldap/w
      // 02f: dup
      // 030: aload 0
      // 031: aload 8
      // 033: aload 7
      // 035: aload 9
      // 037: invokespecial com/l7tech/server/identity/ldap/w.<init> (Lcom/l7tech/server/identity/ldap/LdapIdentityProviderImpl;[Ljava/lang/String;Ljava/util/Set;Ljava/util/List;)V
      // 03a: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 03d: aload 9
      // 03f: invokeinterface java/util/List.isEmpty ()Z 1
      // 044: ifne 0f1
      // 047: aload 9
      // 049: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 04e: astore 10
      // 050: aload 10
      // 052: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 057: ifeq 0ce
      // 05a: aload 10
      // 05c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 061: checkcast java/security/cert/X509Certificate
      // 064: astore 11
      // 066: aload 2
      // 067: ifnull 0a2
      // 06a: aload 3
      // 06b: ifnull 0a2
      // 06e: goto 075
      // 071: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 074: athrow
      // 075: aload 2
      // 076: aload 11
      // 078: invokevirtual java/security/cert/X509Certificate.getIssuerX500Principal ()Ljavax/security/auth/x500/X500Principal;
      // 07b: invokevirtual javax/security/auth/x500/X500Principal.equals (Ljava/lang/Object;)Z
      // 07e: ifeq 0bf
      // 081: goto 088
      // 084: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 087: athrow
      // 088: aload 3
      // 089: aload 11
      // 08b: invokevirtual java/security/cert/X509Certificate.getSerialNumber ()Ljava/math/BigInteger;
      // 08e: invokevirtual java/math/BigInteger.equals (Ljava/lang/Object;)Z
      // 091: ifeq 0bf
      // 094: goto 09b
      // 097: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09a: athrow
      // 09b: aload 11
      // 09d: astore 5
      // 09f: goto 0bf
      // 0a2: aload 4
      // 0a4: ifnull 0bf
      // 0a7: aload 4
      // 0a9: aload 11
      // 0ab: invokestatic com/l7tech/common/io/CertUtils.getSki (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
      // 0ae: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0b1: ifeq 0bf
      // 0b4: goto 0bb
      // 0b7: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ba: athrow
      // 0bb: aload 11
      // 0bd: astore 5
      // 0bf: aload 5
      // 0c1: ifnull 0cb
      // 0c4: goto 0ce
      // 0c7: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: goto 050
      // 0ce: aload 9
      // 0d0: aload 9
      // 0d2: invokeinterface java/util/List.size ()I 1
      // 0d7: anewarray 746
      // 0da: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 0df: checkcast [Ljava/security/cert/X509Certificate;
      // 0e2: astore 10
      // 0e4: aload 0
      // 0e5: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.s Lcom/l7tech/server/identity/ldap/LdapCertificateCache;
      // 0e8: aload 8
      // 0ea: bipush 0
      // 0eb: aaload
      // 0ec: aload 10
      // 0ee: invokevirtual com/l7tech/server/identity/ldap/LdapCertificateCache.a (Ljava/lang/String;[Ljava/security/cert/X509Certificate;)V
      // 0f1: goto 12c
      // 0f4: astore 7
      // 0f6: new com/l7tech/objectmodel/FindException
      // 0f9: dup
      // 0fa: aload 6
      // 0fc: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0ff: astore 12
      // 101: aload 12
      // 103: bipush 90
      // 105: aaload
      // 106: swap
      // 107: 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" ]
      // 10c: aload 7
      // 10e: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 111: athrow
      // 112: astore 7
      // 114: new com/l7tech/objectmodel/FindException
      // 117: dup
      // 118: aload 6
      // 11a: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 11d: bipush 90
      // 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: aload 7
      // 128: invokespecial com/l7tech/objectmodel/FindException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 12b: athrow
      // 12c: aload 5
      // 12e: ifnonnull 143
      // 131: aload 0
      // 132: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.s Lcom/l7tech/server/identity/ldap/LdapCertificateCache;
      // 135: aload 2
      // 136: aload 3
      // 137: aload 4
      // 139: invokevirtual com/l7tech/server/identity/ldap/LdapCertificateCache.a (Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/lang/String;)V
      // 13c: goto 143
      // 13f: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 142: athrow
      // 143: aload 5
      // 145: areturn
      // try (83 -> 86): 86 javax/naming/NamingException
      // try (71 -> 78): 79 javax/naming/NamingException
      // try (52 -> 65): 66 javax/naming/NamingException
      // try (47 -> 57): 58 javax/naming/NamingException
      // try (45 -> 49): 50 javax/naming/NamingException
      // try (9 -> 103): 104 javax/naming/NamingException
      // try (9 -> 103): 118 java/security/cert/CertificateException
      // try (130 -> 138): 139 javax/naming/NamingException
   }

   private EntityHeaderSet<IdentityHeader> b(String var1) throws FindException {
      EntityHeaderSet var2 = new EntityHeaderSet(new TreeSet());

      try {
         this.r.a(var1, this.g.getMaxSearchResultSize(), null, new x(this, var2));
      } catch (SizeLimitExceededException var6) {
         Logger var10000 = c;
         Level var10001 = Level.FINE;
         String var10002 = var6.getMessage();
         String[] var11 = t;
         var10000.log(var10001, var11[86] + var10002 + "'");
         var2.setMaxExceeded(this.g.getMaxSearchResultSize());
      } catch (javax.naming.AuthenticationException var7) {
         String[] var10 = t;
         throw new FindException(var10[88], var7);
      } catch (PartialResultException var8) {
         String[] var5 = t;
         c.log(Level.WARNING, var5[40], var8);
      } catch (NamingException var9) {
         String var4 = t[35] + var1;
         c.log(Level.INFO, var4, ExceptionUtils.getDebugException(var9));
         throw new FindException(var4, ExceptionUtils.getDebugException(var9));
      }

      return var2;
   }

   public String getAuthRealm() {
      return HexUtils.REALM;
   }

   @Override
   public String userSearchFilterWithParam(String var1) {
      try {
         if (this.h == null) {
            throw new IllegalStateException(t[66]);
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

      UserMappingConfig[] var2 = this.h.getUserMappings();
      ArrayList var3 = new ArrayList();
      String var4 = LdapUtils.filterMatchEscape(var1);

      for (UserMappingConfig var8 : var2) {
         var3.add(new i(var8.getObjClass(), var8.getLoginAttrName(), var4));
         var3.add(new i(var8.getObjClass(), var8.getNameAttrName(), var4));
      }

      return this.a(var3.toArray(new i[var3.size()]), false);
   }

   private String a(i[] var1, boolean var2) {
      h var3 = new h();

      try {
         if (var1.length > 1) {
            var3.or();
         }
      } catch (IllegalArgumentException var10) {
         throw a(var10);
      }

      for (i var7 : var1) {
         label39: {
            try {
               var3.and();
               var3.objectClass(var7.a);
               if (var2) {
                  var3.attrEquals(var7.b, var7.c);
                  break label39;
               }
            } catch (IllegalArgumentException var9) {
               throw a(var9);
            }

            var3.attrEqualsUnsafe(var7.b, var7.c);
         }

         var3.end();
      }

      try {
         if (var1.length > 1) {
            var3.end();
         }
      } catch (IllegalArgumentException var8) {
         throw a(var8);
      }

      return var3.buildFilter();
   }

   @Override
   public String groupSearchFilterWithParam(String param1, MemberStrategy... 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 0
      // 01: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 04: ifnonnull 19
      // 07: new java/lang/IllegalStateException
      // 0a: dup
      // 0b: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0e: bipush 47
      // 10: aaload
      // 11: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 14: athrow
      // 15: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18: athrow
      // 19: aload 0
      // 1a: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 1d: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGroupMappings ()[Lcom/l7tech/identity/ldap/GroupMappingConfig;
      // 20: astore 3
      // 21: aload 3
      // 22: ifnull 31
      // 25: aload 3
      // 26: arraylength
      // 27: ifgt 37
      // 2a: goto 31
      // 2d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 30: athrow
      // 31: aconst_null
      // 32: areturn
      // 33: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 36: athrow
      // 37: aload 1
      // 38: invokestatic com/l7tech/server/identity/ldap/LdapUtils.filterMatchEscape (Ljava/lang/String;)Ljava/lang/String;
      // 3b: astore 4
      // 3d: new java/util/ArrayList
      // 40: dup
      // 41: invokespecial java/util/ArrayList.<init> ()V
      // 44: astore 5
      // 46: aload 3
      // 47: astore 6
      // 49: aload 6
      // 4b: arraylength
      // 4c: istore 7
      // 4e: bipush 0
      // 4f: istore 8
      // 51: iload 8
      // 53: iload 7
      // 55: if_icmpge a8
      // 58: aload 6
      // 5a: iload 8
      // 5c: aaload
      // 5d: astore 9
      // 5f: aload 2
      // 60: ifnull 82
      // 63: aload 2
      // 64: arraylength
      // 65: ifeq 82
      // 68: goto 6f
      // 6b: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6e: athrow
      // 6f: aload 2
      // 70: aload 9
      // 72: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getMemberStrategy ()Lcom/l7tech/identity/ldap/MemberStrategy;
      // 75: invokestatic com/l7tech/util/ArrayUtils.contains ([Ljava/lang/Object;Ljava/lang/Object;)Z
      // 78: ifeq a2
      // 7b: goto 82
      // 7e: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 81: athrow
      // 82: aload 5
      // 84: new com/l7tech/server/identity/ldap/i
      // 87: dup
      // 88: aload 9
      // 8a: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getObjClass ()Ljava/lang/String;
      // 8d: aload 9
      // 8f: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getNameAttrName ()Ljava/lang/String;
      // 92: aload 4
      // 94: invokespecial com/l7tech/server/identity/ldap/i.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 97: invokevirtual java/util/ArrayList.add (Ljava/lang/Object;)Z
      // 9a: pop
      // 9b: goto a2
      // 9e: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a1: athrow
      // a2: iinc 8 1
      // a5: goto 51
      // a8: aload 0
      // a9: aload 5
      // ab: aload 5
      // ad: invokevirtual java/util/ArrayList.size ()I
      // b0: anewarray 421
      // b3: invokevirtual java/util/ArrayList.toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
      // b6: checkcast [Lcom/l7tech/server/identity/ldap/i;
      // b9: bipush 0
      // ba: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a ([Lcom/l7tech/server/identity/ldap/i;Z)Ljava/lang/String;
      // bd: areturn
      // try (0 -> 10): 10 java/lang/IllegalArgumentException
      // try (16 -> 21): 22 java/lang/IllegalArgumentException
      // try (18 -> 26): 26 java/lang/IllegalArgumentException
      // try (49 -> 54): 55 java/lang/IllegalArgumentException
      // try (51 -> 62): 63 java/lang/IllegalArgumentException
      // try (57 -> 76): 77 java/lang/IllegalArgumentException
   }

   @Override
   public DirContext getBrowseContext() throws NamingException {
      String var1 = this.getLastWorkingLdapUrl();
      if (var1 == null) {
         var1 = this.markCurrentUrlFailureAndGetFirstAvailableOne(null);
      }

      while (var1 != null) {
         try {
            Properties var2 = this.getLdapEnvProperties(var1);
            return new InitialDirContext(var2);
         } catch (CommunicationException | RuntimeException var4) {
            Logger var10000 = c;
            Level var10001 = Level.WARNING;
            String var10003 = ExceptionUtils.getMessageWithCause(var4);
            String[] var3 = t;
            var10000.log(var10001, var3[59] + var1 + var3[46] + var10003, ExceptionUtils.getDebugException(var4));
            var1 = this.markCurrentUrlFailureAndGetFirstAvailableOne(var1);
         }
      }

      throw new CommunicationException(t[1]);
   }

   public void test(boolean param1, String param2, char[] param3) throws InvalidIdProviderCfgException {
      // $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: aconst_null
      // 001: astore 4
      // 003: aload 0
      // 004: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.getBrowseContext ()Ljavax/naming/directory/DirContext;
      // 007: astore 4
      // 009: goto 081
      // 00c: astore 5
      // 00e: aload 5
      // 010: instanceof javax/naming/AuthenticationException
      // 013: ifeq 040
      // 016: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 019: astore 19
      // 01b: aload 19
      // 01d: bipush 27
      // 01f: aaload
      // 020: astore 6
      // 022: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 025: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 028: aload 6
      // 02a: aload 19
      // 02c: bipush 101
      // 02e: aaload
      // 02f: swap
      // 030: 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" ]
      // 035: aload 5
      // 037: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 03a: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 03d: goto 077
      // 040: aload 5
      // 042: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 045: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 048: astore 19
      // 04a: aload 19
      // 04c: bipush 57
      // 04e: aaload
      // 04f: swap
      // 050: aload 19
      // 052: bipush 14
      // 054: aaload
      // 055: 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" ]
      // 05a: astore 6
      // 05c: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 05f: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 062: aload 6
      // 064: aload 19
      // 066: bipush 18
      // 068: aaload
      // 069: swap
      // 06a: 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" ]
      // 06f: aload 5
      // 071: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 074: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 077: new com/l7tech/identity/InvalidIdProviderCfgException
      // 07a: dup
      // 07b: aload 6
      // 07d: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 080: athrow
      // 081: iload 1
      // 082: ifeq 08b
      // 085: aload 4
      // 087: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 08a: return
      // 08b: aload 0
      // 08c: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 08f: aload 4
      // 091: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 094: astore 19
      // 096: aload 19
      // 098: bipush 53
      // 09a: aaload
      // 09b: lconst_1
      // 09c: aconst_null
      // 09d: aconst_null
      // 09e: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljavax/naming/directory/DirContext;Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 0a1: goto 0c5
      // 0a4: astore 5
      // 0a6: new com/l7tech/identity/InvalidIdProviderCfgException
      // 0a9: dup
      // 0aa: aload 0
      // 0ab: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0ae: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getSearchBase ()Ljava/lang/String;
      // 0b1: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0b4: astore 19
      // 0b6: aload 19
      // 0b8: bipush 100
      // 0ba: aaload
      // 0bb: swap
      // 0bc: 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" ]
      // 0c1: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 0c4: athrow
      // 0c5: bipush 0
      // 0c6: istore 5
      // 0c8: aload 0
      // 0c9: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 0cc: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserMappings ()[Lcom/l7tech/identity/ldap/UserMappingConfig;
      // 0cf: astore 6
      // 0d1: new java/util/ArrayList
      // 0d4: dup
      // 0d5: invokespecial java/util/ArrayList.<init> ()V
      // 0d8: astore 7
      // 0da: new java/util/ArrayList
      // 0dd: dup
      // 0de: invokespecial java/util/ArrayList.<init> ()V
      // 0e1: astore 8
      // 0e3: aload 6
      // 0e5: astore 9
      // 0e7: aload 9
      // 0e9: arraylength
      // 0ea: istore 10
      // 0ec: bipush 0
      // 0ed: istore 11
      // 0ef: iload 11
      // 0f1: iload 10
      // 0f3: if_icmpge 1d8
      // 0f6: aload 9
      // 0f8: iload 11
      // 0fa: aaload
      // 0fb: astore 12
      // 0fd: aload 12
      // 0ff: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLoginAttrName ()Ljava/lang/String;
      // 102: ifnull 118
      // 105: aload 12
      // 107: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLoginAttrName ()Ljava/lang/String;
      // 10a: invokevirtual java/lang/String.length ()I
      // 10d: bipush 1
      // 10e: if_icmpge 129
      // 111: goto 118
      // 114: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 117: athrow
      // 118: aload 8
      // 11a: aload 12
      // 11c: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 121: pop
      // 122: goto 1d2
      // 125: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 128: athrow
      // 129: new com/l7tech/server/identity/ldap/h
      // 12c: dup
      // 12d: invokespecial com/l7tech/server/identity/ldap/h.<init> ()V
      // 130: astore 13
      // 132: aload 13
      // 134: invokevirtual com/l7tech/server/identity/ldap/h.or ()V
      // 137: aload 13
      // 139: invokevirtual com/l7tech/server/identity/ldap/h.and ()V
      // 13c: aload 13
      // 13e: aload 12
      // 140: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 143: invokevirtual com/l7tech/server/identity/ldap/h.objectClass (Ljava/lang/String;)V
      // 146: aload 13
      // 148: aload 12
      // 14a: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLoginAttrName ()Ljava/lang/String;
      // 14d: invokevirtual com/l7tech/server/identity/ldap/h.attrPresent (Ljava/lang/String;)V
      // 150: aload 13
      // 152: invokevirtual com/l7tech/server/identity/ldap/h.end ()V
      // 155: aload 13
      // 157: invokevirtual com/l7tech/server/identity/ldap/h.and ()V
      // 15a: aload 13
      // 15c: aload 12
      // 15e: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 161: invokevirtual com/l7tech/server/identity/ldap/h.objectClass (Ljava/lang/String;)V
      // 164: aload 13
      // 166: aload 12
      // 168: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLoginAttrName ()Ljava/lang/String;
      // 16b: invokevirtual com/l7tech/server/identity/ldap/h.attrPresent (Ljava/lang/String;)V
      // 16e: aload 13
      // 170: invokevirtual com/l7tech/server/identity/ldap/h.end ()V
      // 173: aload 13
      // 175: invokevirtual com/l7tech/server/identity/ldap/h.end ()V
      // 178: bipush 1
      // 179: newarray 4
      // 17b: dup
      // 17c: bipush 0
      // 17d: bipush 0
      // 17e: bastore
      // 17f: astore 14
      // 181: aload 0
      // 182: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 185: aload 4
      // 187: aload 13
      // 189: invokevirtual com/l7tech/server/identity/ldap/h.buildFilter ()Ljava/lang/String;
      // 18c: lconst_0
      // 18d: aconst_null
      // 18e: new com/l7tech/server/identity/ldap/y
      // 191: dup
      // 192: aload 0
      // 193: aload 14
      // 195: invokespecial com/l7tech/server/identity/ldap/y.<init> (Lcom/l7tech/server/identity/ldap/LdapIdentityProviderImpl;[Z)V
      // 198: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljavax/naming/directory/DirContext;Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 19b: iload 5
      // 19d: aload 14
      // 19f: bipush 0
      // 1a0: baload
      // 1a1: ior
      // 1a2: istore 5
      // 1a4: goto 1d2
      // 1a7: astore 14
      // 1a9: aload 7
      // 1ab: aload 12
      // 1ad: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 1b2: pop
      // 1b3: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 1b6: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 1b9: aload 12
      // 1bb: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 1be: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 1c1: astore 19
      // 1c3: aload 19
      // 1c5: bipush 4
      // 1c6: aaload
      // 1c7: swap
      // 1c8: 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" ]
      // 1cd: aload 14
      // 1cf: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1d2: iinc 11 1
      // 1d5: goto 0ef
      // 1d8: aload 0
      // 1d9: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 1dc: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGroupMappings ()[Lcom/l7tech/identity/ldap/GroupMappingConfig;
      // 1df: astore 9
      // 1e1: new java/util/ArrayList
      // 1e4: dup
      // 1e5: invokespecial java/util/ArrayList.<init> ()V
      // 1e8: astore 10
      // 1ea: bipush 0
      // 1eb: istore 11
      // 1ed: aload 9
      // 1ef: astore 12
      // 1f1: aload 12
      // 1f3: arraylength
      // 1f4: istore 13
      // 1f6: bipush 0
      // 1f7: istore 14
      // 1f9: iload 14
      // 1fb: iload 13
      // 1fd: if_icmpge 28f
      // 200: aload 12
      // 202: iload 14
      // 204: aaload
      // 205: astore 15
      // 207: new com/l7tech/server/identity/ldap/h
      // 20a: dup
      // 20b: invokespecial com/l7tech/server/identity/ldap/h.<init> ()V
      // 20e: astore 16
      // 210: aload 16
      // 212: invokevirtual com/l7tech/server/identity/ldap/h.and ()V
      // 215: aload 16
      // 217: aload 15
      // 219: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getObjClass ()Ljava/lang/String;
      // 21c: invokevirtual com/l7tech/server/identity/ldap/h.objectClass (Ljava/lang/String;)V
      // 21f: aload 16
      // 221: aload 15
      // 223: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getNameAttrName ()Ljava/lang/String;
      // 226: invokevirtual com/l7tech/server/identity/ldap/h.attrPresent (Ljava/lang/String;)V
      // 229: aload 16
      // 22b: invokevirtual com/l7tech/server/identity/ldap/h.end ()V
      // 22e: bipush 1
      // 22f: newarray 4
      // 231: dup
      // 232: bipush 0
      // 233: bipush 0
      // 234: bastore
      // 235: astore 17
      // 237: aload 0
      // 238: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 23b: aload 4
      // 23d: aload 16
      // 23f: invokevirtual com/l7tech/server/identity/ldap/h.buildFilter ()Ljava/lang/String;
      // 242: lconst_0
      // 243: aconst_null
      // 244: new com/l7tech/server/identity/ldap/z
      // 247: dup
      // 248: aload 0
      // 249: aload 17
      // 24b: invokespecial com/l7tech/server/identity/ldap/z.<init> (Lcom/l7tech/server/identity/ldap/LdapIdentityProviderImpl;[Z)V
      // 24e: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljavax/naming/directory/DirContext;Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 251: iload 11
      // 253: aload 17
      // 255: bipush 0
      // 256: baload
      // 257: ior
      // 258: istore 11
      // 25a: goto 289
      // 25d: astore 17
      // 25f: aload 10
      // 261: aload 15
      // 263: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 268: pop
      // 269: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 26c: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 26f: aload 15
      // 271: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getObjClass ()Ljava/lang/String;
      // 274: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 277: astore 19
      // 279: aload 19
      // 27b: bipush 94
      // 27d: aaload
      // 27e: swap
      // 27f: 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" ]
      // 284: aload 17
      // 286: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 289: iinc 14 1
      // 28c: goto 1f9
      // 28f: bipush 1
      // 290: istore 12
      // 292: bipush 1
      // 293: istore 13
      // 295: bipush 1
      // 296: istore 14
      // 298: getstatic com/l7tech/server/identity/ldap/g.a [I
      // 29b: aload 0
      // 29c: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 29f: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserCertificateUseType ()Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType;
      // 2a2: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig$UserCertificateUseType.ordinal ()I
      // 2a5: iaload
      // 2a6: lookupswitch 271 2 1 26 2 102
      // 2c0: bipush 1
      // 2c1: newarray 4
      // 2c3: dup
      // 2c4: bipush 0
      // 2c5: bipush 0
      // 2c6: bastore
      // 2c7: astore 15
      // 2c9: aload 0
      // 2ca: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 2cd: aload 4
      // 2cf: aload 0
      // 2d0: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 2d3: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserCertificateIndexSearchFilter ()Ljava/lang/String;
      // 2d6: ldc2_w 1000
      // 2d9: aconst_null
      // 2da: new com/l7tech/server/identity/ldap/aa
      // 2dd: dup
      // 2de: aload 0
      // 2df: aload 6
      // 2e1: aload 15
      // 2e3: invokespecial com/l7tech/server/identity/ldap/aa.<init> (Lcom/l7tech/server/identity/ldap/LdapIdentityProviderImpl;[Lcom/l7tech/identity/ldap/UserMappingConfig;[Z)V
      // 2e6: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljavax/naming/directory/DirContext;Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 2e9: goto 303
      // 2ec: astore 16
      // 2ee: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 2f1: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 2f4: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 2f7: astore 19
      // 2f9: aload 19
      // 2fb: bipush 106
      // 2fd: aaload
      // 2fe: aload 16
      // 300: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 303: aload 15
      // 305: bipush 0
      // 306: baload
      // 307: istore 12
      // 309: goto 3b5
      // 30c: aload 0
      // 30d: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 310: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserCertificateIssuerSerialSearchFilter ()Ljava/lang/String;
      // 313: astore 15
      // 315: aload 15
      // 317: ifnull 35f
      // 31a: aload 15
      // 31c: invokevirtual java/lang/String.isEmpty ()Z
      // 31f: ifne 35f
      // 322: goto 329
      // 325: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 328: athrow
      // 329: bipush 0
      // 32a: istore 13
      // 32c: aload 0
      // 32d: aload 15
      // 32f: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c (Ljava/lang/String;)Ljava/lang/String;
      // 332: astore 16
      // 334: aload 0
      // 335: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 338: aload 4
      // 33a: aload 16
      // 33c: lconst_1
      // 33d: aconst_null
      // 33e: aconst_null
      // 33f: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljavax/naming/directory/DirContext;Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 342: bipush 1
      // 343: istore 13
      // 345: goto 35f
      // 348: astore 16
      // 34a: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 34d: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 350: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 353: astore 19
      // 355: aload 19
      // 357: bipush 17
      // 359: aaload
      // 35a: aload 16
      // 35c: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 35f: aload 0
      // 360: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 363: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserCertificateSKISearchFilter ()Ljava/lang/String;
      // 366: astore 16
      // 368: aload 16
      // 36a: ifnull 3b5
      // 36d: aload 16
      // 36f: invokevirtual java/lang/String.isEmpty ()Z
      // 372: ifne 3b5
      // 375: goto 37c
      // 378: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37b: athrow
      // 37c: bipush 0
      // 37d: istore 14
      // 37f: aload 0
      // 380: aload 16
      // 382: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c (Ljava/lang/String;)Ljava/lang/String;
      // 385: astore 17
      // 387: aload 0
      // 388: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.r Lcom/l7tech/server/identity/ldap/ad;
      // 38b: aload 4
      // 38d: aload 17
      // 38f: lconst_1
      // 390: aconst_null
      // 391: aconst_null
      // 392: invokevirtual com/l7tech/server/identity/ldap/ad.a (Ljavax/naming/directory/DirContext;Ljava/lang/String;JLjava/util/Set;Lcom/l7tech/server/identity/ldap/k;)V
      // 395: bipush 1
      // 396: istore 14
      // 398: goto 3b5
      // 39b: astore 17
      // 39d: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 3a0: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 3a3: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 3a6: astore 19
      // 3a8: aload 19
      // 3aa: bipush 17
      // 3ac: aaload
      // 3ad: aload 17
      // 3af: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 3b2: goto 3b5
      // 3b5: new java/lang/StringBuilder
      // 3b8: dup
      // 3b9: invokespecial java/lang/StringBuilder.<init> ()V
      // 3bc: astore 15
      // 3be: aload 8
      // 3c0: invokeinterface java/util/Collection.size ()I 1
      // 3c5: ifle 428
      // 3c8: aload 15
      // 3ca: invokevirtual java/lang/StringBuilder.length ()I
      // 3cd: ifle 3e6
      // 3d0: goto 3d7
      // 3d3: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d6: athrow
      // 3d7: aload 15
      // 3d9: bipush 10
      // 3db: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 3de: pop
      // 3df: goto 3e6
      // 3e2: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3e5: athrow
      // 3e6: aload 15
      // 3e8: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 3eb: astore 19
      // 3ed: aload 19
      // 3ef: bipush 50
      // 3f1: aaload
      // 3f2: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 3f5: pop
      // 3f6: aload 8
      // 3f8: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 3fd: astore 16
      // 3ff: aload 16
      // 401: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 406: ifeq 428
      // 409: aload 16
      // 40b: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 410: checkcast com/l7tech/identity/ldap/UserMappingConfig
      // 413: astore 17
      // 415: aload 15
      // 417: ldc " "
      // 419: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 41c: aload 17
      // 41e: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 421: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 424: pop
      // 425: goto 3ff
      // 428: aload 7
      // 42a: invokeinterface java/util/Collection.size ()I 1
      // 42f: ifgt 443
      // 432: aload 10
      // 434: invokeinterface java/util/Collection.size ()I 1
      // 439: ifle 4e5
      // 43c: goto 443
      // 43f: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 442: athrow
      // 443: aload 15
      // 445: invokevirtual java/lang/StringBuilder.length ()I
      // 448: ifle 461
      // 44b: goto 452
      // 44e: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 451: athrow
      // 452: aload 15
      // 454: bipush 10
      // 456: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 459: pop
      // 45a: goto 461
      // 45d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 460: athrow
      // 461: aload 15
      // 463: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 466: astore 19
      // 468: aload 19
      // 46a: bipush 120
      // 46c: aaload
      // 46d: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 470: pop
      // 471: aload 7
      // 473: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 478: astore 16
      // 47a: aload 16
      // 47c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 481: ifeq 4ab
      // 484: aload 16
      // 486: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 48b: checkcast com/l7tech/identity/ldap/UserMappingConfig
      // 48e: astore 17
      // 490: aload 15
      // 492: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 495: astore 19
      // 497: aload 19
      // 499: bipush 111
      // 49b: aaload
      // 49c: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 49f: aload 17
      // 4a1: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 4a4: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 4a7: pop
      // 4a8: goto 47a
      // 4ab: aload 10
      // 4ad: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 4b2: astore 16
      // 4b4: aload 16
      // 4b6: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 4bb: ifeq 4e5
      // 4be: aload 16
      // 4c0: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 4c5: checkcast com/l7tech/identity/ldap/GroupMappingConfig
      // 4c8: astore 17
      // 4ca: aload 15
      // 4cc: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 4cf: astore 19
      // 4d1: aload 19
      // 4d3: bipush 78
      // 4d5: aaload
      // 4d6: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 4d9: aload 17
      // 4db: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getObjClass ()Ljava/lang/String;
      // 4de: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 4e1: pop
      // 4e2: goto 4b4
      // 4e5: iload 5
      // 4e7: ifne 518
      // 4ea: aload 15
      // 4ec: invokevirtual java/lang/StringBuilder.length ()I
      // 4ef: ifle 508
      // 4f2: goto 4f9
      // 4f5: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4f8: athrow
      // 4f9: aload 15
      // 4fb: bipush 10
      // 4fd: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 500: pop
      // 501: goto 508
      // 504: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 507: athrow
      // 508: aload 15
      // 50a: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 50d: astore 19
      // 50f: aload 19
      // 511: bipush 79
      // 513: aaload
      // 514: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 517: pop
      // 518: iload 11
      // 51a: ifne 558
      // 51d: aload 9
      // 51f: arraylength
      // 520: ifle 558
      // 523: goto 52a
      // 526: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 529: athrow
      // 52a: aload 15
      // 52c: invokevirtual java/lang/StringBuilder.length ()I
      // 52f: ifle 548
      // 532: goto 539
      // 535: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 538: athrow
      // 539: aload 15
      // 53b: bipush 10
      // 53d: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 540: pop
      // 541: goto 548
      // 544: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 547: athrow
      // 548: aload 15
      // 54a: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 54d: astore 19
      // 54f: aload 19
      // 551: bipush 68
      // 553: aaload
      // 554: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 557: pop
      // 558: iload 12
      // 55a: ifne 58b
      // 55d: aload 15
      // 55f: invokevirtual java/lang/StringBuilder.length ()I
      // 562: ifle 57b
      // 565: goto 56c
      // 568: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 56b: athrow
      // 56c: aload 15
      // 56e: bipush 10
      // 570: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 573: pop
      // 574: goto 57b
      // 577: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 57a: athrow
      // 57b: aload 15
      // 57d: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 580: astore 19
      // 582: aload 19
      // 584: bipush 80
      // 586: aaload
      // 587: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 58a: pop
      // 58b: iload 13
      // 58d: ifne 5be
      // 590: aload 15
      // 592: invokevirtual java/lang/StringBuilder.length ()I
      // 595: ifle 5ae
      // 598: goto 59f
      // 59b: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 59e: athrow
      // 59f: aload 15
      // 5a1: bipush 10
      // 5a3: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 5a6: pop
      // 5a7: goto 5ae
      // 5aa: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5ad: athrow
      // 5ae: aload 15
      // 5b0: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 5b3: astore 19
      // 5b5: aload 19
      // 5b7: bipush 41
      // 5b9: aaload
      // 5ba: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 5bd: pop
      // 5be: iload 14
      // 5c0: ifne 5f1
      // 5c3: aload 15
      // 5c5: invokevirtual java/lang/StringBuilder.length ()I
      // 5c8: ifle 5e1
      // 5cb: goto 5d2
      // 5ce: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5d1: athrow
      // 5d2: aload 15
      // 5d4: bipush 10
      // 5d6: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 5d9: pop
      // 5da: goto 5e1
      // 5dd: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5e0: athrow
      // 5e1: aload 15
      // 5e3: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 5e6: astore 19
      // 5e8: aload 19
      // 5ea: bipush 60
      // 5ec: aaload
      // 5ed: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 5f0: pop
      // 5f1: aload 15
      // 5f3: invokevirtual java/lang/StringBuilder.length ()I
      // 5f6: ifle 621
      // 5f9: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 5fc: aload 15
      // 5fe: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 601: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 604: bipush 13
      // 606: aaload
      // 607: swap
      // 608: 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" ]
      // 60d: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 610: new com/l7tech/identity/InvalidIdProviderCfgException
      // 613: dup
      // 614: aload 15
      // 616: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 619: invokespecial com/l7tech/identity/InvalidIdProviderCfgException.<init> (Ljava/lang/String;)V
      // 61c: athrow
      // 61d: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 620: athrow
      // 621: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 624: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 627: bipush 83
      // 629: aaload
      // 62a: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 62d: aload 4
      // 62f: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 632: goto 63f
      // 635: astore 18
      // 637: aload 4
      // 639: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 63c: aload 18
      // 63e: athrow
      // 63f: return
      // try (2 -> 5): 6 javax/naming/NamingException
      // try (62 -> 74): 75 javax/naming/NamingException
      // try (168 -> 194): 195 javax/naming/NamingException
      // try (255 -> 281): 282 javax/naming/NamingException
      // try (322 -> 337): 338 java/lang/Exception
      // try (367 -> 381): 382 java/lang/Exception
      // try (406 -> 420): 421 javax/naming/NamingException
      // try (2 -> 59): 701 null
      // try (673 -> 691): 691 javax/naming/NamingException
      // try (652 -> 662): 663 javax/naming/NamingException
      // try (650 -> 655): 656 javax/naming/NamingException
      // try (629 -> 639): 640 javax/naming/NamingException
      // try (627 -> 632): 633 javax/naming/NamingException
      // try (606 -> 616): 617 javax/naming/NamingException
      // try (604 -> 609): 610 javax/naming/NamingException
      // try (583 -> 593): 594 javax/naming/NamingException
      // try (577 -> 586): 587 javax/naming/NamingException
      // try (575 -> 580): 581 javax/naming/NamingException
      // try (554 -> 564): 565 javax/naming/NamingException
      // try (552 -> 557): 558 javax/naming/NamingException
      // try (487 -> 497): 498 javax/naming/NamingException
      // try (481 -> 490): 491 javax/naming/NamingException
      // try (478 -> 484): 485 javax/naming/NamingException
      // try (439 -> 449): 450 javax/naming/NamingException
      // try (436 -> 442): 443 javax/naming/NamingException
      // try (396 -> 401): 402 javax/naming/NamingException
      // try (357 -> 362): 363 javax/naming/NamingException
      // try (121 -> 134): 134 javax/naming/NamingException
      // try (118 -> 126): 127 javax/naming/NamingException
      // try (62 -> 698): 701 null
      // try (701 -> 702): 701 null
   }

   public void preSaveClientCert(LdapUser var1, X509Certificate[] var2) throws VetoSave {
   }

   public void setUserManager(LdapUserManager var1) {
      this.l = var1;
   }

   public void setGroupManager(LdapGroupManager var1) {
      this.m = var1;
   }

   public boolean hasClientCert(String param1) throws AuthenticationException {
      // $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: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.l Lcom/l7tech/server/identity/ldap/LdapUserManager;
      // 04: aload 1
      // 05: invokeinterface com/l7tech/server/identity/ldap/LdapUserManager.findByLogin (Ljava/lang/String;)Lcom/l7tech/identity/User; 2
      // 0a: checkcast com/l7tech/identity/ldap/LdapUser
      // 0d: astore 2
      // 0e: aload 2
      // 0f: ifnull 4f
      // 12: aload 0
      // 13: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.b ()Z
      // 16: ifeq 38
      // 19: goto 20
      // 1c: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: aload 2
      // 21: invokevirtual com/l7tech/identity/ldap/LdapUser.getLdapCertBytes ()[B
      // 24: ifnull 36
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: bipush 1
      // 2f: goto 37
      // 32: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 35: athrow
      // 36: bipush 0
      // 37: ireturn
      // 38: aload 0
      // 39: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.k Lcom/l7tech/identity/cert/ClientCertManager;
      // 3c: aload 2
      // 3d: invokeinterface com/l7tech/identity/cert/ClientCertManager.getUserCert (Lcom/l7tech/identity/User;)Ljava/security/cert/Certificate; 2
      // 42: ifnull 4d
      // 45: bipush 1
      // 46: goto 4e
      // 49: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4c: athrow
      // 4d: bipush 0
      // 4e: ireturn
      // 4f: bipush 0
      // 50: ireturn
      // 51: astore 2
      // 52: new com/l7tech/identity/AuthenticationException
      // 55: dup
      // 56: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 59: bipush 76
      // 5b: aaload
      // 5c: bipush 1
      // 5d: anewarray 755
      // 60: dup
      // 61: bipush 0
      // 62: aload 1
      // 63: aastore
      // 64: invokestatic java/lang/String.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      // 67: aload 2
      // 68: invokespecial com/l7tech/identity/AuthenticationException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 6b: athrow
      // try (14 -> 22): 22 com/l7tech/objectmodel/FindException
      // try (8 -> 17): 18 com/l7tech/objectmodel/FindException
      // try (6 -> 11): 12 com/l7tech/objectmodel/FindException
      // try (0 -> 25): 39 com/l7tech/objectmodel/FindException
      // try (26 -> 33): 33 com/l7tech/objectmodel/FindException
      // try (26 -> 36): 39 com/l7tech/objectmodel/FindException
      // try (37 -> 38): 39 com/l7tech/objectmodel/FindException
   }

   public void setClientCertManager(ClientCertManager var1) {
      this.k = var1;
   }

   public void setConfigManager(IdentityProviderConfigManager var1) {
      this.j = var1;
   }

   public void afterPropertiesSet() throws Exception {
      try {
         if (this.k == null) {
            throw new IllegalStateException(t[16]);
         }
      } catch (Exception var4) {
         throw a(var4);
      }

      try {
         if (this.f == null) {
            throw new IllegalStateException(t[45]);
         }
      } catch (Exception var2) {
         throw a(var2);
      }

      try {
         if (this.l == null) {
            throw new IllegalStateException(t[107]);
         }
      } catch (Exception var3) {
         throw a(var3);
      }

      try {
         if (this.m == null) {
            throw new IllegalStateException(t[116]);
         }
      } catch (Exception var1) {
         throw a(var1);
      }
   }

   @Override
   public void start() throws LifecycleException {
      try {
         this.s.start();
         if (this.m instanceof Lifecycle) {
            ((Lifecycle)this.m).start();
         }
      } catch (LifecycleException var1) {
         throw a(var1);
      }
   }

   @Override
   public void stop() throws LifecycleException {
      try {
         this.s.stop();
         if (this.m instanceof Lifecycle) {
            ((Lifecycle)this.m).stop();
         }
      } catch (LifecycleException var1) {
         throw a(var1);
      }
   }

   @Override
   public boolean isValidEntryBasedOnUserAccountControlAttribute(String param1, Attributes 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:
      // 000: ldc2_w 2
      // 003: lstore 3
      // 004: ldc2_w 16
      // 007: lstore 5
      // 009: ldc2_w 8388608
      // 00c: lstore 7
      // 00e: aload 2
      // 00f: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 012: astore 12
      // 014: aload 12
      // 016: bipush 81
      // 018: aaload
      // 019: invokeinterface javax/naming/directory/Attributes.get (Ljava/lang/String;)Ljavax/naming/directory/Attribute; 2
      // 01e: astore 9
      // 020: aload 9
      // 022: ifnull 12f
      // 025: aload 9
      // 027: invokeinterface javax/naming/directory/Attribute.size ()I 1
      // 02c: ifle 12f
      // 02f: goto 036
      // 032: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 035: athrow
      // 036: aconst_null
      // 037: astore 10
      // 039: aload 9
      // 03b: bipush 0
      // 03c: invokeinterface javax/naming/directory/Attribute.get (I)Ljava/lang/Object; 2
      // 041: astore 10
      // 043: goto 05b
      // 046: astore 11
      // 048: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 04b: getstatic java/util/logging/Level.SEVERE Ljava/util/logging/Level;
      // 04e: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 051: astore 12
      // 053: aload 12
      // 055: bipush 7
      // 057: aaload
      // 058: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 05b: aconst_null
      // 05c: astore 11
      // 05e: aload 10
      // 060: instanceof java/lang/String
      // 063: ifeq 073
      // 066: aload 10
      // 068: checkcast java/lang/String
      // 06b: invokestatic java/lang/Long.valueOf (Ljava/lang/String;)Ljava/lang/Long;
      // 06e: astore 11
      // 070: goto 0ab
      // 073: aload 10
      // 075: instanceof java/lang/Long
      // 078: ifeq 085
      // 07b: aload 10
      // 07d: checkcast java/lang/Long
      // 080: astore 11
      // 082: goto 0ab
      // 085: aload 10
      // 087: ifnull 0ab
      // 08a: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 08d: aload 10
      // 08f: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 092: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 095: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 098: bipush 93
      // 09a: aaload
      // 09b: swap
      // 09c: 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" ]
      // 0a1: invokevirtual java/util/logging/Logger.severe (Ljava/lang/String;)V
      // 0a4: goto 0ab
      // 0a7: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0aa: athrow
      // 0ab: aload 11
      // 0ad: ifnull 12f
      // 0b0: aload 11
      // 0b2: invokevirtual java/lang/Long.longValue ()J
      // 0b5: ldc2_w 2
      // 0b8: land
      // 0b9: ldc2_w 2
      // 0bc: lcmp
      // 0bd: ifne 0df
      // 0c0: goto 0c7
      // 0c3: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c6: athrow
      // 0c7: aload 0
      // 0c8: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.f Lcom/l7tech/server/audit/Auditor;
      // 0cb: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_DISABLED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0ce: bipush 1
      // 0cf: anewarray 1206
      // 0d2: dup
      // 0d3: bipush 0
      // 0d4: aload 1
      // 0d5: aastore
      // 0d6: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0d9: bipush 0
      // 0da: ireturn
      // 0db: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: aload 11
      // 0e1: invokevirtual java/lang/Long.longValue ()J
      // 0e4: ldc2_w 16
      // 0e7: land
      // 0e8: ldc2_w 16
      // 0eb: lcmp
      // 0ec: ifne 107
      // 0ef: aload 0
      // 0f0: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.f Lcom/l7tech/server/audit/Auditor;
      // 0f3: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_LOCKED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0f6: bipush 1
      // 0f7: anewarray 1206
      // 0fa: dup
      // 0fb: bipush 0
      // 0fc: aload 1
      // 0fd: aastore
      // 0fe: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 101: bipush 0
      // 102: ireturn
      // 103: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 106: athrow
      // 107: aload 11
      // 109: invokevirtual java/lang/Long.longValue ()J
      // 10c: ldc2_w 8388608
      // 10f: land
      // 110: ldc2_w 8388608
      // 113: lcmp
      // 114: ifne 12f
      // 117: aload 0
      // 118: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.f Lcom/l7tech/server/audit/Auditor;
      // 11b: getstatic com/l7tech/gateway/common/audit/SystemMessages.AUTH_USER_EXPIRED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 11e: bipush 1
      // 11f: anewarray 1206
      // 122: dup
      // 123: bipush 0
      // 124: aload 1
      // 125: aastore
      // 126: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 129: bipush 0
      // 12a: ireturn
      // 12b: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12e: athrow
      // 12f: bipush 1
      // 130: ireturn
      // try (14 -> 19): 20 javax/naming/NamingException
      // try (24 -> 28): 29 javax/naming/NamingException
      // try (55 -> 67): 68 javax/naming/NamingException
      // try (70 -> 79): 80 javax/naming/NamingException
      // try (72 -> 94): 94 javax/naming/NamingException
      // try (96 -> 115): 115 javax/naming/NamingException
      // try (117 -> 136): 136 javax/naming/NamingException
   }

   @Override
   public boolean checkExpiredMSADAccount(String var1, Attributes var2) {
      String[] var8 = t;
      Attribute var3 = var2.get(var8[33]);

      try {
         if (var3 == null || var3.size() <= 0) {
            return false;
         }
      } catch (NamingException var11) {
         throw a(var11);
      }

      Object var4 = null;

      try {
         var4 = var3.get(0);
      } catch (NamingException var10) {
         var8 = t;
         c.log(Level.SEVERE, var8[12]);
      }

      label66: {
         try {
            if (var4 == null) {
               return false;
            }

            if (!(var4 instanceof String)) {
               break label66;
            }
         } catch (NamingException var13) {
            throw a(var13);
         }

         String var5 = (String)var4;

         try {
            if (var5.equals("0")) {
               return false;
            }
         } catch (NamingException var12) {
            throw a(var12);
         }

         BigInteger var6 = new BigInteger(var5);
         BigInteger var7 = var6.subtract(d).divide(e);

         try {
            if (System.currentTimeMillis() > var7.longValue()) {
               this.f.logAndAudit(SystemMessages.AUTH_USER_EXPIRED, var1);
               return true;
            }

            return false;
         } catch (NamingException var9) {
            throw a(var9);
         }
      }

      c.severe(t[69] + var4.getClass().getName());
      return false;
   }

   @Override
   public IdentityHeader searchResultToHeader(SearchResult 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:
      // 000: aload 1
      // 001: invokevirtual javax/naming/directory/SearchResult.getAttributes ()Ljavax/naming/directory/Attributes;
      // 004: astore 2
      // 005: aload 1
      // 006: invokevirtual javax/naming/directory/SearchResult.getNameInNamespace ()Ljava/lang/String;
      // 009: astore 3
      // 00a: aload 2
      // 00b: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 00e: astore 16
      // 010: aload 16
      // 012: bipush 15
      // 014: aaload
      // 015: invokeinterface javax/naming/directory/Attributes.get (Ljava/lang/String;)Ljavax/naming/directory/Attribute; 2
      // 01a: astore 4
      // 01c: aload 0
      // 01d: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 020: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserMappings ()[Lcom/l7tech/identity/ldap/UserMappingConfig;
      // 023: astore 5
      // 025: aload 5
      // 027: astore 6
      // 029: aload 6
      // 02b: arraylength
      // 02c: istore 7
      // 02e: bipush 0
      // 02f: istore 8
      // 031: iload 8
      // 033: iload 7
      // 035: if_icmpge 14a
      // 038: aload 6
      // 03a: iload 8
      // 03c: aaload
      // 03d: astore 9
      // 03f: aload 9
      // 041: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 044: astore 10
      // 046: aload 4
      // 048: aload 10
      // 04a: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attribute;Ljava/lang/String;)Z
      // 04d: ifeq 144
      // 050: aload 0
      // 051: aload 3
      // 052: aload 2
      // 053: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.isValidEntryBasedOnUserAccountControlAttribute (Ljava/lang/String;Ljavax/naming/directory/Attributes;)Z
      // 056: ifeq 070
      // 059: goto 060
      // 05c: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05f: athrow
      // 060: aload 0
      // 061: aload 3
      // 062: aload 2
      // 063: invokevirtual com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.checkExpiredMSADAccount (Ljava/lang/String;Ljavax/naming/directory/Attributes;)Z
      // 066: ifeq 076
      // 069: goto 070
      // 06c: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 06f: athrow
      // 070: aconst_null
      // 071: areturn
      // 072: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 075: athrow
      // 076: aconst_null
      // 077: astore 12
      // 079: aload 2
      // 07a: aload 9
      // 07c: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLoginAttrName ()Ljava/lang/String;
      // 07f: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 082: astore 11
      // 084: goto 0a1
      // 087: astore 13
      // 089: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 08c: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 08f: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 092: astore 16
      // 094: aload 16
      // 096: bipush 91
      // 098: aaload
      // 099: aload 13
      // 09b: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 09e: aconst_null
      // 09f: astore 11
      // 0a1: aload 11
      // 0a3: ifnull 0ad
      // 0a6: aload 11
      // 0a8: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 0ab: astore 12
      // 0ad: aconst_null
      // 0ae: astore 13
      // 0b0: aload 2
      // 0b1: aload 9
      // 0b3: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getNameAttrName ()Ljava/lang/String;
      // 0b6: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 0b9: astore 11
      // 0bb: goto 0d8
      // 0be: astore 14
      // 0c0: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 0c3: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0c6: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0c9: astore 16
      // 0cb: aload 16
      // 0cd: bipush 37
      // 0cf: aaload
      // 0d0: aload 14
      // 0d2: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0d5: aconst_null
      // 0d6: astore 11
      // 0d8: aload 11
      // 0da: ifnull 0e4
      // 0dd: aload 11
      // 0df: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 0e2: astore 13
      // 0e4: aconst_null
      // 0e5: astore 14
      // 0e7: aload 2
      // 0e8: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 0eb: astore 16
      // 0ed: aload 16
      // 0ef: bipush 2
      // 0f0: aaload
      // 0f1: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 0f4: astore 11
      // 0f6: goto 113
      // 0f9: astore 15
      // 0fb: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 0fe: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 101: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 104: astore 16
      // 106: aload 16
      // 108: bipush 119
      // 10a: aaload
      // 10b: aload 15
      // 10d: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 110: aconst_null
      // 111: astore 11
      // 113: aload 11
      // 115: ifnull 11f
      // 118: aload 11
      // 11a: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 11d: astore 14
      // 11f: aload 12
      // 121: ifnull 142
      // 124: new com/l7tech/objectmodel/IdentityHeader
      // 127: dup
      // 128: aload 0
      // 129: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 12c: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 12f: aload 3
      // 130: getstatic com/l7tech/objectmodel/EntityType.USER Lcom/l7tech/objectmodel/EntityType;
      // 133: aload 12
      // 135: aload 14
      // 137: aload 13
      // 139: aconst_null
      // 13a: invokespecial com/l7tech/objectmodel/IdentityHeader.<init> (Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Lcom/l7tech/objectmodel/EntityType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V
      // 13d: areturn
      // 13e: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 141: athrow
      // 142: aconst_null
      // 143: areturn
      // 144: iinc 8 1
      // 147: goto 031
      // 14a: aload 0
      // 14b: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 14e: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGroupMappings ()[Lcom/l7tech/identity/ldap/GroupMappingConfig;
      // 151: astore 6
      // 153: aload 6
      // 155: astore 7
      // 157: aload 7
      // 159: arraylength
      // 15a: istore 8
      // 15c: bipush 0
      // 15d: istore 9
      // 15f: iload 9
      // 161: iload 8
      // 163: if_icmpge 229
      // 166: aload 7
      // 168: iload 9
      // 16a: aaload
      // 16b: astore 10
      // 16d: aload 4
      // 16f: aload 10
      // 171: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getObjClass ()Ljava/lang/String;
      // 174: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attribute;Ljava/lang/String;)Z
      // 177: ifeq 223
      // 17a: aconst_null
      // 17b: astore 11
      // 17d: aload 2
      // 17e: aload 10
      // 180: invokevirtual com/l7tech/identity/ldap/GroupMappingConfig.getNameAttrName ()Ljava/lang/String;
      // 183: invokeinterface javax/naming/directory/Attributes.get (Ljava/lang/String;)Ljavax/naming/directory/Attribute; 2
      // 188: astore 12
      // 18a: aload 12
      // 18c: ifnull 1ca
      // 18f: aload 12
      // 191: invokeinterface javax/naming/directory/Attribute.size ()I 1
      // 196: ifle 1ca
      // 199: goto 1a0
      // 19c: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19f: athrow
      // 1a0: aload 12
      // 1a2: bipush 0
      // 1a3: invokeinterface javax/naming/directory/Attribute.get (I)Ljava/lang/Object; 2
      // 1a8: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 1ab: astore 11
      // 1ad: goto 1ca
      // 1b0: astore 13
      // 1b2: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 1b5: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 1b8: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 1bb: astore 16
      // 1bd: aload 16
      // 1bf: bipush 34
      // 1c1: aaload
      // 1c2: aload 13
      // 1c4: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1c7: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1ca: aload 11
      // 1cc: ifnonnull 1d2
      // 1cf: aload 3
      // 1d0: astore 11
      // 1d2: aconst_null
      // 1d3: astore 14
      // 1d5: aload 2
      // 1d6: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 1d9: astore 16
      // 1db: aload 16
      // 1dd: bipush 61
      // 1df: aaload
      // 1e0: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 1e3: astore 13
      // 1e5: goto 1fe
      // 1e8: astore 15
      // 1ea: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.c Ljava/util/logging/Logger;
      // 1ed: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 1f0: getstatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.t [Ljava/lang/String;
      // 1f3: bipush 98
      // 1f5: aaload
      // 1f6: aload 15
      // 1f8: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1fb: aconst_null
      // 1fc: astore 13
      // 1fe: aload 13
      // 200: ifnull 20a
      // 203: aload 13
      // 205: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 208: astore 14
      // 20a: new com/l7tech/objectmodel/IdentityHeader
      // 20d: dup
      // 20e: aload 0
      // 20f: getfield com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.h Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 212: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 215: aload 3
      // 216: getstatic com/l7tech/objectmodel/EntityType.GROUP Lcom/l7tech/objectmodel/EntityType;
      // 219: aload 11
      // 21b: aload 14
      // 21d: aconst_null
      // 21e: aconst_null
      // 21f: invokespecial com/l7tech/objectmodel/IdentityHeader.<init> (Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Lcom/l7tech/objectmodel/EntityType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V
      // 222: areturn
      // 223: iinc 9 1
      // 226: goto 15f
      // 229: aconst_null
      // 22a: areturn
      // try (47 -> 57): 57 javax/naming/NamingException
      // try (39 -> 52): 53 javax/naming/NamingException
      // try (35 -> 44): 45 javax/naming/NamingException
      // try (61 -> 66): 67 javax/naming/NamingException
      // try (86 -> 91): 92 javax/naming/NamingException
      // try (111 -> 119): 120 javax/naming/NamingException
      // try (188 -> 193): 194 javax/naming/NamingException
      // try (137 -> 152): 152 javax/naming/NamingException
      // try (196 -> 201): 202 javax/naming/NamingException
      // try (219 -> 227): 228 javax/naming/NamingException
   }

   public void setApplicationContext(ApplicationContext var1) throws BeansException {
      this.f = new Auditor(this, var1, c);
   }

   public void validate(LdapUser var1) throws ValidationException {
      User var2;
      try {
         var2 = this.l.findByPrimaryKey(var1.getId());
      } catch (FindException var6) {
         String var10002 = var1.getLogin();
         String[] var4 = t;
         throw new ValidationException(var4[85] + var10002 + var4[54], var6);
      }

      try {
         if (var2 == null) {
            throw new ValidationException(t[99] + var1.getLogin() + t[5]);
         }
      } catch (FindException var5) {
         throw a(var5);
      }
   }

   @Override
   public String getLastWorkingLdapUrl() {
      return this.p.getLastWorkingLdapUrl();
   }

   @Override
   public String markCurrentUrlFailureAndGetFirstAvailableOne(@Nullable String var1) {
      return this.p.markCurrentUrlFailureAndGetFirstAvailableOne(var1);
   }

   public Properties getLdapEnvProperties(String var1) throws NamingException {
      Properties var2 = null;
      var2 = LdapUtils.newEnvironment();
      String[] var6 = t;
      var2.put(var6[6], "3");
      var2.put(var6[117], var6[10]);
      var2.put(var6[28], var1);
      var2.put(var6[62], var6[23]);
      var2.put(var6[92], Long.toString(this.g.getLdapConnectionTimeout()));
      var2.put(var6[63], Long.toString(this.g.getLdapReadTimeout()));
      var2.put(var6[32], ConfigFactory.getProperty(var6[122], var6[29]));
      String var3 = this.h.getBindDN();

      label44: {
         try {
            if (var3 == null || var3.length() <= 0) {
               break label44;
            }
         } catch (FindException var10) {
            throw a(var10);
         }

         String var4;
         try {
            var4 = ServerVariables.expandSinglePasswordOnlyVariable(this.f, this.h.getBindPasswd());
         } catch (FindException var9) {
            String var10002 = ExceptionUtils.getMessage(var9);
            var6 = t;
            throw (ConfigurationException)new ConfigurationException(var6[74] + var10002).initCause(var9);
         }

         try {
            var2.put(t[43], t[84]);
            var2.put(t[96], var3);
            if (var4 != null) {
               var2.put(t[82], var4);
            }
         } catch (FindException var8) {
            throw a(var8);
         }
      }

      try {
         Object var12 = null;
         String var5 = new URI(var1).getScheme();
         var6 = t;
         if (var6[56].equalsIgnoreCase(var5)) {
            var12 = LdapSslCustomizerSupport.getSSLSocketFactoryClassname(this.h.isClientAuthEnabled(), this.h.getKeystoreId(), this.h.getKeyAlias());
            var2.put(var6[48], var12);
            var2.put(var6[3], var6[75]);
         }

         var2.putAll(LdapUtils.LDAP_ENV_OVERRIDES);
         LdapUtils.lock(var2);
      } catch (URISyntaxException | IllegalArgumentException var7) {
         Logger var10000 = c;
         Level var10001 = Level.WARNING;
         String var10003 = ExceptionUtils.getMessage(var7);
         var6 = t;
         var10000.log(var10001, var6[0] + var1 + var6[51] + var10003, ExceptionUtils.getDebugException(var7));
      }

      return var2;
   }

   @Override
   public DirContext getPaginatedSearchContext() throws NamingException {
      String var1 = this.getLastWorkingLdapUrl();
      if (var1 == null) {
         var1 = this.markCurrentUrlFailureAndGetFirstAvailableOne(null);
      }

      while (var1 != null) {
         try {
            Properties var2 = this.getLdapEnvProperties(var1);
            return new InitialLdapContext(var2, new BasicControl[0]);
         } catch (CommunicationException | RuntimeException var4) {
            Logger var7 = c;
            Level var8 = Level.WARNING;
            String var9 = ExceptionUtils.getMessageWithCause(var4);
            String[] var6 = t;
            var7.log(var8, var6[55] + var1 + var6[26] + var9, ExceptionUtils.getDebugException(var4));
            var1 = this.markCurrentUrlFailureAndGetFirstAvailableOne(var1);
         } catch (NamingException var5) {
            Logger var10000 = c;
            Level var10001 = Level.WARNING;
            String var10003 = ExceptionUtils.getMessage(var5);
            String[] var3 = t;
            var10000.log(var10001, var3[112] + var1 + var3[87] + var10003, ExceptionUtils.getDebugException(var5));
            var1 = this.markCurrentUrlFailureAndGetFirstAvailableOne(var1);
         }
      }

      throw new CommunicationException(t[121]);
   }

   private String c(String var1) throws InvalidIdProviderCfgException {
      try {
         return this.b(var1, new X500Principal(t[95]), BigInteger.ZERO, HexUtils.encodeBase64(new byte[1]));
      } catch (FindException var3) {
         throw new InvalidIdProviderCfgException(var3.getMessage());
      }
   }

   private String b(String var1, X500Principal var2, BigInteger var3, String var4) throws FindException {
      HashMap var5 = new HashMap();

      try {
         if (var2 != null) {
            var5.put(t[11], var2.getName());
            var5.put(t[19], var2.getName(t[89]));
            var5.put(t[102], var2.getName());
         }
      } catch (VariableNameSyntaxException var12) {
         throw a(var12);
      }

      try {
         if (var3 != null) {
            var5.put(t[52], var3.toString());
         }
      } catch (VariableNameSyntaxException var10) {
         throw a(var10);
      }

      try {
         if (var4 != null) {
            var5.put(t[109], var4);
            var5.put(t[20], HexUtils.hexDump(HexUtils.decodeBase64(var4)));
         }
      } catch (VariableNameSyntaxException var11) {
         throw a(var11);
      }

      try {
         return ExpandVariables.process(var1, var5, this.f, true, new f(this));
      } catch (VariableNameSyntaxException var8) {
         String var14 = ExceptionUtils.getMessage(var8);
         String[] var13 = t;
         throw new FindException(var13[8] + var14 + var13[24]);
      } catch (IllegalArgumentException var9) {
         String var10002 = ExceptionUtils.getMessage(var9);
         String[] var7 = t;
         throw new FindException(var7[25] + var10002 + var7[14]);
      }
   }

   private String[] d() {
      LinkedHashSet var1 = new LinkedHashSet();
      String[] var8 = t;
      var1.add(var8[58]);
      var1.add(var8[61]);
      var1.add(var8[104]);
      var1.add(var8[22]);
      UserMappingConfig[] var2 = this.h.getUserMappings();

      for (UserMappingConfig var6 : var2) {
         this.b(var1, var6.getEmailNameAttrName());
         this.b(var1, var6.getFirstNameAttrName());
         this.b(var1, var6.getKerberosAttrName());
         this.b(var1, var6.getKerberosEnterpriseAttrName());
         this.b(var1, var6.getLastNameAttrName());
         this.b(var1, var6.getLoginAttrName());
         this.b(var1, var6.getNameAttrName());
         this.b(var1, var6.getPasswdAttrName());
         this.a(var1, var6.getUserCertAttrName(), t[70]);
      }

      GroupMappingConfig[] var10 = this.h.getGroupMappings();

      for (GroupMappingConfig var7 : var10) {
         this.b(var1, var7.getMemberAttrName());
         this.b(var1, var7.getNameAttrName());
      }

      String[] var12 = this.h.getReturningAttributes();

      try {
         if (var12 != null) {
            var1.addAll(Arrays.asList(var12));
         }
      } catch (IllegalArgumentException var9) {
         throw a(var9);
      }

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

   private void b(Collection<? super String> var1, String var2) {
      this.a(var1, var2, null);
   }

   private void a(Collection<? super String> param1, String param2, String param3) {
      // $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 2
      // 01: ifnull 24
      // 04: aload 2
      // 05: invokevirtual java/lang/String.isEmpty ()Z
      // 08: ifne 24
      // 0b: goto 12
      // 0e: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11: athrow
      // 12: aload 1
      // 13: aload 2
      // 14: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 17: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 1c: pop
      // 1d: goto 37
      // 20: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23: athrow
      // 24: aload 3
      // 25: ifnull 37
      // 28: aload 1
      // 29: aload 3
      // 2a: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // 2f: pop
      // 30: goto 37
      // 33: invokestatic com/l7tech/server/identity/ldap/LdapIdentityProviderImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 36: athrow
      // 37: return
      // try (0 -> 5): 6 java/lang/IllegalArgumentException
      // try (2 -> 14): 14 java/lang/IllegalArgumentException
      // try (16 -> 22): 23 java/lang/IllegalArgumentException
   }

   static {
      String[] var5 = new String[125];
      int var3 = 0;
      String var2 = "\u0001W}z84')R1P\u0013\u0007\u001alcCPw4\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j#X1}9?j#P1h?#j Rplw38 E?\u000b(Sb\u007f%/:8_~r\u001d&Wg}y(+!_\u007f{y5//Ccu#?d<D~h8%% \u001a)Dcs%f>)Eeu9!j9Etnw++<Fxr0\nlX~hw %9Xu\u0018&Wg}y(+!_\u007f{y*.-F?j249%Y\u007f2\u001cD~~;#'lWr\u007f259%Xv<#./lCby%\u0007)/Ydr#\u0005%\"Bcs;f+8Bcu53>)\u001e\u001fSpn4.j*_}h24j:Wcu6$&)\u0016tn%)8l\u0011*\tDcs%f:>Yry$5#\"Q1w24()D~ow68%Xru''&lXpq2fm /Y|2$3$b\\\u007fx>h&(Wa2\u001b\"+<ued\u0011')8Yce\u0006%Ebi242\u001cD~~;#'lWr\u007f259%Xv<#./lWr\u007f83$8sil>4/?weh%f+8Bcu53>)\"\u0018Sbhw68#Rd\u007f2\"j*Y}p81#\"Q1y%4%>\u001eb5mf\u0002k\u0018\u000b#T{y42) Wbo*\u0018^t<\u0014*#)Xe<\u0014#88_wu4'>)\u0016\\}9'-)D1u$f8)Gdu%#.-\tDcs%f>)Eeu9!j/Sch> #/Weyw/$(Si<$#+>Uy<1/&8Sc!\u0000rPLw%%\"Px{\"4+8_~rw2/?B1z6/&9Dt2w\u0010%Ebi24d/W\u007fs9/)-Z\u0018?Csv2%>'Shu3#$8_wu24d$Si\u0005}\u0006!,g\u000e-Urs\"(>\tNau%#9\u00048Ddy\u0002k\u0018)\u001fSpn4.j*_}h24j:Wcu6$&)\u0016an8%/?Exr0f/>D~nwa\u0002b\u00168\u000fW\u007fr82j/Y\u007fr2%>lB~<#.#?\u0016uu%#)8Yce{f+9Byy92#/Weu8(j*Wxp2\"d\u0018&Wg}y(+!_\u007f{y68#@xx24d9D}\u0006*Y}p81 /Dtx2(>%W}ow\"#(\u0016\u007fs#f+9Byy92#/Wey\u0016\u0019Etn\u001a'$-Qtnw/9lX~hw5/8\u0014&Wg}y(+!_\u007f{y4/*Scn6*\u000e-Urs\"(>\tNau%#9#/W\u007fr82j)Nen6%>lXpq2f,>Y|<#.#?\u0016vn83:\u001e\u0000rPLw5/-Drtw#8>Yc< />$\u0016wu;2/>\u00161\tDcs%f&#Yzu9!j9F1\u007f24>%Px\u007f62/lTh<\u0004\r\u0003l_\u007f<3/8)Ues%?d\u0011/W\u007fr82j)Nen6%>lU\u007f\u001b!Cbhw6+?E1}#f&)Wbhw)$)\u0016ee'#E\u001cScz84'%Xv<\u001b\u0002\u000b\u001c\u0016by64)$\u0016sew-/>Ttn85j<Dxr4/:-Z1;p={1\u00116<\u007f#$8Scl%/9)\fj,*o\"\u0000rPLw5/-Drtw#8>Yc0w6+>Bx};f8)Edp#hT\u0018^t<$#+>Uy<1/&8Sc<1)8lCby%f))Deu1/)-Btow$3l_bo\"#8lXpq2f+\"R1o24#-Z1r\"+()D1u$f#\"@pp>\"d\u001e\u001cD~j>\"/>\u0016xow'&>Spx.f)#Xwu038)R#&Wg}y(+!_\u007f{y5//Ccu#?d-Cet2(>%Uph>)$\u0012}\u0007'(cr}\u007f\u0000!,gvz|\u0006!, \rCuu#)8l^pow(%8\u0016sy2(j%Xxh>'&%Ltx\u0002b\u0016\u001d8^xow68#@xx24j\"Stx$f+lU~r1/-m\u001f&Wg}y(+!_\u007f{y*.-F?z6%>#Dh2$))'Se!\u000fYdp3(m8\u0016pi#./\"Bx\u007f62/lUcy3#$8_pp$<\u0018^t<1)& Yfu9!j9Etnw++<Fxr0n9e\u0016usw(%8\u0016uy1/$)\u0016}s0/$lWeh%/(9Bt2\u0002v\u0016\f?Scu6*$9[sy%\u000fdYsv2%>\u000fZpo${`e\u0011lRxxw(%8\u0016g};/.-Bt+\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j9Exr0f\u0006\bwA<\u0002\u0014\u0006l\u0005 Rpl$\"\u000fW\u007fr82j/Y\u007fr2%>lB~<#.#?\u0016uu%#)8Ycewa\u000b#T{y42) Wbo+\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j9Exr0f\u0006\bwA<\u0002\u0014\u0006lM\u0018^t<$#+>Uy<1/&8Sc<1)8lCby%f))Deu1/)-Btow$3lEd~=#)8\u0016zy.f#(S\u007fh> #)D1u$f#\"@pp>\"d\u000b(Sb\u007f%/:8_~r\u001e/Y|2$3$b\\\u007fx>h&(Wa24)$\"Srhy6%#Z\u001e/Y|2$3$b\\\u007fx>h&(Wa2%#+(\u0018eu:#%9B0\u000fYdp3(m8\u0016wu9\"j\u0000rPLw39)D1z84j'Sc~24%?\u0016an>()%Fppwa\u001ak\u001a1\u007f6($#B1x22/>[xr2f\u0018\tw]Qy\u001d8^xow68#@xx24j\"Stx$f+lU~r1/-mclU~r#'#\"Su<2+:8O1\u007f24>lWeh%/(9Bt<9'')\u00181H?/9l[pl'/$+\u0016fu;*j.S1u0(%>Su<65j<Wchw),lByyw/$(Siu9!j<D~\u007f259b*\u0018^xow%%\"Px{\"4+8_~rw\"#(\u0016\u007fs#f3%S}xw'$5\u0016vn83:K8^t<62>>_si##j-Urs\"(>\tNau%#9lApow68)Etr#f(9B1e>#&(Su<6f>5Ft<9)>lEdl')88Su&w\u00169Etn\u0014#88_wu4'>)\rsu9'852\nYdr3f'9Zeu'*/lzU]\u0007f??Scow %>\u0016zy%$/>Yb<'4#\"Uxl6*jk%/Dtx2(>%W}ow\"#(\u0016\u007fs#f+9Byy92#/Weyw %>\u0016'\u001cD~~;#'lRt\u007f8\"#\"Q1\u007f24>lZ~\u007f62/(\u0016xrw\n\u000e\rf+<%\u0019Xp~;#j8Y1y/6+\"R1P\u0013\u0007\u001alTxr3f:-Ebk84.v\u0016\u0003?E}\u0017\u000fYdp3(m8\u0016wu9\"j9Etnwao?\u0011\u0018\u0018^t<\"5/>\u0016us25j\"Ye<2>#?B?\u000flqcs\"6j!Wal>(-l*\u0018^xow%%\"Px{\"4+8_~rw\"#(\u0016\u007fs#f3%S}xw'$5\u0016do249N\u0018^t<$#+>Uy<1/&8Sc<1)8lUtn#/,%Uph2f#\"Rtd>(-lRxxw(%8\u0016hu2*.lW\u007few39)D1\u007f24>%Px\u007f62/?\u00129Etn\u0016%)#C\u007fh\u0014)$8D~p &Wg}y(+!_\u007f{y5//Ccu#?d/Dtx2(>%W}o(8^xow*.-F1\u007f8(,%Q1k65j8Sbh2\"j?Cr\u007f259*C}p.\u0006?_|l;#\u0005\u0019Etnw*8^t<$#+>Uy<%#99Zeow#2/Stx2\"j8^t<:'2%[dqmfm\u0002v\u0016)\u0000rPLw5/-Drtw#8>Yc&w\u0007?8^tr#/)-Bxs9f,-_}y3h\t\u000fw_S\u0019\u000f\t\rz\u001e\u0000rPLw5/-Drtw#8>Yc< />$\u0016wu;2/>\u0016\u0019/W\u007fr82j)Nen6%>lCby%f&#Qxr!/Y|2$3$b\\\u007fx>h&(Wa24)$\"Srhy2#!S~i#>\nyDR\u0013f??Sc]4%%9Xe_8(>>Y}<62>>_si##j.Ce<>5j#P1i9#2<Srh2\"j8Oaymf\u001b)Dcs%f>)Eeu9!j+D~i'f'-Fau9!,/X,H25>l\u007fbo\"#8`\u0016~ij\u0012/?B1S%!+\"_k}#/%\"\u001a1\u007fj\u0012/?B\u001e&Wg}y(+!_\u007f{y5//Ccu#?d<Dxr4/:-Z-\nYdr3f'9Zeu'*/lzU]\u0007f??Scow %>\u0016~r2f\u0004\u0018z\\<#)!)X6\u001d\"Y1x25)>_ah>)$lP~nw2\"%E1y9285\u0016\u0005Rtr#/>5fcs!/.)D1I$#8l\u001a\u000fW\u007fr82j?Spn4.j9Exr0f(-Et&w!\u0000rPLw%%\"Px{\"4+8_~rw2/?B1z6/&9Dt2w\u000e%Ebi24d>Pr.esy\u0017\u0019Etnw++<Fxr0f,#D1\u007f;'9?\u0016\u00129Etn\u0016%)#C\u007fh\u0014)$8D~p\u001a\u0005Xg};/.lCby%f))Deu1/)-Bt&w-\tDcs%f>)Eeu9!j/Sch> #/Weyw/$(Si<$#+>Uy<1/&8Sc$\u0019Etn\u001a'$-Qtnw.+?\u0016\u007fs#f()S\u007f<>(#8_pp></(\u0002d\u0015\u0014?Csv2%>'Shu3#$8_wu24\u0002dJ\u000elcby%f'-Fau9!j\u0013\u0001W}z84')R1P\u0013\u0007\u001alcCPw(\u0018^xow%%\"Px{w\"%)E1r82j/Y\u007fh6/$lW\u007f<;\"+<\u0016dn;C\rBey:6>lB~<63>$S\u007fh>%+8S1i$/$+\u0016dr$3:<Ych2\"j!Set8\"j#X1h?/9lFcs!/.)D+<\u0017\u000bD~i'\u000b+\"Wvy%f#?\u0016\u007fs#f9)B%\u000bD~i'\u000b+\"Wvy%f\"-E1r82j.Strw/$%Bx};/0)R\u001b&Wg}y(+!_\u007f{y +/B~n.h#\"_eu6*\u000bdYsv2%>\u001f_u!\u001d\"Y1x25)>_ah>)$lP~nw2\"%E1y9285%\u0018^t<1)& Yfu9!j!Wal>(-?\u0016r}\"5/(\u0016tn%)8?\f4\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j#X1}9?j#P1h?#j Rplw38 E?\f Rpl\u0005#,)Dc};";
      int var4 = "\u0001W}z84')R1P\u0013\u0007\u001alcCPw4\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j#X1}9?j#P1h?#j Rplw38 E?\u000b(Sb\u007f%/:8_~r\u001d&Wg}y(+!_\u007f{y5//Ccu#?d<D~h8%% \u001a)Dcs%f>)Eeu9!j9Etnw++<Fxr0\nlX~hw %9Xu\u0018&Wg}y(+!_\u007f{y*.-F?j249%Y\u007f2\u001cD~~;#'lWr\u007f259%Xv<#./lCby%\u0007)/Ydr#\u0005%\"Bcs;f+8Bcu53>)\u001e\u001fSpn4.j*_}h24j:Wcu6$&)\u0016tn%)8l\u0011*\tDcs%f:>Yry$5#\"Q1w24()D~ow68%Xru''&lXpq2fm /Y|2$3$b\\\u007fx>h&(Wa2\u001b\"+<ued\u0011')8Yce\u0006%Ebi242\u001cD~~;#'lWr\u007f259%Xv<#./lWr\u007f83$8sil>4/?weh%f+8Bcu53>)\"\u0018Sbhw68#Rd\u007f2\"j*Y}p81#\"Q1y%4%>\u001eb5mf\u0002k\u0018\u000b#T{y42) Wbo*\u0018^t<\u0014*#)Xe<\u0014#88_wu4'>)\u0016\\}9'-)D1u$f8)Gdu%#.-\tDcs%f>)Eeu9!j/Sch> #/Weyw/$(Si<$#+>Uy<1/&8Sc!\u0000rPLw%%\"Px{\"4+8_~rw2/?B1z6/&9Dt2w\u0010%Ebi24d/W\u007fs9/)-Z\u0018?Csv2%>'Shu3#$8_wu24d$Si\u0005}\u0006!,g\u000e-Urs\"(>\tNau%#9\u00048Ddy\u0002k\u0018)\u001fSpn4.j*_}h24j:Wcu6$&)\u0016an8%/?Exr0f/>D~nwa\u0002b\u00168\u000fW\u007fr82j/Y\u007fr2%>lB~<#.#?\u0016uu%#)8Yce{f+9Byy92#/Weu8(j*Wxp2\"d\u0018&Wg}y(+!_\u007f{y68#@xx24d9D}\u0006*Y}p81 /Dtx2(>%W}ow\"#(\u0016\u007fs#f+9Byy92#/Wey\u0016\u0019Etn\u001a'$-Qtnw/9lX~hw5/8\u0014&Wg}y(+!_\u007f{y4/*Scn6*\u000e-Urs\"(>\tNau%#9#/W\u007fr82j)Nen6%>lXpq2f,>Y|<#.#?\u0016vn83:\u001e\u0000rPLw5/-Drtw#8>Yc< />$\u0016wu;2/>\u00161\tDcs%f&#Yzu9!j9F1\u007f24>%Px\u007f62/lTh<\u0004\r\u0003l_\u007f<3/8)Ues%?d\u0011/W\u007fr82j)Nen6%>lU\u007f\u001b!Cbhw6+?E1}#f&)Wbhw)$)\u0016ee'#E\u001cScz84'%Xv<\u001b\u0002\u000b\u001c\u0016by64)$\u0016sew-/>Ttn85j<Dxr4/:-Z1;p={1\u00116<\u007f#$8Scl%/9)\fj,*o\"\u0000rPLw5/-Drtw#8>Yc0w6+>Bx};f8)Edp#hT\u0018^t<$#+>Uy<1/&8Sc<1)8lCby%f))Deu1/)-Btow$3l_bo\"#8lXpq2f+\"R1o24#-Z1r\"+()D1u$f#\"@pp>\"d\u001e\u001cD~j>\"/>\u0016xow'&>Spx.f)#Xwu038)R#&Wg}y(+!_\u007f{y5//Ccu#?d-Cet2(>%Uph>)$\u0012}\u0007'(cr}\u007f\u0000!,gvz|\u0006!, \rCuu#)8l^pow(%8\u0016sy2(j%Xxh>'&%Ltx\u0002b\u0016\u001d8^xow68#@xx24j\"Stx$f+lU~r1/-m\u001f&Wg}y(+!_\u007f{y*.-F?z6%>#Dh2$))'Se!\u000fYdp3(m8\u0016pi#./\"Bx\u007f62/lUcy3#$8_pp$<\u0018^t<1)& Yfu9!j9Etnw++<Fxr0n9e\u0016usw(%8\u0016uy1/$)\u0016}s0/$lWeh%/(9Bt2\u0002v\u0016\f?Scu6*$9[sy%\u000fdYsv2%>\u000fZpo${`e\u0011lRxxw(%8\u0016g};/.-Bt+\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j9Exr0f\u0006\bwA<\u0002\u0014\u0006l\u0005 Rpl$\"\u000fW\u007fr82j/Y\u007fr2%>lB~<#.#?\u0016uu%#)8Ycewa\u000b#T{y42) Wbo+\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j9Exr0f\u0006\bwA<\u0002\u0014\u0006lM\u0018^t<$#+>Uy<1/&8Sc<1)8lCby%f))Deu1/)-Btow$3lEd~=#)8\u0016zy.f#(S\u007fh> #)D1u$f#\"@pp>\"d\u000b(Sb\u007f%/:8_~r\u001e/Y|2$3$b\\\u007fx>h&(Wa24)$\"Srhy6%#Z\u001e/Y|2$3$b\\\u007fx>h&(Wa2%#+(\u0018eu:#%9B0\u000fYdp3(m8\u0016wu9\"j\u0000rPLw39)D1z84j'Sc~24%?\u0016an>()%Fppwa\u001ak\u001a1\u007f6($#B1x22/>[xr2f\u0018\tw]Qy\u001d8^xow68#@xx24j\"Stx$f+lU~r1/-mclU~r#'#\"Su<2+:8O1\u007f24>lWeh%/(9Bt<9'')\u00181H?/9l[pl'/$+\u0016fu;*j.S1u0(%>Su<65j<Wchw),lByyw/$(Siu9!j<D~\u007f259b*\u0018^xow%%\"Px{\"4+8_~rw\"#(\u0016\u007fs#f3%S}xw'$5\u0016vn83:K8^t<62>>_si##j-Urs\"(>\tNau%#9lApow68)Etr#f(9B1e>#&(Su<6f>5Ft<9)>lEdl')88Su&w\u00169Etn\u0014#88_wu4'>)\rsu9'852\nYdr3f'9Zeu'*/lzU]\u0007f??Scow %>\u0016zy%$/>Yb<'4#\"Uxl6*jk%/Dtx2(>%W}ow\"#(\u0016\u007fs#f+9Byy92#/Weyw %>\u0016'\u001cD~~;#'lRt\u007f8\"#\"Q1\u007f24>lZ~\u007f62/(\u0016xrw\n\u000e\rf+<%\u0019Xp~;#j8Y1y/6+\"R1P\u0013\u0007\u001alTxr3f:-Ebk84.v\u0016\u0003?E}\u0017\u000fYdp3(m8\u0016wu9\"j9Etnwao?\u0011\u0018\u0018^t<\"5/>\u0016us25j\"Ye<2>#?B?\u000flqcs\"6j!Wal>(-l*\u0018^xow%%\"Px{\"4+8_~rw\"#(\u0016\u007fs#f3%S}xw'$5\u0016do249N\u0018^t<$#+>Uy<1/&8Sc<1)8lUtn#/,%Uph2f#\"Rtd>(-lRxxw(%8\u0016hu2*.lW\u007few39)D1\u007f24>%Px\u007f62/?\u00129Etn\u0016%)#C\u007fh\u0014)$8D~p &Wg}y(+!_\u007f{y5//Ccu#?d/Dtx2(>%W}o(8^xow*.-F1\u007f8(,%Q1k65j8Sbh2\"j?Cr\u007f259*C}p.\u0006?_|l;#\u0005\u0019Etnw*8^t<$#+>Uy<%#99Zeow#2/Stx2\"j8^t<:'2%[dqmfm\u0002v\u0016)\u0000rPLw5/-Drtw#8>Yc&w\u0007?8^tr#/)-Bxs9f,-_}y3h\t\u000fw_S\u0019\u000f\t\rz\u001e\u0000rPLw5/-Drtw#8>Yc< />$\u0016wu;2/>\u0016\u0019/W\u007fr82j)Nen6%>lCby%f&#Qxr!/Y|2$3$b\\\u007fx>h&(Wa24)$\"Srhy2#!S~i#>\nyDR\u0013f??Sc]4%%9Xe_8(>>Y}<62>>_si##j.Ce<>5j#P1i9#2<Srh2\"j8Oaymf\u001b)Dcs%f>)Eeu9!j+D~i'f'-Fau9!,/X,H25>l\u007fbo\"#8`\u0016~ij\u0012/?B1S%!+\"_k}#/%\"\u001a1\u007fj\u0012/?B\u001e&Wg}y(+!_\u007f{y5//Ccu#?d<Dxr4/:-Z-\nYdr3f'9Zeu'*/lzU]\u0007f??Scow %>\u0016~r2f\u0004\u0018z\\<#)!)X6\u001d\"Y1x25)>_ah>)$lP~nw2\"%E1y9285\u0016\u0005Rtr#/>5fcs!/.)D1I$#8l\u001a\u000fW\u007fr82j?Spn4.j9Exr0f(-Et&w!\u0000rPLw%%\"Px{\"4+8_~rw2/?B1z6/&9Dt2w\u000e%Ebi24d>Pr.esy\u0017\u0019Etnw++<Fxr0f,#D1\u007f;'9?\u0016\u00129Etn\u0016%)#C\u007fh\u0014)$8D~p\u001a\u0005Xg};/.lCby%f))Deu1/)-Bt&w-\tDcs%f>)Eeu9!j/Sch> #/Weyw/$(Si<$#+>Uy<1/&8Sc$\u0019Etn\u001a'$-Qtnw.+?\u0016\u007fs#f()S\u007f<>(#8_pp></(\u0002d\u0015\u0014?Csv2%>'Shu3#$8_wu24\u0002dJ\u000elcby%f'-Fau9!j\u0013\u0001W}z84')R1P\u0013\u0007\u001alcCPw(\u0018^xow%%\"Px{w\"%)E1r82j/Y\u007fh6/$lW\u007f<;\"+<\u0016dn;C\rBey:6>lB~<63>$S\u007fh>%+8S1i$/$+\u0016dr$3:<Ych2\"j!Set8\"j#X1h?/9lFcs!/.)D+<\u0017\u000bD~i'\u000b+\"Wvy%f#?\u0016\u007fs#f9)B%\u000bD~i'\u000b+\"Wvy%f\"-E1r82j.Strw/$%Bx};/0)R\u001b&Wg}y(+!_\u007f{y +/B~n.h#\"_eu6*\u000bdYsv2%>\u001f_u!\u001d\"Y1x25)>_ah>)$lP~nw2\"%E1y9285%\u0018^t<1)& Yfu9!j!Wal>(-?\u0016r}\"5/(\u0016tn%)8?\f4\u000fYdp3f$#B1y$2+.Zxo?f)#Xey/2j#X1}9?j#P1h?#j Rplw38 E?\f Rpl\u0005#,)Dc};"
         .length();
      char var1 = 19;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, d(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     t = var5;
                     String[] var10 = t;
                     b = t[55];
                     a = var10[112];
                     c = Logger.getLogger(LdapIdentityProviderImpl.class.getName());
                     String[] var8 = t;
                     d = new BigInteger(var8[44]);
                     e = new BigInteger(var8[21]);
                     return;
                  }

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

                  var2 = "\u0007p^F\u001bY\u0018\u0006zZ\u0003\u000b\u0016\u001b\u0007hGMH\f\u0006\u0016{]\u0003\t\u0017\u0011Sf\\\u0003\u000f\u000b\u001a\u0006y];6{\\L\u001aY\u0019\u001cfEJ\u0006\u001eU\u0006y\u000e@\r\u000b\u0001\u001aoG@\t\r\u0010SkW\u0003\u0001\n\u0006\u0006l\\\f\u001b\u001c\u0007\u001ahB\u0003\u0001\u0017U\u0017`\\F\u000b\r\u001a\u0001p\u0000";
                  var4 = "\u0007p^F\u001bY\u0018\u0006zZ\u0003\u000b\u0016\u001b\u0007hGMH\f\u0006\u0016{]\u0003\t\u0017\u0011Sf\\\u0003\u000f\u000b\u001a\u0006y];6{\\L\u001aY\u0019\u001cfEJ\u0006\u001eU\u0006y\u000e@\r\u000b\u0001\u001aoG@\t\r\u0010SkW\u0003\u0001\n\u0006\u0006l\\\f\u001b\u001c\u0007\u001ahB\u0003\u0001\u0017U\u0017`\\F\u000b\r\u001a\u0001p\u0000"
                     .length();
                  var1 = '&';
                  var7 = -1;
            }

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

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

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

      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 -> 84;
            case 1 -> 46;
            case 2 -> 9;
            case 3 -> 4;
            case 4 -> 79;
            case 5 -> 94;
            default -> 82;
         });
      }

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