public class javax.security.sasl.Sasl
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.security.sasl.Sasl
  super_class: java.lang.Object
{
  private static java.util.List<java.lang.String> disabledMechanisms;
    descriptor: Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private static final java.lang.String SASL_LOGGER_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl"

  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String QOP;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.qop"

  public static final java.lang.String STRENGTH;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.strength"

  public static final java.lang.String SERVER_AUTH;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.server.authentication"

  public static final java.lang.String BOUND_SERVER_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.bound.server.name"

  public static final java.lang.String MAX_BUFFER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.maxbuffer"

  public static final java.lang.String RAW_SEND_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.rawsendsize"

  public static final java.lang.String REUSE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.reuse"

  public static final java.lang.String POLICY_NOPLAINTEXT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.policy.noplaintext"

  public static final java.lang.String POLICY_NOACTIVE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.policy.noactive"

  public static final java.lang.String POLICY_NODICTIONARY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.policy.nodictionary"

  public static final java.lang.String POLICY_NOANONYMOUS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.policy.noanonymous"

  public static final java.lang.String POLICY_FORWARD_SECRECY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.policy.forward"

  public static final java.lang.String POLICY_PASS_CREDENTIALS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.policy.credentials"

  public static final java.lang.String CREDENTIALS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.security.sasl.credentials"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=0
         0: .line 74
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic javax.security.sasl.Sasl.disabledMechanisms:Ljava/util/List;
         1: .line 79
            invokedynamic run()Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  javax/security/sasl/Sasl.lambda$0()Ljava/lang/String; (6)
                  ()Ljava/lang/String;
         2: .line 77
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 0 /* prop */
        start local 0 // java.lang.String prop
         3: .line 81
            aload 0 /* prop */
            ifnull 10
         4: .line 82
            aload 0 /* prop */
            ldc "\\s*,\\s*"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 9
      StackMap locals: java.lang.String top int int java.lang.String[]
      StackMap stack:
         5: aload 4
            iload 2
            aaload
            astore 1 /* s */
        start local 1 // java.lang.String s
         6: .line 83
            aload 1 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 8
         7: .line 84
            getstatic javax.security.sasl.Sasl.disabledMechanisms:Ljava/util/List;
            aload 1 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // java.lang.String s
         8: .line 82
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         9: iload 2
            iload 3
            if_icmplt 5
        end local 0 // java.lang.String prop
        10: .line 95
      StackMap locals:
      StackMap stack:
            ldc "javax.security.sasl"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic javax.security.sasl.Sasl.logger:Ljava/util/logging/Logger;
        11: .line 306
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3   10     0  prop  Ljava/lang/String;
            6    8     1     s  Ljava/lang/String;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.security.sasl.Sasl this
         0: .line 98
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 99
            return
        end local 0 // javax.security.sasl.Sasl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/security/sasl/Sasl;

  public static javax.security.sasl.SaslClient createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslClient;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=17, args_size=6
        start local 0 // java.lang.String[] mechanisms
        start local 1 // java.lang.String authorizationId
        start local 2 // java.lang.String protocol
        start local 3 // java.lang.String serverName
        start local 4 // java.util.Map props
        start local 5 // javax.security.auth.callback.CallbackHandler cbh
         0: .line 405
            aconst_null
            astore 6 /* mech */
        start local 6 // javax.security.sasl.SaslClient mech
         1: .line 410
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         2: goto 34
         3: .line 411
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top top top int
      StackMap stack:
            aload 0 /* mechanisms */
            iload 10 /* i */
            aaload
            dup
            astore 9 /* mechName */
        start local 9 // java.lang.String mechName
         4: ifnonnull 8
         5: .line 412
            new java.lang.NullPointerException
            dup
         6: .line 413
            ldc "Mechanism name cannot be null"
         7: .line 412
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 414
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top top java.lang.String int
      StackMap stack:
            aload 9 /* mechName */
            invokevirtual java.lang.String.length:()I
            ifne 10
         9: .line 415
            goto 33
        10: .line 416
      StackMap locals:
      StackMap stack:
            aload 9 /* mechName */
            invokestatic javax.security.sasl.Sasl.isDisabled:(Ljava/lang/String;)Z
            ifeq 15
        11: .line 417
            getstatic javax.security.sasl.Sasl.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
        12: .line 418
            new java.lang.StringBuilder
            dup
            ldc "Disabled "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* mechName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " mechanism ignored"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 417
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        14: .line 419
            goto 33
        15: .line 421
      StackMap locals:
      StackMap stack:
            ldc "SaslClientFactory"
            astore 11 /* type */
        start local 11 // java.lang.String type
        16: .line 422
            new java.lang.StringBuilder
            dup
            aload 11 /* type */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* mechName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.security.Security.getProviders:(Ljava/lang/String;)[Ljava/security/Provider;
            astore 12 /* provs */
        start local 12 // java.security.Provider[] provs
        17: .line 423
            aload 12 /* provs */
            ifnull 33
        18: .line 424
            aload 12 /* provs */
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 32
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top top java.lang.String int java.lang.String java.security.Provider[] top int int java.security.Provider[]
      StackMap stack:
        19: aload 16
            iload 14
            aaload
            astore 13 /* p */
        start local 13 // java.security.Provider p
        20: .line 425
            aload 13 /* p */
            aload 11 /* type */
            aload 9 /* mechName */
            invokevirtual java.security.Provider.getService:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
            astore 8 /* service */
        start local 8 // java.security.Provider$Service service
        21: .line 426
            aload 8 /* service */
            ifnonnull 23
        22: .line 428
            goto 31
        23: .line 431
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top java.security.Provider$Service java.lang.String int java.lang.String java.security.Provider[] java.security.Provider int int java.security.Provider[]
      StackMap stack:
            aload 8 /* service */
            invokestatic javax.security.sasl.Sasl.loadFactory:(Ljava/security/Provider$Service;)Ljava/lang/Object;
            checkcast javax.security.sasl.SaslClientFactory
            astore 7 /* fac */
        start local 7 // javax.security.sasl.SaslClientFactory fac
        24: .line 432
            aload 7 /* fac */
            ifnull 31
        25: .line 433
            aload 7 /* fac */
        26: .line 434
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* mechanisms */
            iload 10 /* i */
            aaload
            aastore
            aload 1 /* authorizationId */
        27: .line 435
            aload 2 /* protocol */
            aload 3 /* serverName */
            aload 4 /* props */
            aload 5 /* cbh */
        28: .line 433
            invokeinterface javax.security.sasl.SaslClientFactory.createSaslClient:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslClient;
            astore 6 /* mech */
        29: .line 436
            aload 6 /* mech */
            ifnull 31
        30: .line 437
            aload 6 /* mech */
            areturn
        end local 13 // java.security.Provider p
        end local 8 // java.security.Provider$Service service
        end local 7 // javax.security.sasl.SaslClientFactory fac
        31: .line 424
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top top java.lang.String int java.lang.String java.security.Provider[] top int int java.security.Provider[]
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        32: iload 14
            iload 15
            if_icmplt 19
        end local 12 // java.security.Provider[] provs
        end local 11 // java.lang.String type
        33: .line 410
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top top java.lang.String int
      StackMap stack:
            iinc 10 /* i */ 1
        end local 9 // java.lang.String mechName
      StackMap locals: java.lang.String[] java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslClient top top top int
      StackMap stack:
        34: iload 10 /* i */
            aload 0 /* mechanisms */
            arraylength
            if_icmplt 3
        end local 10 // int i
        35: .line 443
            aconst_null
            areturn
        end local 6 // javax.security.sasl.SaslClient mech
        end local 5 // javax.security.auth.callback.CallbackHandler cbh
        end local 4 // java.util.Map props
        end local 3 // java.lang.String serverName
        end local 2 // java.lang.String protocol
        end local 1 // java.lang.String authorizationId
        end local 0 // java.lang.String[] mechanisms
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   36     0       mechanisms  [Ljava/lang/String;
            0   36     1  authorizationId  Ljava/lang/String;
            0   36     2         protocol  Ljava/lang/String;
            0   36     3       serverName  Ljava/lang/String;
            0   36     4            props  Ljava/util/Map<Ljava/lang/String;*>;
            0   36     5              cbh  Ljavax/security/auth/callback/CallbackHandler;
            1   36     6             mech  Ljavax/security/sasl/SaslClient;
           24   31     7              fac  Ljavax/security/sasl/SaslClientFactory;
           21   31     8          service  Ljava/security/Provider$Service;
            4   34     9         mechName  Ljava/lang/String;
            2   35    10                i  I
           16   33    11             type  Ljava/lang/String;
           17   33    12            provs  [Ljava/security/Provider;
           20   31    13                p  Ljava/security/Provider;
    Exceptions:
      throws javax.security.sasl.SaslException
    Signature: ([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslClient;
    MethodParameters:
                 Name  Flags
      mechanisms       
      authorizationId  
      protocol         
      serverName       
      props            
      cbh              

  private static java.lang.Object loadFactory(java.security.Provider$Service);
    descriptor: (Ljava/security/Provider$Service;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.security.Provider$Service service
         0: .line 458
            aload 0 /* service */
            aconst_null
            invokevirtual java.security.Provider$Service.newInstance:(Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 459
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 460
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot instantiate service "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* service */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // java.security.Provider$Service service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  service  Ljava/security/Provider$Service;
            3    4     1        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.InvalidParameterException
           0     1       2  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws javax.security.sasl.SaslException
    MethodParameters:
         Name  Flags
      service  

  public static javax.security.sasl.SaslServer createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslServer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=5
        start local 0 // java.lang.String mechanism
        start local 1 // java.lang.String protocol
        start local 2 // java.lang.String serverName
        start local 3 // java.util.Map props
        start local 4 // javax.security.auth.callback.CallbackHandler cbh
         0: .line 555
            aconst_null
            astore 5 /* mech */
        start local 5 // javax.security.sasl.SaslServer mech
         1: .line 559
            aload 0 /* mechanism */
            ifnonnull 3
         2: .line 560
            new java.lang.NullPointerException
            dup
            ldc "Mechanism name cannot be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 561
      StackMap locals: javax.security.sasl.SaslServer
      StackMap stack:
            aload 0 /* mechanism */
            invokevirtual java.lang.String.length:()I
            ifne 5
         4: .line 562
            aconst_null
            areturn
         5: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* mechanism */
            invokestatic javax.security.sasl.Sasl.isDisabled:(Ljava/lang/String;)Z
            ifeq 10
         6: .line 564
            getstatic javax.security.sasl.Sasl.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
         7: .line 565
            new java.lang.StringBuilder
            dup
            ldc "Disabled "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* mechanism */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " mechanism ignored"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 564
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         9: .line 566
            aconst_null
            areturn
        10: .line 569
      StackMap locals:
      StackMap stack:
            ldc "SaslServerFactory"
            astore 8 /* type */
        start local 8 // java.lang.String type
        11: .line 570
            new java.lang.StringBuilder
            dup
            aload 8 /* type */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* mechanism */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.security.Security.getProviders:(Ljava/lang/String;)[Ljava/security/Provider;
            astore 9 /* provs */
        start local 9 // java.security.Provider[] provs
        12: .line 571
            aload 9 /* provs */
            ifnull 29
        13: .line 572
            aload 9 /* provs */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 28
      StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslServer top top java.lang.String java.security.Provider[] top int int java.security.Provider[]
      StackMap stack:
        14: aload 13
            iload 11
            aaload
            astore 10 /* p */
        start local 10 // java.security.Provider p
        15: .line 573
            aload 10 /* p */
            aload 8 /* type */
            aload 0 /* mechanism */
            invokevirtual java.security.Provider.getService:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
            astore 7 /* service */
        start local 7 // java.security.Provider$Service service
        16: .line 574
            aload 7 /* service */
            ifnonnull 20
        17: .line 575
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Provider does not support "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 576
            aload 0 /* mechanism */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 575
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 578
      StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslServer top java.security.Provider$Service java.lang.String java.security.Provider[] java.security.Provider int int java.security.Provider[]
      StackMap stack:
            aload 7 /* service */
            invokestatic javax.security.sasl.Sasl.loadFactory:(Ljava/security/Provider$Service;)Ljava/lang/Object;
            checkcast javax.security.sasl.SaslServerFactory
            astore 6 /* fac */
        start local 6 // javax.security.sasl.SaslServerFactory fac
        21: .line 579
            aload 6 /* fac */
            ifnull 27
        22: .line 580
            aload 6 /* fac */
        23: .line 581
            aload 0 /* mechanism */
            aload 1 /* protocol */
            aload 2 /* serverName */
            aload 3 /* props */
            aload 4 /* cbh */
        24: .line 580
            invokeinterface javax.security.sasl.SaslServerFactory.createSaslServer:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslServer;
            astore 5 /* mech */
        25: .line 582
            aload 5 /* mech */
            ifnull 27
        26: .line 583
            aload 5 /* mech */
            areturn
        end local 10 // java.security.Provider p
        end local 7 // java.security.Provider$Service service
        end local 6 // javax.security.sasl.SaslServerFactory fac
        27: .line 572
      StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslServer top top java.lang.String java.security.Provider[] top int int java.security.Provider[]
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        28: iload 11
            iload 12
            if_icmplt 14
        29: .line 588
      StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslServer top top java.lang.String java.security.Provider[]
      StackMap stack:
            aconst_null
            areturn
        end local 9 // java.security.Provider[] provs
        end local 8 // java.lang.String type
        end local 5 // javax.security.sasl.SaslServer mech
        end local 4 // javax.security.auth.callback.CallbackHandler cbh
        end local 3 // java.util.Map props
        end local 2 // java.lang.String serverName
        end local 1 // java.lang.String protocol
        end local 0 // java.lang.String mechanism
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0   mechanism  Ljava/lang/String;
            0   30     1    protocol  Ljava/lang/String;
            0   30     2  serverName  Ljava/lang/String;
            0   30     3       props  Ljava/util/Map<Ljava/lang/String;*>;
            0   30     4         cbh  Ljavax/security/auth/callback/CallbackHandler;
            1   30     5        mech  Ljavax/security/sasl/SaslServer;
           21   27     6         fac  Ljavax/security/sasl/SaslServerFactory;
           16   27     7     service  Ljava/security/Provider$Service;
           11   30     8        type  Ljava/lang/String;
           12   30     9       provs  [Ljava/security/Provider;
           15   27    10           p  Ljava/security/Provider;
    Exceptions:
      throws javax.security.sasl.SaslException
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Ljavax/security/auth/callback/CallbackHandler;)Ljavax/security/sasl/SaslServer;
    MethodParameters:
            Name  Flags
      mechanism   
      protocol    
      serverName  
      props       
      cbh         

  public static java.util.Enumeration<javax.security.sasl.SaslClientFactory> getSaslClientFactories();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 600
            ldc "SaslClientFactory"
            invokestatic javax.security.sasl.Sasl.getFactories:(Ljava/lang/String;)Ljava/util/Set;
            astore 0 /* facs */
        start local 0 // java.util.Set facs
         1: .line 601
            aload 0 /* facs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         2: .line 602
            new javax.security.sasl.Sasl$1
            dup
            aload 1 /* iter */
            invokespecial javax.security.sasl.Sasl$1.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.util.Set facs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0  facs  Ljava/util/Set<Ljava/lang/Object;>;
            2    3     1  iter  Ljava/util/Iterator<Ljava/lang/Object;>;
    Signature: ()Ljava/util/Enumeration<Ljavax/security/sasl/SaslClientFactory;>;

  public static java.util.Enumeration<javax.security.sasl.SaslServerFactory> getSaslServerFactories();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 621
            ldc "SaslServerFactory"
            invokestatic javax.security.sasl.Sasl.getFactories:(Ljava/lang/String;)Ljava/util/Set;
            astore 0 /* facs */
        start local 0 // java.util.Set facs
         1: .line 622
            aload 0 /* facs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         2: .line 623
            new javax.security.sasl.Sasl$2
            dup
            aload 1 /* iter */
            invokespecial javax.security.sasl.Sasl$2.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 1 // java.util.Iterator iter
        end local 0 // java.util.Set facs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0  facs  Ljava/util/Set<Ljava/lang/Object;>;
            2    3     1  iter  Ljava/util/Iterator<Ljava/lang/Object;>;
    Signature: ()Ljava/util/Enumeration<Ljavax/security/sasl/SaslServerFactory;>;

  private static java.util.Set<java.lang.Object> getFactories(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=10, args_size=1
        start local 0 // java.lang.String serviceName
         0: .line 634
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.HashSet result
         1: .line 636
            aload 0 /* serviceName */
            ifnull 3
            aload 0 /* serviceName */
            invokevirtual java.lang.String.length:()I
            ifeq 3
         2: .line 637
            aload 0 /* serviceName */
            ldc "."
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 638
      StackMap locals: java.util.HashSet
      StackMap stack:
            aload 1 /* result */
            areturn
         4: .line 641
      StackMap locals:
      StackMap stack:
            invokestatic java.security.Security.getProviders:()[Ljava/security/Provider;
            astore 2 /* provs */
        start local 2 // java.security.Provider[] provs
         5: .line 644
            aload 2 /* provs */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 18
      StackMap locals: java.lang.String java.util.HashSet java.security.Provider[] top top int int java.security.Provider[]
      StackMap stack:
         6: aload 7
            iload 5
            aaload
            astore 4 /* p */
        start local 4 // java.security.Provider p
         7: .line 646
            aload 4 /* p */
            invokevirtual java.security.Provider.getServices:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
         8: .line 647
            goto 16
         9: .line 648
      StackMap locals: java.lang.String java.util.HashSet java.security.Provider[] top java.security.Provider int int java.security.Provider[] java.util.Iterator
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.Provider$Service
            astore 9 /* s */
        start local 9 // java.security.Provider$Service s
        10: .line 649
            aload 9 /* s */
            invokevirtual java.security.Provider$Service.getType:()Ljava/lang/String;
            aload 0 /* serviceName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        11: .line 651
            aload 9 /* s */
            invokestatic javax.security.sasl.Sasl.loadFactory:(Ljava/security/Provider$Service;)Ljava/lang/Object;
            astore 3 /* fac */
        start local 3 // java.lang.Object fac
        12: .line 652
            aload 3 /* fac */
            ifnull 16
        13: .line 653
            aload 1 /* result */
            aload 3 /* fac */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        14: .line 655
            goto 16
        end local 3 // java.lang.Object fac
      StackMap locals: java.lang.String java.util.HashSet java.security.Provider[] top java.security.Provider int int java.security.Provider[] java.util.Iterator java.security.Provider$Service
      StackMap stack: java.lang.Exception
        15: pop
        end local 9 // java.security.Provider$Service s
        16: .line 647
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 8 // java.util.Iterator iter
        end local 4 // java.security.Provider p
        17: .line 644
            iinc 5 1
      StackMap locals: java.lang.String java.util.HashSet java.security.Provider[] top top int int java.security.Provider[]
      StackMap stack:
        18: iload 5
            iload 6
            if_icmplt 6
        19: .line 660
            aload 1 /* result */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 2 // java.security.Provider[] provs
        end local 1 // java.util.HashSet result
        end local 0 // java.lang.String serviceName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0  serviceName  Ljava/lang/String;
            1   20     1       result  Ljava/util/HashSet<Ljava/lang/Object;>;
            5   20     2        provs  [Ljava/security/Provider;
           12   15     3          fac  Ljava/lang/Object;
            7   17     4            p  Ljava/security/Provider;
            8   17     8         iter  Ljava/util/Iterator<Ljava/security/Provider$Service;>;
           10   16     9            s  Ljava/security/Provider$Service;
      Exception table:
        from    to  target  type
          11    14      15  Class java.lang.Exception
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/Object;>;
    MethodParameters:
             Name  Flags
      serviceName  

  private static boolean isDisabled(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 664
            getstatic javax.security.sasl.Sasl.disabledMechanisms:Ljava/util/List;
            aload 0 /* name */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.String lambda$0();
    descriptor: ()Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 79
            ldc "jdk.sasl.disabledMechanisms"
            invokestatic java.security.Security.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Sasl.java"
NestMembers:
  javax.security.sasl.Sasl$1  javax.security.sasl.Sasl$2
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Service = java.security.Provider$Service of java.security.Provider
  javax.security.sasl.Sasl$1
  javax.security.sasl.Sasl$2