public class io.vertx.ext.shell.impl.ShellImpl implements io.vertx.ext.shell.Shell
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.shell.impl.ShellImpl
  super_class: java.lang.Object
{
  final java.lang.String id;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final io.vertx.core.Promise<java.lang.Void> closedPromise;
    descriptor: Lio/vertx/core/Promise;
    flags: (0x0010) ACC_FINAL
    Signature: Lio/vertx/core/Promise<Ljava/lang/Void;>;

  private final io.vertx.ext.shell.system.impl.InternalCommandManager commandManager;
    descriptor: Lio/vertx/ext/shell/system/impl/InternalCommandManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.ext.shell.session.Session session;
    descriptor: Lio/vertx/ext/shell/session/Session;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.ext.shell.system.impl.JobControllerImpl jobController;
    descriptor: Lio/vertx/ext/shell/system/impl/JobControllerImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private io.vertx.ext.shell.term.Term term;
    descriptor: Lio/vertx/ext/shell/term/Term;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String welcome;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.function.Function<io.vertx.ext.shell.session.Session, java.lang.String> promptFunc;
    descriptor: Ljava/util/function/Function;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Function<Lio/vertx/ext/shell/session/Session;Ljava/lang/String;>;

  public void <init>(io.vertx.ext.shell.term.Term, io.vertx.ext.shell.system.impl.InternalCommandManager);
    descriptor: (Lio/vertx/ext/shell/term/Term;Lio/vertx/ext/shell/system/impl/InternalCommandManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // io.vertx.ext.shell.term.Term term
        start local 2 // io.vertx.ext.shell.system.impl.InternalCommandManager commandManager
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            new io.vertx.ext.shell.session.impl.SessionImpl
            dup
            invokespecial io.vertx.ext.shell.session.impl.SessionImpl.<init>:()V
            putfield io.vertx.ext.shell.impl.ShellImpl.session:Lio/vertx/ext/shell/session/Session;
         2: .line 66
            aload 0 /* this */
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  io/vertx/ext/shell/impl/ShellImpl.lambda$0(Lio/vertx/ext/shell/session/Session;)Ljava/lang/String; (6)
                  (Lio/vertx/ext/shell/session/Session;)Ljava/lang/String;
            putfield io.vertx.ext.shell.impl.ShellImpl.promptFunc:Ljava/util/function/Function;
         3: .line 70
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.session:Lio/vertx/ext/shell/session/Session;
            ldc "vert.x-command-manager"
            aload 2 /* commandManager */
            invokeinterface io.vertx.ext.shell.session.Session.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/ext/shell/session/Session;
            pop
         4: .line 72
            aload 0 /* this */
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            putfield io.vertx.ext.shell.impl.ShellImpl.id:Ljava/lang/String;
         5: .line 73
            aload 0 /* this */
            new io.vertx.ext.shell.system.impl.JobControllerImpl
            dup
            invokespecial io.vertx.ext.shell.system.impl.JobControllerImpl.<init>:()V
            putfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
         6: .line 74
            aload 0 /* this */
            aload 2 /* commandManager */
            putfield io.vertx.ext.shell.impl.ShellImpl.commandManager:Lio/vertx/ext/shell/system/impl/InternalCommandManager;
         7: .line 75
            aload 0 /* this */
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            putfield io.vertx.ext.shell.impl.ShellImpl.closedPromise:Lio/vertx/core/Promise;
         8: .line 76
            aload 0 /* this */
            aload 1 /* term */
            putfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
         9: .line 78
            aload 1 /* term */
            ifnull 12
        10: .line 79
            aload 1 /* term */
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.session:Lio/vertx/ext/shell/session/Session;
            invokeinterface io.vertx.ext.shell.term.Term.setSession:(Lio/vertx/ext/shell/session/Session;)Lio/vertx/ext/shell/term/Term;
            pop
        11: .line 80
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/shell/impl/ShellImpl;)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/shell/impl/ShellImpl.lambda$1(Lio/vertx/ext/shell/system/Job;)V (7)
                  (Lio/vertx/ext/shell/system/Job;)V
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.foregroundUpdatedHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/shell/system/JobController;
            pop
        12: .line 86
      StackMap locals: io.vertx.ext.shell.impl.ShellImpl io.vertx.ext.shell.term.Term io.vertx.ext.shell.system.impl.InternalCommandManager
      StackMap stack:
            return
        end local 2 // io.vertx.ext.shell.system.impl.InternalCommandManager commandManager
        end local 1 // io.vertx.ext.shell.term.Term term
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lio/vertx/ext/shell/impl/ShellImpl;
            0   13     1            term  Lio/vertx/ext/shell/term/Term;
            0   13     2  commandManager  Lio/vertx/ext/shell/system/impl/InternalCommandManager;
    MethodParameters:
                Name  Flags
      term            
      commandManager  

  public io.vertx.ext.shell.system.JobController jobController();
    descriptor: ()Lio/vertx/ext/shell/system/JobController;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 89
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            areturn
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;

  public synchronized io.vertx.ext.shell.system.Job createJob(java.util.List<io.vertx.ext.shell.cli.CliToken>);
    descriptor: (Ljava/util/List;)Lio/vertx/ext/shell/system/Job;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.util.List args
         0: .line 94
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* line */
        start local 2 // java.lang.StringBuilder line
         1: .line 95
            aload 1 /* args */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  io/vertx/ext/shell/cli/CliToken.raw()Ljava/lang/String; (9 itf)
                  (Lio/vertx/ext/shell/cli/CliToken;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 2 /* line */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              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
                  java/lang/StringBuilder.append(Ljava/lang/String;)Ljava/lang/StringBuilder; (5)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         2: .line 96
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.commandManager:Lio/vertx/ext/shell/system/impl/InternalCommandManager;
            aload 1 /* args */
            invokevirtual io.vertx.ext.shell.system.impl.InternalCommandManager.createProcess:(Ljava/util/List;)Lio/vertx/ext/shell/system/Process;
            astore 4 /* process */
        start local 4 // io.vertx.ext.shell.system.Process process
         3: .line 97
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            aload 4 /* process */
            aload 2 /* line */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.createJob:(Lio/vertx/ext/shell/system/Process;Ljava/lang/String;)Lio/vertx/ext/shell/system/Job;
            areturn
        end local 4 // io.vertx.ext.shell.system.Process process
        end local 2 // java.lang.StringBuilder line
        end local 1 // java.util.List args
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    4     1     args  Ljava/util/List<Lio/vertx/ext/shell/cli/CliToken;>;
            1    4     2     line  Ljava/lang/StringBuilder;
            3    4     4  process  Lio/vertx/ext/shell/system/Process;
    Signature: (Ljava/util/List<Lio/vertx/ext/shell/cli/CliToken;>;)Lio/vertx/ext/shell/system/Job;
    MethodParameters:
      Name  Flags
      args  

  public io.vertx.ext.shell.system.Job createJob(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/shell/system/Job;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.lang.String line
         0: .line 102
            aload 0 /* this */
            aload 1 /* line */
            invokestatic io.vertx.ext.shell.cli.CliToken.tokenize:(Ljava/lang/String;)Ljava/util/List;
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.createJob:(Ljava/util/List;)Lio/vertx/ext/shell/system/Job;
            areturn
        end local 1 // java.lang.String line
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    1     1  line  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      line  

  public io.vertx.ext.shell.session.Session session();
    descriptor: ()Lio/vertx/ext/shell/session/Session;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 107
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.session:Lio/vertx/ext/shell/session/Session;
            areturn
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;

  public long lastAccessedTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 111
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            invokeinterface io.vertx.ext.shell.term.Term.lastAccessedTime:()J
            lreturn
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;

  public void setWelcome(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.lang.String welcome
         0: .line 115
            aload 0 /* this */
            aload 1 /* welcome */
            putfield io.vertx.ext.shell.impl.ShellImpl.welcome:Ljava/lang/String;
         1: .line 116
            return
        end local 1 // java.lang.String welcome
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    2     1  welcome  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      welcome  

  public void setPrompt(java.util.function.Function<io.vertx.ext.shell.session.Session, java.lang.String>);
    descriptor: (Ljava/util/function/Function;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.util.function.Function prompt
         0: .line 120
            aload 0 /* this */
            aload 1 /* prompt */
            putfield io.vertx.ext.shell.impl.ShellImpl.promptFunc:Ljava/util/function/Function;
         1: .line 121
            return
        end local 1 // java.util.function.Function prompt
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    2     1  prompt  Ljava/util/function/Function<Lio/vertx/ext/shell/session/Session;Ljava/lang/String;>;
    Signature: (Ljava/util/function/Function<Lio/vertx/ext/shell/session/Session;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      prompt  

  public io.vertx.ext.shell.impl.ShellImpl init();
    descriptor: ()Lio/vertx/ext/shell/impl/ShellImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 125
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            aload 0 /* this */
            invokedynamic deliver(Lio/vertx/ext/shell/impl/ShellImpl;)Lio/vertx/ext/shell/term/SignalHandler;
              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:
                  (I)Z
                  io/vertx/ext/shell/impl/ShellImpl.lambda$4(I)Z (7)
                  (I)Z
            invokeinterface io.vertx.ext.shell.term.Term.interruptHandler:(Lio/vertx/ext/shell/term/SignalHandler;)Lio/vertx/ext/shell/term/Term;
            pop
         1: .line 127
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            aload 0 /* this */
            invokedynamic deliver(Lio/vertx/ext/shell/impl/ShellImpl;)Lio/vertx/ext/shell/term/SignalHandler;
              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:
                  (I)Z
                  io/vertx/ext/shell/impl/ShellImpl.lambda$5(I)Z (7)
                  (I)Z
            invokeinterface io.vertx.ext.shell.term.Term.suspendHandler:(Lio/vertx/ext/shell/term/SignalHandler;)Lio/vertx/ext/shell/term/Term;
            pop
         2: .line 135
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/shell/impl/ShellImpl;)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/shell/impl/ShellImpl.lambda$6(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.ext.shell.term.Term.closeHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/shell/term/Term;
            pop
         3: .line 140
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.welcome:Ljava/lang/String;
            ifnull 5
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.welcome:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 5
         4: .line 141
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.welcome:Ljava/lang/String;
            invokeinterface io.vertx.ext.shell.term.Term.write:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
         5: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/ext/shell/impl/ShellImpl;

  private java.lang.String statusLine(io.vertx.ext.shell.system.Job, io.vertx.ext.shell.system.ExecStatus);
    descriptor: (Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/ExecStatus;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // io.vertx.ext.shell.system.Job job
        start local 2 // io.vertx.ext.shell.system.ExecStatus status
         0: .line 147
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.id:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 148
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.findJob:()Lio/vertx/ext/shell/system/Job;
            aload 1 /* job */
            if_acmpne 3
         2: .line 149
            aload 3 /* sb */
            ldc "+"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 151
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* status */
            invokevirtual io.vertx.ext.shell.system.ExecStatus.name:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toUpperCase:(C)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.status:()Lio/vertx/ext/shell/system/ExecStatus;
            invokevirtual io.vertx.ext.shell.system.ExecStatus.name:()Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 152
            aload 3 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.line:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 153
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // io.vertx.ext.shell.system.ExecStatus status
        end local 1 // io.vertx.ext.shell.system.Job job
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    6     1     job  Lio/vertx/ext/shell/system/Job;
            0    6     2  status  Lio/vertx/ext/shell/system/ExecStatus;
            1    6     3      sb  Ljava/lang/StringBuilder;
    MethodParameters:
        Name  Flags
      job     
      status  

  private io.vertx.ext.shell.system.Job findJob();
    descriptor: ()Lio/vertx/ext/shell/system/Job;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 157
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.foregroundJob:()Lio/vertx/ext/shell/system/Job;
            astore 1 /* foregroundJob */
        start local 1 // io.vertx.ext.shell.system.Job foregroundJob
         1: .line 158
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.jobController:()Lio/vertx/ext/shell/system/JobController;
            invokeinterface io.vertx.ext.shell.system.JobController.jobs:()Ljava/util/Set;
         2: .line 159
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 160
            aload 1 /* foregroundJob */
            invokedynamic test(Lio/vertx/ext/shell/system/Job;)Ljava/util/function/Predicate;
              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;)Z
                  io/vertx/ext/shell/impl/ShellImpl.lambda$8(Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/Job;)Z (6)
                  (Lio/vertx/ext/shell/system/Job;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic compare()Ljava/util/Comparator;
              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;Ljava/lang/Object;)I
                  io/vertx/ext/shell/impl/ShellImpl.lambda$9(Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/Job;)I (6)
                  (Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/Job;)I
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
         4: .line 161
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.ext.shell.system.Job
         5: .line 158
            areturn
        end local 1 // io.vertx.ext.shell.system.Job foregroundJob
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lio/vertx/ext/shell/impl/ShellImpl;
            1    6     1  foregroundJob  Lio/vertx/ext/shell/system/Job;

  public void readline();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 167
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.promptFunc:Ljava/util/function/Function;
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.session:Lio/vertx/ext/shell/session/Session;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* prompt */
        start local 1 // java.lang.String prompt
         1: .line 168
            goto 4
        end local 1 // java.lang.String prompt
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: pop
         3: .line 169
            ldc "% "
            astore 1 /* prompt */
        start local 1 // java.lang.String prompt
         4: .line 171
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            aload 1 /* prompt */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/shell/impl/ShellImpl;)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/shell/impl/ShellImpl.lambda$10(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
         5: .line 247
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/shell/impl/ShellImpl;)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/shell/impl/ShellImpl.lambda$11(Lio/vertx/ext/shell/cli/Completion;)V (7)
                  (Lio/vertx/ext/shell/cli/Completion;)V
         6: .line 171
            invokeinterface io.vertx.ext.shell.term.Term.readline:(Ljava/lang/String;Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
         7: .line 250
            return
        end local 1 // java.lang.String prompt
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lio/vertx/ext/shell/impl/ShellImpl;
            1    2     1  prompt  Ljava/lang/String;
            4    8     1  prompt  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
         0: .line 253
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            ifnull 3
         1: .line 254
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            invokeinterface io.vertx.ext.shell.term.Term.close:()V
         2: .line 255
            goto 4
         3: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/shell/impl/ShellImpl;)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/shell/impl/ShellImpl.lambda$15(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.close:(Lio/vertx/core/Handler;)V
         4: .line 258
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/ext/shell/impl/ShellImpl;

  private static java.lang.String lambda$0(io.vertx.ext.shell.session.Session);
    descriptor: (Lio/vertx/ext/shell/session/Session;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.shell.session.Session s
         0: .line 66
            ldc "% "
            areturn
        end local 0 // io.vertx.ext.shell.session.Session s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Lio/vertx/ext/shell/session/Session;

  private void lambda$1(io.vertx.ext.shell.system.Job);
    descriptor: (Lio/vertx/ext/shell/system/Job;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // io.vertx.ext.shell.system.Job job
         0: .line 81
            aload 1 /* job */
            ifnonnull 2
         1: .line 82
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
         2: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.ext.shell.system.Job job
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    3     1   job  Lio/vertx/ext/shell/system/Job;

  private boolean lambda$4(int);
    descriptor: (I)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // int key
         0: .line 125
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.jobController:()Lio/vertx/ext/shell/system/JobController;
            invokeinterface io.vertx.ext.shell.system.JobController.foregroundJob:()Lio/vertx/ext/shell/system/Job;
            invokeinterface io.vertx.ext.shell.system.Job.interrupt:()Z
            ireturn
        end local 1 // int key
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    1     1   key  I

  private boolean lambda$5(int);
    descriptor: (I)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // int key
         0: .line 128
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 1 /* key */
            iastore
            dup
            iconst_1
            bipush 10
            iastore
            invokestatic io.termd.core.util.Helper.fromCodePoints:([I)Ljava/lang/String;
            invokeinterface io.vertx.ext.shell.term.Term.echo:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
         1: .line 129
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.foregroundJob:()Lio/vertx/ext/shell/system/Job;
            astore 2 /* job */
        start local 2 // io.vertx.ext.shell.system.Job job
         2: .line 130
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 2 /* job */
            getstatic io.vertx.ext.shell.system.ExecStatus.STOPPED:Lio/vertx/ext/shell/system/ExecStatus;
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.statusLine:(Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/ExecStatus;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.shell.term.Term.echo:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
         3: .line 131
            aload 2 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.suspend:()Lio/vertx/ext/shell/system/Job;
            pop
         4: .line 132
            iconst_1
            ireturn
        end local 2 // io.vertx.ext.shell.system.Job job
        end local 1 // int key
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    5     1   key  I
            2    5     2   job  Lio/vertx/ext/shell/system/Job;

  private void lambda$6(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.lang.Void v
         0: .line 136
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/shell/impl/ShellImpl;)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/shell/impl/ShellImpl.lambda$7(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.close:(Lio/vertx/core/Handler;)V
         1: .line 138
            return
        end local 1 // java.lang.Void v
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    2     1     v  Ljava/lang/Void;

  private static boolean lambda$8(io.vertx.ext.shell.system.Job, io.vertx.ext.shell.system.Job);
    descriptor: (Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/Job;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.ext.shell.system.Job job
         0: .line 160
            aload 1 /* job */
            aload 0
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // io.vertx.ext.shell.system.Job job
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1   job  Lio/vertx/ext/shell/system/Job;

  private static int lambda$9(io.vertx.ext.shell.system.Job, io.vertx.ext.shell.system.Job);
    descriptor: (Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/Job;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.system.Job j1
        start local 1 // io.vertx.ext.shell.system.Job j2
         0: .line 160
            aload 0 /* j1 */
            invokeinterface io.vertx.ext.shell.system.Job.lastStopped:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 1 /* j2 */
            invokeinterface io.vertx.ext.shell.system.Job.lastStopped:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.lang.Long.compareTo:(Ljava/lang/Long;)I
            ireturn
        end local 1 // io.vertx.ext.shell.system.Job j2
        end local 0 // io.vertx.ext.shell.system.Job j1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    j1  Lio/vertx/ext/shell/system/Job;
            0    1     1    j2  Lio/vertx/ext/shell/system/Job;

  private void lambda$10(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.lang.String line
         0: .line 173
            aload 1 /* line */
            ifnonnull 3
         1: .line 175
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            invokeinterface io.vertx.ext.shell.term.Term.close:()V
         2: .line 176
            return
         3: .line 179
      StackMap locals:
      StackMap stack:
            aload 1 /* line */
            invokestatic io.vertx.ext.shell.cli.CliToken.tokenize:(Ljava/lang/String;)Ljava/util/List;
            astore 2 /* tokens */
        start local 2 // java.util.List tokens
         4: .line 181
            aload 2 /* tokens */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  io/vertx/ext/shell/cli/CliToken.isText()Z (9 itf)
                  (Lio/vertx/ext/shell/cli/CliToken;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
            lconst_0
            lcmp
            ifne 7
         5: .line 183
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
         6: .line 184
            return
         7: .line 187
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* tokens */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  io/vertx/ext/shell/cli/CliToken.isText()Z (9 itf)
                  (Lio/vertx/ext/shell/cli/CliToken;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            astore 3 /* first */
        start local 3 // java.util.Optional first
         8: .line 188
            aload 3 /* first */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 44
         9: .line 189
            aload 3 /* first */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast io.vertx.ext.shell.cli.CliToken
            invokeinterface io.vertx.ext.shell.cli.CliToken.value:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
        10: .line 190
            aload 4 /* name */
            dup
            astore 5
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 5
          -1097329270: 11
                 3141: 12
                 3265: 13
              3127582: 14
              3267670: 15
              default: 44
          }
      StackMap locals: java.util.Optional java.lang.String java.lang.String
      StackMap stack:
        11: aload 5
            ldc "logout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 44
      StackMap locals:
      StackMap stack:
        12: aload 5
            ldc "bg"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 44
      StackMap locals:
      StackMap stack:
        13: aload 5
            ldc "fg"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 44
      StackMap locals:
      StackMap stack:
        14: aload 5
            ldc "exit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 44
      StackMap locals:
      StackMap stack:
        15: aload 5
            ldc "jobs"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 44
        16: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            invokeinterface io.vertx.ext.shell.term.Term.close:()V
        17: .line 194
            return
        18: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.jobController:Lio/vertx/ext/shell/system/impl/JobControllerImpl;
            invokevirtual io.vertx.ext.shell.system.impl.JobControllerImpl.jobs:()Ljava/util/Set;
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/ext/shell/impl/ShellImpl;)Ljava/util/function/Consumer;
              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/shell/impl/ShellImpl.lambda$14(Lio/vertx/ext/shell/system/Job;)V (7)
                  (Lio/vertx/ext/shell/system/Job;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        19: .line 200
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
        20: .line 201
            return
        21: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.findJob:()Lio/vertx/ext/shell/system/Job;
            astore 6 /* job */
        start local 6 // io.vertx.ext.shell.system.Job job
        22: .line 204
            aload 6 /* job */
            ifnonnull 26
        23: .line 205
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            ldc "no such job\n"
            invokeinterface io.vertx.ext.shell.term.Term.write:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
        24: .line 206
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
        25: .line 207
            goto 30
        26: .line 208
      StackMap locals: io.vertx.ext.shell.system.Job
      StackMap stack:
            aload 6 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.status:()Lio/vertx/ext/shell/system/ExecStatus;
            getstatic io.vertx.ext.shell.system.ExecStatus.STOPPED:Lio/vertx/ext/shell/system/ExecStatus;
            if_acmpne 29
        27: .line 209
            aload 6 /* job */
            iconst_1
            invokeinterface io.vertx.ext.shell.system.Job.resume:(Z)Lio/vertx/ext/shell/system/Job;
            pop
        28: .line 210
            goto 30
        29: .line 211
      StackMap locals:
      StackMap stack:
            aload 6 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.toForeground:()Lio/vertx/ext/shell/system/Job;
            pop
        30: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.vertx.ext.shell.system.Job job
        31: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.findJob:()Lio/vertx/ext/shell/system/Job;
            astore 6 /* job */
        start local 6 // io.vertx.ext.shell.system.Job job
        32: .line 218
            aload 6 /* job */
            ifnonnull 36
        33: .line 219
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            ldc "no such job\n"
            invokeinterface io.vertx.ext.shell.term.Term.write:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
        34: .line 220
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
        35: .line 221
            goto 43
        36: .line 222
      StackMap locals: io.vertx.ext.shell.system.Job
      StackMap stack:
            aload 6 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.status:()Lio/vertx/ext/shell/system/ExecStatus;
            getstatic io.vertx.ext.shell.system.ExecStatus.STOPPED:Lio/vertx/ext/shell/system/ExecStatus;
            if_acmpne 41
        37: .line 223
            aload 6 /* job */
            iconst_0
            invokeinterface io.vertx.ext.shell.system.Job.resume:(Z)Lio/vertx/ext/shell/system/Job;
            pop
        38: .line 224
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 6 /* job */
            getstatic io.vertx.ext.shell.system.ExecStatus.RUNNING:Lio/vertx/ext/shell/system/ExecStatus;
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.statusLine:(Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/ExecStatus;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.shell.term.Term.echo:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
        39: .line 225
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
        40: .line 226
            goto 43
        41: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            new java.lang.StringBuilder
            dup
            ldc "job "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.id:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " already in background\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.shell.term.Term.write:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
        42: .line 228
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
        43: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.vertx.ext.shell.system.Job job
        end local 4 // java.lang.String name
        44: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tokens */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.createJob:(Ljava/util/List;)Lio/vertx/ext/shell/system/Job;
            astore 4 /* job */
        start local 4 // io.vertx.ext.shell.system.Job job
        45: .line 239
            goto 50
        end local 4 // io.vertx.ext.shell.system.Job job
      StackMap locals:
      StackMap stack: java.lang.Exception
        46: astore 5 /* e */
        start local 5 // java.lang.Exception e
        47: .line 240
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            new java.lang.StringBuilder
            dup
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.shell.term.Term.echo:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
        48: .line 241
            aload 0 /* this */
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.readline:()V
        49: .line 242
            return
        end local 5 // java.lang.Exception e
        start local 4 // io.vertx.ext.shell.system.Job job
        50: .line 244
      StackMap locals: io.vertx.ext.shell.system.Job
      StackMap stack:
            aload 4 /* job */
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            invokeinterface io.vertx.ext.shell.system.Job.setTty:(Lio/vertx/ext/shell/term/Tty;)Lio/vertx/ext/shell/system/Job;
            pop
        51: .line 245
            aload 4 /* job */
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.session:Lio/vertx/ext/shell/session/Session;
            invokeinterface io.vertx.ext.shell.system.Job.setSession:(Lio/vertx/ext/shell/session/Session;)Lio/vertx/ext/shell/system/Job;
            pop
        52: .line 246
            aload 4 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.run:()Lio/vertx/ext/shell/system/Job;
            pop
        end local 4 // io.vertx.ext.shell.system.Job job
        end local 3 // java.util.Optional first
        end local 2 // java.util.List tokens
        53: .line 247
            return
        end local 1 // java.lang.String line
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   54     0    this  Lio/vertx/ext/shell/impl/ShellImpl;
            0   54     1    line  Ljava/lang/String;
            4   53     2  tokens  Ljava/util/List<Lio/vertx/ext/shell/cli/CliToken;>;
            8   53     3   first  Ljava/util/Optional<Lio/vertx/ext/shell/cli/CliToken;>;
           10   44     4    name  Ljava/lang/String;
           22   31     6     job  Lio/vertx/ext/shell/system/Job;
           32   44     6     job  Lio/vertx/ext/shell/system/Job;
           45   46     4     job  Lio/vertx/ext/shell/system/Job;
           50   53     4     job  Lio/vertx/ext/shell/system/Job;
           47   50     5       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          44    45      46  Class java.lang.Exception

  private void lambda$11(io.vertx.ext.shell.cli.Completion);
    descriptor: (Lio/vertx/ext/shell/cli/Completion;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // io.vertx.ext.shell.cli.Completion completion
         0: .line 248
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.commandManager:Lio/vertx/ext/shell/system/impl/InternalCommandManager;
            aload 1 /* completion */
            invokevirtual io.vertx.ext.shell.system.impl.InternalCommandManager.complete:(Lio/vertx/ext/shell/cli/Completion;)V
         1: .line 249
            return
        end local 1 // io.vertx.ext.shell.cli.Completion completion
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    2     1  completion  Lio/vertx/ext/shell/cli/Completion;

  private void lambda$15(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.lang.Void ar
         0: .line 256
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.closedPromise:Lio/vertx/core/Promise;
            invokeinterface io.vertx.core.Promise.complete:()V
            return
        end local 1 // java.lang.Void ar
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    1     1    ar  Ljava/lang/Void;

  private void lambda$7(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // java.lang.Void ar
         0: .line 137
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.closedPromise:Lio/vertx/core/Promise;
            invokeinterface io.vertx.core.Promise.complete:()V
            return
        end local 1 // java.lang.Void ar
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    1     1    ar  Ljava/lang/Void;

  private void lambda$14(io.vertx.ext.shell.system.Job);
    descriptor: (Lio/vertx/ext/shell/system/Job;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.ext.shell.impl.ShellImpl this
        start local 1 // io.vertx.ext.shell.system.Job job
         0: .line 197
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 1 /* job */
            aload 1 /* job */
            invokeinterface io.vertx.ext.shell.system.Job.status:()Lio/vertx/ext/shell/system/ExecStatus;
            invokevirtual io.vertx.ext.shell.impl.ShellImpl.statusLine:(Lio/vertx/ext/shell/system/Job;Lio/vertx/ext/shell/system/ExecStatus;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* statusLine */
        start local 2 // java.lang.String statusLine
         1: .line 198
            aload 0 /* this */
            getfield io.vertx.ext.shell.impl.ShellImpl.term:Lio/vertx/ext/shell/term/Term;
            aload 2 /* statusLine */
            invokeinterface io.vertx.ext.shell.term.Term.write:(Ljava/lang/String;)Lio/vertx/ext/shell/term/Term;
            pop
        end local 2 // java.lang.String statusLine
         2: .line 199
            return
        end local 1 // io.vertx.ext.shell.system.Job job
        end local 0 // io.vertx.ext.shell.impl.ShellImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/ext/shell/impl/ShellImpl;
            0    3     1         job  Lio/vertx/ext/shell/system/Job;
            1    2     2  statusLine  Ljava/lang/String;
}
SourceFile: "ShellImpl.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles