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
{
  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 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"

  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 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            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=14, 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 349
            aconst_null
            astore 6 /* mech */
        start local 6 // javax.security.sasl.SaslClient mech
         1: .line 354
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         2: goto 28
         3: .line 355
      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 356
            new java.lang.NullPointerException
            dup
         6: .line 357
            ldc "Mechanism name cannot be null"
         7: .line 356
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 358
      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 359
            goto 27
        10: .line 361
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SaslClientFactory."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* mechName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* mechFilter */
        start local 11 // java.lang.String mechFilter
        11: .line 362
            aload 11 /* mechFilter */
            invokestatic java.security.Security.getProviders:(Ljava/lang/String;)[Ljava/security/Provider;
            astore 12 /* provs */
        start local 12 // java.security.Provider[] provs
        12: .line 363
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        13: goto 26
        14: .line 364
      StackMap locals: java.lang.String java.security.Provider[] int
      StackMap stack:
            aload 12 /* provs */
            iload 13 /* j */
            aaload
            aload 11 /* mechFilter */
            invokevirtual java.security.Provider.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* className */
        start local 8 // java.lang.String className
        15: .line 365
            aload 8 /* className */
            ifnonnull 17
        16: .line 367
            goto 25
        17: .line 370
      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.lang.String java.lang.String int java.lang.String java.security.Provider[] int
      StackMap stack:
            aload 12 /* provs */
            iload 13 /* j */
            aaload
            aload 8 /* className */
            invokestatic javax.security.sasl.Sasl.loadFactory:(Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.security.sasl.SaslClientFactory
            astore 7 /* fac */
        start local 7 // javax.security.sasl.SaslClientFactory fac
        18: .line 371
            aload 7 /* fac */
            ifnull 25
        19: .line 372
            aload 7 /* fac */
        20: .line 373
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* mechanisms */
            iload 10 /* i */
            aaload
            aastore
            aload 1 /* authorizationId */
        21: .line 374
            aload 2 /* protocol */
            aload 3 /* serverName */
            aload 4 /* props */
            aload 5 /* cbh */
        22: .line 372
            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 */
        23: .line 375
            aload 6 /* mech */
            ifnull 25
        24: .line 376
            aload 6 /* mech */
            areturn
        end local 7 // javax.security.sasl.SaslClientFactory fac
        25: .line 363
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
        end local 8 // java.lang.String className
      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[] int
      StackMap stack:
        26: aload 12 /* provs */
            ifnull 27
            iload 13 /* j */
            aload 12 /* provs */
            arraylength
            if_icmplt 14
        end local 13 // int j
        end local 12 // java.security.Provider[] provs
        end local 11 // java.lang.String mechFilter
        27: .line 354
      StackMap locals:
      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:
        28: iload 10 /* i */
            aload 0 /* mechanisms */
            arraylength
            if_icmplt 3
        end local 10 // int i
        29: .line 382
            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   30     0       mechanisms  [Ljava/lang/String;
            0   30     1  authorizationId  Ljava/lang/String;
            0   30     2         protocol  Ljava/lang/String;
            0   30     3       serverName  Ljava/lang/String;
            0   30     4            props  Ljava/util/Map<Ljava/lang/String;*>;
            0   30     5              cbh  Ljavax/security/auth/callback/CallbackHandler;
            1   30     6             mech  Ljavax/security/sasl/SaslClient;
           18   25     7              fac  Ljavax/security/sasl/SaslClientFactory;
           15   26     8        className  Ljava/lang/String;
            4   28     9         mechName  Ljava/lang/String;
            2   29    10                i  I
           11   27    11       mechFilter  Ljava/lang/String;
           12   27    12            provs  [Ljava/security/Provider;
           13   27    13                j  I
    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, java.lang.String);
    descriptor: (Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.security.Provider p
        start local 1 // java.lang.String className
         0: .line 397
            aload 0 /* p */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         1: .line 399
            aload 1 /* className */
            iconst_1
            aload 2 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* implClass */
        start local 3 // java.lang.Class implClass
         2: .line 400
            aload 3 /* implClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
         3: areturn
        end local 3 // java.lang.Class implClass
        end local 2 // java.lang.ClassLoader cl
         4: .line 401
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* e */
        start local 2 // java.lang.ClassNotFoundException e
         5: .line 402
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot load class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ClassNotFoundException e
         6: .line 403
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 2 /* e */
        start local 2 // java.lang.InstantiationException e
         7: .line 404
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot instantiate class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.InstantiationException e
         8: .line 405
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 2 /* e */
        start local 2 // java.lang.IllegalAccessException e
         9: .line 406
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot access class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalAccessException e
        10: .line 407
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 2 /* e */
        start local 2 // java.lang.SecurityException e
        11: .line 408
            new javax.security.sasl.SaslException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot access class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.SecurityException e
        end local 1 // java.lang.String className
        end local 0 // java.security.Provider p
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0          p  Ljava/security/Provider;
            0   12     1  className  Ljava/lang/String;
            1    4     2         cl  Ljava/lang/ClassLoader;
            2    4     3  implClass  Ljava/lang/Class;
            5    6     2          e  Ljava/lang/ClassNotFoundException;
            7    8     2          e  Ljava/lang/InstantiationException;
            9   10     2          e  Ljava/lang/IllegalAccessException;
           11   12     2          e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ClassNotFoundException
           0     3       6  Class java.lang.InstantiationException
           0     3       8  Class java.lang.IllegalAccessException
           0     3      10  Class java.lang.SecurityException
    Exceptions:
      throws javax.security.sasl.SaslException
    MethodParameters:
           Name  Flags
      p          
      className  

  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=11, 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 489
            aconst_null
            astore 5 /* mech */
        start local 5 // javax.security.sasl.SaslServer mech
         1: .line 493
            aload 0 /* mechanism */
            ifnonnull 3
         2: .line 494
            new java.lang.NullPointerException
            dup
            ldc "Mechanism name cannot be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 495
      StackMap locals: javax.security.sasl.SaslServer
      StackMap stack:
            aload 0 /* mechanism */
            invokevirtual java.lang.String.length:()I
            ifne 5
         4: .line 496
            aconst_null
            areturn
         5: .line 499
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SaslServerFactory."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* mechanism */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* mechFilter */
        start local 8 // java.lang.String mechFilter
         6: .line 500
            aload 8 /* mechFilter */
            invokestatic java.security.Security.getProviders:(Ljava/lang/String;)[Ljava/security/Provider;
            astore 9 /* provs */
        start local 9 // java.security.Provider[] provs
         7: .line 501
            iconst_0
            istore 10 /* j */
        start local 10 // int j
         8: goto 22
         9: .line 502
      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[] int
      StackMap stack:
            aload 9 /* provs */
            iload 10 /* j */
            aaload
            aload 8 /* mechFilter */
            invokevirtual java.security.Provider.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* className */
        start local 7 // java.lang.String className
        10: .line 503
            aload 7 /* className */
            ifnonnull 14
        11: .line 504
            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
        12: .line 505
            aload 8 /* mechFilter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 504
            invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 507
      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.lang.String java.lang.String java.security.Provider[] int
      StackMap stack:
            aload 9 /* provs */
            iload 10 /* j */
            aaload
            aload 7 /* className */
            invokestatic javax.security.sasl.Sasl.loadFactory:(Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.security.sasl.SaslServerFactory
            astore 6 /* fac */
        start local 6 // javax.security.sasl.SaslServerFactory fac
        15: .line 508
            aload 6 /* fac */
            ifnull 21
        16: .line 509
            aload 6 /* fac */
        17: .line 510
            aload 0 /* mechanism */
            aload 1 /* protocol */
            aload 2 /* serverName */
            aload 3 /* props */
            aload 4 /* cbh */
        18: .line 509
            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 */
        19: .line 511
            aload 5 /* mech */
            ifnull 21
        20: .line 512
            aload 5 /* mech */
            areturn
        21: .line 501
      StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Map javax.security.auth.callback.CallbackHandler javax.security.sasl.SaslServer javax.security.sasl.SaslServerFactory java.lang.String java.lang.String java.security.Provider[] int
      StackMap stack:
            iinc 10 /* j */ 1
        end local 7 // java.lang.String className
        end local 6 // javax.security.sasl.SaslServerFactory fac
      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[] int
      StackMap stack:
        22: aload 9 /* provs */
            ifnull 23
            iload 10 /* j */
            aload 9 /* provs */
            arraylength
            if_icmplt 9
        end local 10 // int j
        23: .line 517
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // java.security.Provider[] provs
        end local 8 // java.lang.String mechFilter
        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   24     0   mechanism  Ljava/lang/String;
            0   24     1    protocol  Ljava/lang/String;
            0   24     2  serverName  Ljava/lang/String;
            0   24     3       props  Ljava/util/Map<Ljava/lang/String;*>;
            0   24     4         cbh  Ljavax/security/auth/callback/CallbackHandler;
            1   24     5        mech  Ljavax/security/sasl/SaslServer;
           15   22     6         fac  Ljavax/security/sasl/SaslServerFactory;
           10   22     7   className  Ljava/lang/String;
            6   24     8  mechFilter  Ljava/lang/String;
            7   24     9       provs  [Ljava/security/Provider;
            8   23    10           j  I
    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 529
            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 530
            aload 0 /* facs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         2: .line 531
            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 550
            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 551
            aload 0 /* facs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         2: .line 552
            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=9, args_size=1
        start local 0 // java.lang.String serviceName
         0: .line 563
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.HashSet result
         1: .line 565
            aload 0 /* serviceName */
            ifnull 3
            aload 0 /* serviceName */
            invokevirtual java.lang.String.length:()I
            ifeq 3
         2: .line 566
            aload 0 /* serviceName */
            ldc "."
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 567
      StackMap locals: java.util.HashSet
      StackMap stack:
            aload 1 /* result */
            areturn
         4: .line 571
      StackMap locals:
      StackMap stack:
            invokestatic java.security.Security.getProviders:()[Ljava/security/Provider;
            astore 2 /* providers */
        start local 2 // java.security.Provider[] providers
         5: .line 572
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* classes */
        start local 3 // java.util.HashSet classes
         6: .line 575
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 24
         8: .line 576
      StackMap locals: java.lang.String java.util.HashSet java.security.Provider[] java.util.HashSet top int
      StackMap stack:
            aload 3 /* classes */
            invokevirtual java.util.HashSet.clear:()V
         9: .line 579
            aload 2 /* providers */
            iload 5 /* i */
            aaload
            invokevirtual java.security.Provider.keys:()Ljava/util/Enumeration;
            astore 6 /* e */
        start local 6 // java.util.Enumeration e
        10: goto 22
        11: .line 580
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 6 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* currentKey */
        start local 7 // java.lang.String currentKey
        12: .line 581
            aload 7 /* currentKey */
            aload 0 /* serviceName */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
        13: .line 588
            aload 7 /* currentKey */
            ldc " "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            ifge 22
        14: .line 589
            aload 2 /* providers */
            iload 5 /* i */
            aaload
            aload 7 /* currentKey */
            invokevirtual java.security.Provider.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* className */
        start local 8 // java.lang.String className
        15: .line 590
            aload 3 /* classes */
            aload 8 /* className */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 22
        16: .line 591
            aload 3 /* classes */
            aload 8 /* className */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        17: .line 593
            aload 2 /* providers */
            iload 5 /* i */
            aaload
            aload 8 /* className */
            invokestatic javax.security.sasl.Sasl.loadFactory:(Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* fac */
        start local 4 // java.lang.Object fac
        18: .line 594
            aload 4 /* fac */
            ifnull 22
        19: .line 595
            aload 1 /* result */
            aload 4 /* fac */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        20: .line 597
            goto 22
        end local 4 // java.lang.Object fac
      StackMap locals: java.lang.String java.util.HashSet java.security.Provider[] java.util.HashSet top int java.util.Enumeration java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
        21: pop
        end local 8 // java.lang.String className
        end local 7 // java.lang.String currentKey
        22: .line 579
      StackMap locals:
      StackMap stack:
            aload 6 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 11
        end local 6 // java.util.Enumeration e
        23: .line 575
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 5 /* i */
            aload 2 /* providers */
            arraylength
            if_icmplt 8
        end local 5 // int i
        25: .line 604
            aload 1 /* result */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 3 // java.util.HashSet classes
        end local 2 // java.security.Provider[] providers
        end local 1 // java.util.HashSet result
        end local 0 // java.lang.String serviceName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0  serviceName  Ljava/lang/String;
            1   26     1       result  Ljava/util/HashSet<Ljava/lang/Object;>;
            5   26     2    providers  [Ljava/security/Provider;
            6   26     3      classes  Ljava/util/HashSet<Ljava/lang/String;>;
           18   21     4          fac  Ljava/lang/Object;
            7   25     5            i  I
           10   23     6            e  Ljava/util/Enumeration;
           12   22     7   currentKey  Ljava/lang/String;
           15   22     8    className  Ljava/lang/String;
      Exception table:
        from    to  target  type
          17    20      21  Class java.lang.Exception
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/Object;>;
    MethodParameters:
             Name  Flags
      serviceName  
}
SourceFile: "Sasl.java"
NestMembers:
  javax.security.sasl.Sasl$1  javax.security.sasl.Sasl$2
InnerClasses:
  javax.security.sasl.Sasl$1
  javax.security.sasl.Sasl$2