class io.vertx.ext.mail.impl.SMTPAuthentication
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.mail.impl.SMTPAuthentication
  super_class: java.lang.Object
{
  private final io.vertx.ext.mail.impl.SMTPConnection connection;
    descriptor: Lio/vertx/ext/mail/impl/SMTPConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.ext.mail.MailConfig config;
    descriptor: Lio/vertx/ext/mail/MailConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.Handler<java.lang.Void> finishedHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  private final io.vertx.core.Handler<java.lang.Throwable> errorHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/Handler<Ljava/lang/Throwable;>;

  private static final io.vertx.core.impl.logging.Logger log;
    descriptor: Lio/vertx/core/impl/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.vertx.ext.mail.impl.sasl.AuthOperationFactory authOperationFactory;
    descriptor: Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 43
            ldc Lio/vertx/ext/mail/impl/SMTPAuthentication;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putstatic io.vertx.ext.mail.impl.SMTPAuthentication.log:Lio/vertx/core/impl/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.vertx.ext.mail.impl.SMTPConnection, io.vertx.ext.mail.MailConfig, io.vertx.ext.mail.impl.sasl.AuthOperationFactory, io.vertx.core.Handler<java.lang.Void>, io.vertx.core.Handler<java.lang.Throwable>);
    descriptor: (Lio/vertx/ext/mail/impl/SMTPConnection;Lio/vertx/ext/mail/MailConfig;Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // io.vertx.ext.mail.impl.SMTPConnection connection
        start local 2 // io.vertx.ext.mail.MailConfig config
        start local 3 // io.vertx.ext.mail.impl.sasl.AuthOperationFactory authOperationFactory
        start local 4 // io.vertx.core.Handler finishedHandler
        start local 5 // io.vertx.core.Handler errorHandler
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 1 /* connection */
            putfield io.vertx.ext.mail.impl.SMTPAuthentication.connection:Lio/vertx/ext/mail/impl/SMTPConnection;
         2: .line 50
            aload 0 /* this */
            aload 2 /* config */
            putfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
         3: .line 51
            aload 0 /* this */
            aload 4 /* finishedHandler */
            putfield io.vertx.ext.mail.impl.SMTPAuthentication.finishedHandler:Lio/vertx/core/Handler;
         4: .line 52
            aload 0 /* this */
            aload 5 /* errorHandler */
            putfield io.vertx.ext.mail.impl.SMTPAuthentication.errorHandler:Lio/vertx/core/Handler;
         5: .line 53
            aload 0 /* this */
            aload 3 /* authOperationFactory */
            putfield io.vertx.ext.mail.impl.SMTPAuthentication.authOperationFactory:Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
         6: .line 54
            return
        end local 5 // io.vertx.core.Handler errorHandler
        end local 4 // io.vertx.core.Handler finishedHandler
        end local 3 // io.vertx.ext.mail.impl.sasl.AuthOperationFactory authOperationFactory
        end local 2 // io.vertx.ext.mail.MailConfig config
        end local 1 // io.vertx.ext.mail.impl.SMTPConnection connection
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    7     1            connection  Lio/vertx/ext/mail/impl/SMTPConnection;
            0    7     2                config  Lio/vertx/ext/mail/MailConfig;
            0    7     3  authOperationFactory  Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
            0    7     4       finishedHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            0    7     5          errorHandler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
    Signature: (Lio/vertx/ext/mail/impl/SMTPConnection;Lio/vertx/ext/mail/MailConfig;Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;Lio/vertx/core/Handler<Ljava/lang/Void;>;Lio/vertx/core/Handler<Ljava/lang/Throwable;>;)V
    MethodParameters:
                      Name  Flags
      connection            
      config                
      authOperationFactory  
      finishedHandler       
      errorHandler          

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
         0: .line 57
            aload 0 /* this */
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.intersectAllowedMethods:()Ljava/util/List;
            astore 1 /* auths */
        start local 1 // java.util.List auths
         1: .line 58
            aload 1 /* auths */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: java.util.List
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* foundAllowedMethods */
        start local 2 // boolean foundAllowedMethods
         4: .line 59
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.MailConfig.getLogin:()Lio/vertx/ext/mail/LoginOption;
            getstatic io.vertx.ext.mail.LoginOption.DISABLED:Lio/vertx/ext/mail/LoginOption;
            if_acmpeq 8
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.MailConfig.getUsername:()Ljava/lang/String;
            ifnull 8
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.MailConfig.getPassword:()Ljava/lang/String;
            ifnull 8
         5: .line 60
            iload 2 /* foundAllowedMethods */
            ifeq 8
         6: .line 61
            aload 0 /* this */
            aload 1 /* auths */
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authCmd:(Ljava/util/List;)V
         7: .line 62
            goto 15
         8: .line 63
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.MailConfig.getLogin:()Lio/vertx/ext/mail/LoginOption;
            getstatic io.vertx.ext.mail.LoginOption.REQUIRED:Lio/vertx/ext/mail/LoginOption;
            if_acmpne 14
         9: .line 64
            iload 2 /* foundAllowedMethods */
            ifne 12
        10: .line 65
            aload 0 /* this */
            ldc "login is required, but no allowed AUTH methods available. You may need to do STARTTLS"
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.handleError:(Ljava/lang/String;)V
        11: .line 66
            goto 15
        12: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "login is required, but no credentials supplied"
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.handleError:(Ljava/lang/String;)V
        13: .line 69
            goto 15
        14: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.finished:()V
        15: .line 73
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean foundAllowedMethods
        end local 1 // java.util.List auths
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0                 this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            1   16     1                auths  Ljava/util/List<Ljava/lang/String;>;
            4   16     2  foundAllowedMethods  Z

  private java.util.List<java.lang.String> intersectAllowedMethods();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
         0: .line 81
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.authOperationFactory:Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.impl.sasl.AuthOperationFactory.supportedAuths:(Lio/vertx/ext/mail/MailConfig;)Ljava/util/List;
            astore 1 /* supported */
        start local 1 // java.util.List supported
         1: .line 82
            aload 1 /* supported */
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.connection:Lio/vertx/ext/mail/impl/SMTPConnection;
            invokevirtual io.vertx.ext.mail.impl.SMTPConnection.getCapa:()Lio/vertx/ext/mail/impl/Capabilities;
            invokevirtual io.vertx.ext.mail.impl.Capabilities.getCapaAuth:()Ljava/util/Set;
            invokeinterface java.util.List.retainAll:(Ljava/util/Collection;)Z
            pop
         2: .line 83
            aload 1 /* supported */
            areturn
        end local 1 // java.util.List supported
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            1    3     1  supported  Ljava/util/List<Ljava/lang/String;>;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  private void authCmd(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // java.util.List auths
         0: .line 90
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.authOperationFactory:Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
            invokevirtual io.vertx.ext.mail.impl.sasl.AuthOperationFactory.getAuthMethod:()Ljava/lang/String;
            astore 2 /* defaultAuth */
        start local 2 // java.lang.String defaultAuth
         1: .line 91
            aload 2 /* defaultAuth */
            ifnull 6
         2: .line 92
            getstatic io.vertx.ext.mail.impl.SMTPAuthentication.log:Lio/vertx/core/impl/logging/Logger;
            invokeinterface io.vertx.core.impl.logging.Logger.isDebugEnabled:()Z
            ifeq 4
         3: .line 93
            getstatic io.vertx.ext.mail.impl.SMTPAuthentication.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Using default auth method: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* defaultAuth */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         4: .line 95
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* defaultAuth */
            aload 0 /* this */
            aload 1 /* auths */
            invokedynamic handle(Lio/vertx/ext/mail/impl/SMTPAuthentication;Ljava/util/List;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/ext/mail/impl/SMTPAuthentication.lambda$0(Ljava/util/List;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authMethod:(Ljava/lang/String;Lio/vertx/core/Handler;)V
         5: .line 96
            goto 7
         6: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* auths */
            iconst_0
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authChain:(Ljava/util/List;I)V
         7: .line 99
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String defaultAuth
        end local 1 // java.util.List auths
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    8     1        auths  Ljava/util/List<Ljava/lang/String;>;
            1    8     2  defaultAuth  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      auths  

  private void authChain(java.util.List<java.lang.String>, );
    descriptor: (Ljava/util/List;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // java.util.List auths
        start local 2 // int i
         0: .line 102
            iload 2 /* i */
            aload 1 /* auths */
            invokeinterface java.util.List.size:()I
            if_icmpge 3
         1: .line 103
            aload 0 /* this */
            aload 1 /* auths */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aload 0 /* this */
            aload 1 /* auths */
            iload 2 /* i */
            invokedynamic handle(Lio/vertx/ext/mail/impl/SMTPAuthentication;Ljava/util/List;I)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/ext/mail/impl/SMTPAuthentication.lambda$1(Ljava/util/List;ILjava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authMethod:(Ljava/lang/String;Lio/vertx/core/Handler;)V
         2: .line 104
            goto 4
         3: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "Failed to authenticate"
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.handleError:(Ljava/lang/String;)V
         4: .line 107
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int i
        end local 1 // java.util.List auths
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    5     1  auths  Ljava/util/List<Ljava/lang/String;>;
            0    5     2      i  I
    Signature: (Ljava/util/List<Ljava/lang/String;>;I)V
    MethodParameters:
       Name  Flags
      auths  
      i      

  private void authMethod(java.lang.String, io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // java.lang.String auth
        start local 2 // io.vertx.core.Handler onError
         0: .line 112
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.authOperationFactory:Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.MailConfig.getUsername:()Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.config:Lio/vertx/ext/mail/MailConfig;
            invokevirtual io.vertx.ext.mail.MailConfig.getPassword:()Ljava/lang/String;
            aload 1 /* auth */
            invokevirtual io.vertx.ext.mail.impl.sasl.AuthOperationFactory.createAuth:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/mail/impl/sasl/AuthOperation;
            astore 3 /* authMethod */
        start local 3 // io.vertx.ext.mail.impl.sasl.AuthOperation authMethod
         1: .line 113
            goto 6
        end local 3 // io.vertx.ext.mail.impl.sasl.AuthOperation authMethod
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         2: astore 4 /* ex */
        start local 4 // java.lang.RuntimeException ex
         3: .line 114
            getstatic io.vertx.ext.mail.impl.SMTPAuthentication.log:Lio/vertx/core/impl/logging/Logger;
            ldc "authentication factory threw exception"
            aload 4 /* ex */
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 115
            aload 0 /* this */
            aload 4 /* ex */
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.handleError:(Ljava/lang/Throwable;)V
         5: .line 116
            return
        end local 4 // java.lang.RuntimeException ex
        start local 3 // io.vertx.ext.mail.impl.sasl.AuthOperation authMethod
         6: .line 118
      StackMap locals: io.vertx.ext.mail.impl.sasl.AuthOperation
      StackMap stack:
            aload 0 /* this */
            aload 3 /* authMethod */
            aconst_null
            aload 2 /* onError */
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authCmdStep:(Lio/vertx/ext/mail/impl/sasl/AuthOperation;Ljava/lang/String;Lio/vertx/core/Handler;)V
         7: .line 119
            return
        end local 3 // io.vertx.ext.mail.impl.sasl.AuthOperation authMethod
        end local 2 // io.vertx.core.Handler onError
        end local 1 // java.lang.String auth
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    8     1        auth  Ljava/lang/String;
            0    8     2     onError  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            1    2     3  authMethod  Lio/vertx/ext/mail/impl/sasl/AuthOperation;
            6    8     3  authMethod  Lio/vertx/ext/mail/impl/sasl/AuthOperation;
            3    6     4          ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
           0     1       2  Class java.lang.SecurityException
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Ljava/lang/Void;>;)V
    MethodParameters:
         Name  Flags
      auth     
      onError  

  private void authCmdStep(io.vertx.ext.mail.impl.sasl.AuthOperation, java.lang.String, io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/ext/mail/impl/sasl/AuthOperation;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // io.vertx.ext.mail.impl.sasl.AuthOperation authMethod
        start local 2 // java.lang.String message
        start local 3 // io.vertx.core.Handler onError
         0: .line 124
            aload 2 /* message */
            ifnonnull 9
         1: .line 125
            aload 1 /* authMethod */
            aconst_null
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.nextStep:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* authParameter */
        start local 6 // java.lang.String authParameter
         2: .line 126
            aload 6 /* authParameter */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 6
         3: .line 127
            new java.lang.StringBuilder
            dup
            ldc "AUTH "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* authMethod */
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* authParameter */
            invokestatic io.vertx.ext.mail.impl.sasl.CryptUtils.base64:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* nextLine */
        start local 4 // java.lang.String nextLine
         4: .line 128
            aload 1 /* authMethod */
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            bipush 6
            iadd
            istore 5 /* blank */
        start local 5 // int blank
         5: .line 129
            goto 11
        end local 5 // int blank
        end local 4 // java.lang.String nextLine
         6: .line 130
      StackMap locals: io.vertx.ext.mail.impl.SMTPAuthentication io.vertx.ext.mail.impl.sasl.AuthOperation java.lang.String io.vertx.core.Handler top top java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "AUTH "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* authMethod */
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* nextLine */
        start local 4 // java.lang.String nextLine
         7: .line 131
            iconst_m1
            istore 5 /* blank */
        end local 6 // java.lang.String authParameter
        start local 5 // int blank
         8: .line 133
            goto 11
        end local 5 // int blank
        end local 4 // java.lang.String nextLine
         9: .line 134
      StackMap locals: io.vertx.ext.mail.impl.SMTPAuthentication io.vertx.ext.mail.impl.sasl.AuthOperation java.lang.String io.vertx.core.Handler
      StackMap stack:
            aload 1 /* authMethod */
            aload 2 /* message */
            iconst_4
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic io.vertx.ext.mail.impl.sasl.CryptUtils.decodeb64:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.nextStep:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic io.vertx.ext.mail.impl.sasl.CryptUtils.base64:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* nextLine */
        start local 4 // java.lang.String nextLine
        10: .line 135
            iconst_0
            istore 5 /* blank */
        start local 5 // int blank
        11: .line 137
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.connection:Lio/vertx/ext/mail/impl/SMTPConnection;
            aload 4 /* nextLine */
            iload 5 /* blank */
            aload 0 /* this */
            aload 1 /* authMethod */
            aload 3 /* onError */
            invokedynamic handle(Lio/vertx/ext/mail/impl/SMTPAuthentication;Lio/vertx/ext/mail/impl/sasl/AuthOperation;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              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;)V
                  io/vertx/ext/mail/impl/SMTPAuthentication.lambda$2(Lio/vertx/ext/mail/impl/sasl/AuthOperation;Lio/vertx/core/Handler;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokevirtual io.vertx.ext.mail.impl.SMTPConnection.write:(Ljava/lang/String;ILio/vertx/core/Handler;)V
        12: .line 151
            return
        end local 5 // int blank
        end local 4 // java.lang.String nextLine
        end local 3 // io.vertx.core.Handler onError
        end local 2 // java.lang.String message
        end local 1 // io.vertx.ext.mail.impl.sasl.AuthOperation authMethod
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0   13     1     authMethod  Lio/vertx/ext/mail/impl/sasl/AuthOperation;
            0   13     2        message  Ljava/lang/String;
            0   13     3        onError  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            4    6     4       nextLine  Ljava/lang/String;
            7    9     4       nextLine  Ljava/lang/String;
           10   13     4       nextLine  Ljava/lang/String;
            5    6     5          blank  I
            8    9     5          blank  I
           11   13     5          blank  I
            2    8     6  authParameter  Ljava/lang/String;
    Signature: (Lio/vertx/ext/mail/impl/sasl/AuthOperation;Ljava/lang/String;Lio/vertx/core/Handler<Ljava/lang/Void;>;)V
    MethodParameters:
            Name  Flags
      authMethod  
      message     
      onError     

  private void finished();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
         0: .line 154
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.finishedHandler:Lio/vertx/core/Handler;
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         1: .line 155
            return
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/mail/impl/SMTPAuthentication;

  private void handleError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // java.lang.String message
         0: .line 158
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.errorHandler:Lio/vertx/core/Handler;
            new io.vertx.core.impl.NoStackTraceThrowable
            dup
            aload 1 /* message */
            invokespecial io.vertx.core.impl.NoStackTraceThrowable.<init>:(Ljava/lang/String;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         1: .line 159
            return
        end local 1 // java.lang.String message
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  

  private void handleError(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 1 // java.lang.Throwable th
         0: .line 162
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.errorHandler:Lio/vertx/core/Handler;
            aload 1 /* th */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         1: .line 163
            return
        end local 1 // java.lang.Throwable th
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    2     1    th  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      th    

  private void lambda$0(java.util.List, java.lang.Void);
    descriptor: (Ljava/util/List;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 2 // java.lang.Void error
         0: .line 95
            aload 0 /* this */
            aload 1
            iconst_0
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authChain:(Ljava/util/List;I)V
            return
        end local 2 // java.lang.Void error
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    1     2  error  Ljava/lang/Void;

  private void lambda$1(java.util.List, int, java.lang.Void);
    descriptor: (Ljava/util/List;ILjava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 3 // java.lang.Void error
         0: .line 103
            aload 0 /* this */
            aload 1
            iload 2
            iconst_1
            iadd
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authChain:(Ljava/util/List;I)V
            return
        end local 3 // java.lang.Void error
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0    1     3  error  Ljava/lang/Void;

  private void lambda$2(io.vertx.ext.mail.impl.sasl.AuthOperation, io.vertx.core.Handler, java.lang.String);
    descriptor: (Lio/vertx/ext/mail/impl/sasl/AuthOperation;Lio/vertx/core/Handler;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
        start local 3 // java.lang.String message2
         0: .line 138
            getstatic io.vertx.ext.mail.impl.SMTPAuthentication.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "AUTH command result: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* message2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 139
            aload 3 /* message2 */
            invokestatic io.vertx.ext.mail.impl.StatusCode.isStatusOk:(Ljava/lang/String;)Z
            ifeq 8
         2: .line 140
            aload 3 /* message2 */
            invokestatic io.vertx.ext.mail.impl.StatusCode.isStatusContinue:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 141
            aload 0 /* this */
            aload 1
            aload 3 /* message2 */
            aload 2
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.authCmdStep:(Lio/vertx/ext/mail/impl/sasl/AuthOperation;Ljava/lang/String;Lio/vertx/core/Handler;)V
         4: .line 142
            goto 10
         5: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mail.impl.SMTPAuthentication.authOperationFactory:Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
            aload 1
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.getName:()Ljava/lang/String;
            invokevirtual io.vertx.ext.mail.impl.sasl.AuthOperationFactory.setAuthMethod:(Ljava/lang/String;)Lio/vertx/ext/mail/impl/sasl/AuthOperationFactory;
            pop
         6: .line 144
            aload 0 /* this */
            invokevirtual io.vertx.ext.mail.impl.SMTPAuthentication.finished:()V
         7: .line 146
            goto 10
         8: .line 147
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.ext.mail.impl.SMTPAuthentication.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "AUTH "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1
            invokeinterface io.vertx.ext.mail.impl.sasl.AuthOperation.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " failed "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* message2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;)V
         9: .line 148
            aload 2
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        10: .line 150
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String message2
        end local 0 // io.vertx.ext.mail.impl.SMTPAuthentication this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/vertx/ext/mail/impl/SMTPAuthentication;
            0   11     3  message2  Ljava/lang/String;
}
SourceFile: "SMTPAuthentication.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles