public class io.vertx.core.Starter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.core.Starter
  super_class: java.lang.Object
{
  public static final java.lang.String VERTX_OPTIONS_PROP_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "vertx.options."

  public static final java.lang.String DEPLOYMENT_OPTIONS_PROP_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "vertx.deployment.options."

  public static final java.lang.String METRICS_OPTIONS_PROP_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "vertx.metrics.options."

  private static final java.lang.String PATH_SEP;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  public static java.util.List<java.lang.String> PROCESS_ARGS;
    descriptor: Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Signature: Ljava/util/List<Ljava/lang/String;>;

  protected io.vertx.core.Vertx vertx;
    descriptor: Lio/vertx/core/Vertx;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.core.VertxOptions options;
    descriptor: Lio/vertx/core/VertxOptions;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.core.DeploymentOptions deploymentOptions;
    descriptor: Lio/vertx/core/DeploymentOptions;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc "path.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic io.vertx.core.Starter.PATH_SEP:Ljava/lang/String;
         1: .line 59
            ldc Lio/vertx/core/Starter;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
         2: .line 60
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/Starter;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // java.lang.String[] sargs
         0: .line 63
            new io.vertx.core.impl.Args
            dup
            aload 0 /* sargs */
            invokespecial io.vertx.core.impl.Args.<init>:([Ljava/lang/String;)V
            astore 1 /* args */
        start local 1 // io.vertx.core.impl.Args args
         1: .line 65
            aload 1 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-cp"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* extraCP */
        start local 2 // java.lang.String extraCP
         2: .line 66
            aload 2 /* extraCP */
            ifnull 31
         3: .line 69
            aload 2 /* extraCP */
            getstatic io.vertx.core.Starter.PATH_SEP:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* parts */
        start local 3 // java.lang.String[] parts
         4: .line 70
            aload 3 /* parts */
            arraylength
            anewarray java.net.URL
            astore 4 /* urls */
        start local 4 // java.net.URL[] urls
         5: .line 71
            iconst_0
            istore 5 /* p */
        start local 5 // int p
         6: goto 15
         7: .line 72
      StackMap locals: java.lang.String[] io.vertx.core.impl.Args java.lang.String java.lang.String[] java.net.URL[] int
      StackMap stack:
            aload 3 /* parts */
            iload 5 /* p */
            aaload
            astore 6 /* part */
        start local 6 // java.lang.String part
         8: .line 73
            new java.io.File
            dup
            aload 6 /* part */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* file */
        start local 7 // java.io.File file
         9: .line 75
            aload 7 /* file */
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            astore 8 /* url */
        start local 8 // java.net.URL url
        10: .line 76
            aload 4 /* urls */
            iload 5 /* p */
            aload 8 /* url */
            aastore
        end local 8 // java.net.URL url
        11: .line 77
            goto 14
      StackMap locals: java.lang.String[] io.vertx.core.impl.Args java.lang.String java.lang.String[] java.net.URL[] int java.lang.String java.io.File
      StackMap stack: java.net.MalformedURLException
        12: astore 8 /* e */
        start local 8 // java.net.MalformedURLException e
        13: .line 78
            new java.lang.IllegalStateException
            dup
            aload 8 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.net.MalformedURLException e
        end local 7 // java.io.File file
        end local 6 // java.lang.String part
        14: .line 71
      StackMap locals:
      StackMap stack:
            iinc 5 /* p */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* p */
            aload 3 /* parts */
            arraylength
            if_icmplt 7
        end local 5 // int p
        16: .line 81
            new java.net.URLClassLoader
            dup
            aload 4 /* urls */
            ldc Lio/vertx/core/Starter;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            astore 5 /* icl */
        start local 5 // java.lang.ClassLoader icl
        17: .line 82
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 6 /* oldTCCL */
        start local 6 // java.lang.ClassLoader oldTCCL
        18: .line 83
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 5 /* icl */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        19: .line 85
            aload 5 /* icl */
            ldc Lio/vertx/core/Starter;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 7 /* clazz */
        start local 7 // java.lang.Class clazz
        20: .line 86
            aload 7 /* clazz */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 8 /* instance */
        start local 8 // java.lang.Object instance
        21: .line 87
            aload 7 /* clazz */
            ldc "run"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lio/vertx/core/impl/Args;
            aastore
            dup
            iconst_1
            ldc [Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 9 /* run */
        start local 9 // java.lang.reflect.Method run
        22: .line 88
            aload 9 /* run */
            aload 8 /* instance */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* args */
            aastore
            dup
            iconst_1
            aload 0 /* sargs */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.reflect.Method run
        end local 8 // java.lang.Object instance
        end local 7 // java.lang.Class clazz
        23: .line 89
            goto 29
      StackMap locals: java.lang.String[] io.vertx.core.impl.Args java.lang.String java.lang.String[] java.net.URL[] java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack: java.lang.Exception
        24: astore 7 /* e */
        start local 7 // java.lang.Exception e
        25: .line 90
            new java.lang.IllegalStateException
            dup
            aload 7 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Exception e
        26: .line 91
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        27: .line 92
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* oldTCCL */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        28: .line 93
            aload 10
            athrow
        29: .line 92
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* oldTCCL */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        end local 6 // java.lang.ClassLoader oldTCCL
        end local 5 // java.lang.ClassLoader icl
        end local 4 // java.net.URL[] urls
        end local 3 // java.lang.String[] parts
        30: .line 94
            goto 32
        31: .line 96
      StackMap locals: java.lang.String[] io.vertx.core.impl.Args java.lang.String
      StackMap stack:
            new io.vertx.core.Starter
            dup
            invokespecial io.vertx.core.Starter.<init>:()V
            aload 1 /* args */
            aload 0 /* sargs */
            invokevirtual io.vertx.core.Starter.run:(Lio/vertx/core/impl/Args;[Ljava/lang/String;)V
        32: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String extraCP
        end local 1 // io.vertx.core.impl.Args args
        end local 0 // java.lang.String[] sargs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0     sargs  [Ljava/lang/String;
            1   33     1      args  Lio/vertx/core/impl/Args;
            2   33     2   extraCP  Ljava/lang/String;
            4   30     3     parts  [Ljava/lang/String;
            5   30     4      urls  [Ljava/net/URL;
            6   16     5         p  I
            8   14     6      part  Ljava/lang/String;
            9   14     7      file  Ljava/io/File;
           10   11     8       url  Ljava/net/URL;
           13   14     8         e  Ljava/net/MalformedURLException;
           17   30     5       icl  Ljava/lang/ClassLoader;
           18   30     6   oldTCCL  Ljava/lang/ClassLoader;
           20   23     7     clazz  Ljava/lang/Class<*>;
           21   23     8  instance  Ljava/lang/Object;
           22   23     9       run  Ljava/lang/reflect/Method;
           25   26     7         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    11      12  Class java.net.MalformedURLException
          19    23      24  Class java.lang.Exception
          19    26      26  any
    MethodParameters:
       Name  Flags
      sargs  

  public static void runCommandLine(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String commandLine
         0: .line 101
            new io.vertx.core.Starter
            dup
            invokespecial io.vertx.core.Starter.<init>:()V
            aload 0 /* commandLine */
            invokevirtual io.vertx.core.Starter.run:(Ljava/lang/String;)V
         1: .line 102
            return
        end local 0 // java.lang.String commandLine
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0  commandLine  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      commandLine  

  protected void run(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.lang.String commandLine
         0: .line 109
            aload 1 /* commandLine */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* sargs */
        start local 2 // java.lang.String[] sargs
         1: .line 110
            new io.vertx.core.impl.Args
            dup
            aload 2 /* sargs */
            invokespecial io.vertx.core.impl.Args.<init>:([Ljava/lang/String;)V
            astore 3 /* args */
        start local 3 // io.vertx.core.impl.Args args
         2: .line 111
            aload 0 /* this */
            aload 3 /* args */
            aload 2 /* sargs */
            invokevirtual io.vertx.core.Starter.run:(Lio/vertx/core/impl/Args;[Ljava/lang/String;)V
         3: .line 112
            return
        end local 3 // io.vertx.core.impl.Args args
        end local 2 // java.lang.String[] sargs
        end local 1 // java.lang.String commandLine
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lio/vertx/core/Starter;
            0    4     1  commandLine  Ljava/lang/String;
            1    4     2        sargs  [Ljava/lang/String;
            2    4     3         args  Lio/vertx/core/impl/Args;
    MethodParameters:
             Name  Flags
      commandLine  

  protected void run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.lang.String[] sargs
         0: .line 115
            aload 0 /* this */
            new io.vertx.core.impl.Args
            dup
            aload 1 /* sargs */
            invokespecial io.vertx.core.impl.Args.<init>:([Ljava/lang/String;)V
            aload 1 /* sargs */
            invokevirtual io.vertx.core.Starter.run:(Lio/vertx/core/impl/Args;[Ljava/lang/String;)V
         1: .line 116
            return
        end local 1 // java.lang.String[] sargs
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/vertx/core/Starter;
            0    2     1  sargs  [Ljava/lang/String;
    MethodParameters:
       Name  Flags
      sargs  

  public void run(io.vertx.core.impl.Args, java.lang.String[]);
    descriptor: (Lio/vertx/core/impl/Args;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.core.Starter this
        start local 1 // io.vertx.core.impl.Args args
        start local 2 // java.lang.String[] sargs
         0: .line 121
            aload 2 /* sargs */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putstatic io.vertx.core.Starter.PROCESS_ARGS:Ljava/util/List;
         1: .line 123
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.readMainVerticleFromManifest:()Ljava/lang/String;
            astore 3 /* main */
        start local 3 // java.lang.String main
         2: .line 124
            aload 3 /* main */
            ifnull 5
         3: .line 125
            aload 0 /* this */
            aload 3 /* main */
            aload 1 /* args */
            invokevirtual io.vertx.core.Starter.runVerticle:(Ljava/lang/String;Lio/vertx/core/impl/Args;)V
         4: .line 126
            goto 21
         5: .line 127
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* sargs */
            arraylength
            ifle 20
         6: .line 128
            aload 2 /* sargs */
            iconst_0
            aaload
            astore 4 /* first */
        start local 4 // java.lang.String first
         7: .line 129
            aload 4 /* first */
            ldc "-version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 130
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.getVersion:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
         9: .line 131
            return
        10: .line 132
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* first */
            ldc "run"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        11: .line 133
            aload 2 /* sargs */
            arraylength
            iconst_2
            if_icmpge 14
        12: .line 134
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.displaySyntax:()V
        13: .line 135
            return
        14: .line 137
      StackMap locals:
      StackMap stack:
            aload 2 /* sargs */
            iconst_1
            aaload
            astore 3 /* main */
        15: .line 138
            aload 0 /* this */
            aload 3 /* main */
            aload 1 /* args */
            invokevirtual io.vertx.core.Starter.runVerticle:(Ljava/lang/String;Lio/vertx/core/impl/Args;)V
        16: .line 139
            return
        17: .line 141
      StackMap locals:
      StackMap stack:
            aload 4 /* first */
            ldc "-ha"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 143
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual io.vertx.core.Starter.runBare:(Lio/vertx/core/impl/Args;)V
        19: .line 144
            return
        end local 4 // java.lang.String first
        20: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.displaySyntax:()V
        21: .line 149
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String main
        end local 2 // java.lang.String[] sargs
        end local 1 // io.vertx.core.impl.Args args
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lio/vertx/core/Starter;
            0   22     1   args  Lio/vertx/core/impl/Args;
            0   22     2  sargs  [Ljava/lang/String;
            2   22     3   main  Ljava/lang/String;
            7   20     4  first  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      args   
      sargs  

  protected void beforeStartingVertx(io.vertx.core.VertxOptions);
    descriptor: (Lio/vertx/core/VertxOptions;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // io.vertx.core.VertxOptions options
         0: .line 156
            return
        end local 1 // io.vertx.core.VertxOptions options
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/core/Starter;
            0    1     1  options  Lio/vertx/core/VertxOptions;
    MethodParameters:
         Name  Flags
      options  

  protected void afterStartingVertx();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 163
            return
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/Starter;

  protected void beforeDeployingVerticle(io.vertx.core.DeploymentOptions);
    descriptor: (Lio/vertx/core/DeploymentOptions;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // io.vertx.core.DeploymentOptions deploymentOptions
         0: .line 170
            return
        end local 1 // io.vertx.core.DeploymentOptions deploymentOptions
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lio/vertx/core/Starter;
            0    1     1  deploymentOptions  Lio/vertx/core/DeploymentOptions;
    MethodParameters:
                   Name  Flags
      deploymentOptions  

  protected void handleDeployFailed();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 178
            aload 0 /* this */
            getfield io.vertx.core.Starter.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.close:()V
         1: .line 179
            return
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/Starter;

  private io.vertx.core.Vertx startVertx(boolean, boolean, io.vertx.core.impl.Args);
    descriptor: (ZZLio/vertx/core/impl/Args;)Lio/vertx/core/Vertx;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // io.vertx.core.Starter this
        start local 1 // boolean clustered
        start local 2 // boolean ha
        start local 3 // io.vertx.core.impl.Args args
         0: .line 184
            ldc Lio/vertx/core/spi/VertxMetricsFactory;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
            astore 5 /* factories */
        start local 5 // java.util.ServiceLoader factories
         1: .line 185
            aload 5 /* factories */
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 5
         2: .line 186
            aload 5 /* factories */
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.core.spi.VertxMetricsFactory
            astore 6 /* factory */
        start local 6 // io.vertx.core.spi.VertxMetricsFactory factory
         3: .line 187
            aload 6 /* factory */
            invokeinterface io.vertx.core.spi.VertxMetricsFactory.newOptions:()Lio/vertx/core/metrics/MetricsOptions;
            astore 4 /* metricsOptions */
        end local 6 // io.vertx.core.spi.VertxMetricsFactory factory
        start local 4 // io.vertx.core.metrics.MetricsOptions metricsOptions
         4: .line 188
            goto 6
        end local 4 // io.vertx.core.metrics.MetricsOptions metricsOptions
         5: .line 189
      StackMap locals: io.vertx.core.Starter int int io.vertx.core.impl.Args top java.util.ServiceLoader
      StackMap stack:
            new io.vertx.core.metrics.MetricsOptions
            dup
            invokespecial io.vertx.core.metrics.MetricsOptions.<init>:()V
            astore 4 /* metricsOptions */
        start local 4 // io.vertx.core.metrics.MetricsOptions metricsOptions
         6: .line 191
      StackMap locals: io.vertx.core.Starter int int io.vertx.core.impl.Args io.vertx.core.metrics.MetricsOptions java.util.ServiceLoader
      StackMap stack:
            aload 0 /* this */
            aload 4 /* metricsOptions */
            ldc "vertx.metrics.options."
            invokevirtual io.vertx.core.Starter.configureFromSystemProperties:(Ljava/lang/Object;Ljava/lang/String;)V
         7: .line 192
            aload 0 /* this */
            new io.vertx.core.VertxOptions
            dup
            invokespecial io.vertx.core.VertxOptions.<init>:()V
            aload 4 /* metricsOptions */
            invokevirtual io.vertx.core.VertxOptions.setMetricsOptions:(Lio/vertx/core/metrics/MetricsOptions;)Lio/vertx/core/VertxOptions;
            putfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
         8: .line 193
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            ldc "vertx.options."
            invokevirtual io.vertx.core.Starter.configureFromSystemProperties:(Ljava/lang/Object;Ljava/lang/String;)V
         9: .line 194
            iload 1 /* clustered */
            ifeq 46
        10: .line 195
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            ldc "Starting clustering..."
            invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
        11: .line 196
            aload 3 /* args */
            ldc "-cluster-port"
            invokevirtual io.vertx.core.impl.Args.getInt:(Ljava/lang/String;)I
            istore 6 /* clusterPort */
        start local 6 // int clusterPort
        12: .line 197
            iload 6 /* clusterPort */
            iconst_m1
            if_icmpne 14
        13: .line 199
            iconst_0
            istore 6 /* clusterPort */
        14: .line 201
      StackMap locals: int
      StackMap stack:
            aload 3 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-cluster-host"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* clusterHost */
        start local 7 // java.lang.String clusterHost
        15: .line 202
            aload 7 /* clusterHost */
            ifnonnull 21
        16: .line 203
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.getDefaultAddress:()Ljava/lang/String;
            astore 7 /* clusterHost */
        17: .line 204
            aload 7 /* clusterHost */
            ifnonnull 20
        18: .line 205
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            ldc "Unable to find a default network interface for clustering. Please specify one using -cluster-host"
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        19: .line 206
            aconst_null
            areturn
        20: .line 208
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "No cluster-host specified so using address "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* clusterHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
        21: .line 211
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 8 /* latch */
        start local 8 // java.util.concurrent.CountDownLatch latch
        22: .line 212
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 9 /* result */
        start local 9 // java.util.concurrent.atomic.AtomicReference result
        23: .line 214
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            invokevirtual io.vertx.core.VertxOptions.getEventBusOptions:()Lio/vertx/core/eventbus/EventBusOptions;
            iconst_1
            invokevirtual io.vertx.core.eventbus.EventBusOptions.setClustered:(Z)Lio/vertx/core/eventbus/EventBusOptions;
            aload 7 /* clusterHost */
            invokevirtual io.vertx.core.eventbus.EventBusOptions.setHost:(Ljava/lang/String;)Lio/vertx/core/eventbus/EventBusOptions;
            iload 6 /* clusterPort */
            invokevirtual io.vertx.core.eventbus.EventBusOptions.setPort:(I)Lio/vertx/core/eventbus/EventBusOptions;
            pop
        24: .line 215
            iload 2 /* ha */
            ifeq 32
        25: .line 216
            aload 3 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-hagroup"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* haGroup */
        start local 10 // java.lang.String haGroup
        26: .line 217
            aload 3 /* args */
            ldc "-quorum"
            invokevirtual io.vertx.core.impl.Args.getInt:(Ljava/lang/String;)I
            istore 11 /* quorumSize */
        start local 11 // int quorumSize
        27: .line 218
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            iconst_1
            invokevirtual io.vertx.core.VertxOptions.setHAEnabled:(Z)Lio/vertx/core/VertxOptions;
            pop
        28: .line 219
            aload 10 /* haGroup */
            ifnull 30
        29: .line 220
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            aload 10 /* haGroup */
            invokevirtual io.vertx.core.VertxOptions.setHAGroup:(Ljava/lang/String;)Lio/vertx/core/VertxOptions;
            pop
        30: .line 222
      StackMap locals: io.vertx.core.Starter int int io.vertx.core.impl.Args io.vertx.core.metrics.MetricsOptions java.util.ServiceLoader int java.lang.String java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicReference java.lang.String int
      StackMap stack:
            iload 11 /* quorumSize */
            iconst_m1
            if_icmpeq 32
        31: .line 223
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            iload 11 /* quorumSize */
            invokevirtual io.vertx.core.VertxOptions.setQuorumSize:(I)Lio/vertx/core/VertxOptions;
            pop
        end local 11 // int quorumSize
        end local 10 // java.lang.String haGroup
        32: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            invokevirtual io.vertx.core.Starter.beforeStartingVertx:(Lio/vertx/core/VertxOptions;)V
        33: .line 227
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            aload 9 /* result */
            aload 8 /* latch */
            invokedynamic handle(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;)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/core/Starter.lambda$0(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokestatic io.vertx.core.Vertx.clusteredVertx:(Lio/vertx/core/VertxOptions;Lio/vertx/core/Handler;)V
        34: .line 232
            aload 8 /* latch */
            ldc 2
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 40
        35: .line 233
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            ldc "Timed out in starting clustered Vert.x"
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        36: .line 234
            aconst_null
            areturn
        37: .line 236
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        38: .line 237
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            ldc "Thread interrupted in startup"
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        39: .line 238
            aconst_null
            areturn
        40: .line 240
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast io.vertx.core.AsyncResult
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 44
        41: .line 241
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            ldc "Failed to form cluster"
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        42: .line 242
            aload 9 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast io.vertx.core.AsyncResult
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.printStackTrace:()V
        43: .line 243
            aconst_null
            areturn
        44: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast io.vertx.core.AsyncResult
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.Vertx
            putfield io.vertx.core.Starter.vertx:Lio/vertx/core/Vertx;
        end local 9 // java.util.concurrent.atomic.AtomicReference result
        end local 8 // java.util.concurrent.CountDownLatch latch
        end local 7 // java.lang.String clusterHost
        end local 6 // int clusterPort
        45: .line 246
            goto 48
        46: .line 247
      StackMap locals: io.vertx.core.Starter int int io.vertx.core.impl.Args io.vertx.core.metrics.MetricsOptions java.util.ServiceLoader
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            invokevirtual io.vertx.core.Starter.beforeStartingVertx:(Lio/vertx/core/VertxOptions;)V
        47: .line 248
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.Starter.options:Lio/vertx/core/VertxOptions;
            invokestatic io.vertx.core.Vertx.vertx:(Lio/vertx/core/VertxOptions;)Lio/vertx/core/Vertx;
            putfield io.vertx.core.Starter.vertx:Lio/vertx/core/Vertx;
        48: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.addShutdownHook:()V
        49: .line 251
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.afterStartingVertx:()V
        50: .line 252
            aload 0 /* this */
            getfield io.vertx.core.Starter.vertx:Lio/vertx/core/Vertx;
            areturn
        end local 5 // java.util.ServiceLoader factories
        end local 4 // io.vertx.core.metrics.MetricsOptions metricsOptions
        end local 3 // io.vertx.core.impl.Args args
        end local 2 // boolean ha
        end local 1 // boolean clustered
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   51     0            this  Lio/vertx/core/Starter;
            0   51     1       clustered  Z
            0   51     2              ha  Z
            0   51     3            args  Lio/vertx/core/impl/Args;
            4    5     4  metricsOptions  Lio/vertx/core/metrics/MetricsOptions;
            6   51     4  metricsOptions  Lio/vertx/core/metrics/MetricsOptions;
            1   51     5       factories  Ljava/util/ServiceLoader<Lio/vertx/core/spi/VertxMetricsFactory;>;
            3    4     6         factory  Lio/vertx/core/spi/VertxMetricsFactory;
           12   45     6     clusterPort  I
           15   45     7     clusterHost  Ljava/lang/String;
           22   45     8           latch  Ljava/util/concurrent/CountDownLatch;
           23   45     9          result  Ljava/util/concurrent/atomic/AtomicReference<Lio/vertx/core/AsyncResult<Lio/vertx/core/Vertx;>;>;
           26   32    10         haGroup  Ljava/lang/String;
           27   32    11      quorumSize  I
      Exception table:
        from    to  target  type
          34    36      37  Class java.lang.InterruptedException
    MethodParameters:
           Name  Flags
      clustered  
      ha         
      args       

  private void runBare(io.vertx.core.impl.Args);
    descriptor: (Lio/vertx/core/impl/Args;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // io.vertx.core.impl.Args args
         0: .line 258
            aload 0 /* this */
            iconst_1
            iconst_1
            aload 1 /* args */
            invokevirtual io.vertx.core.Starter.startVertx:(ZZLio/vertx/core/impl/Args;)Lio/vertx/core/Vertx;
            astore 2 /* vertx */
        start local 2 // io.vertx.core.Vertx vertx
         1: .line 259
            aload 2 /* vertx */
            ifnonnull 3
         2: .line 261
            return
         3: .line 265
      StackMap locals: io.vertx.core.Vertx
      StackMap stack:
            return
        end local 2 // io.vertx.core.Vertx vertx
        end local 1 // io.vertx.core.impl.Args args
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/vertx/core/Starter;
            0    4     1   args  Lio/vertx/core/impl/Args;
            1    4     2  vertx  Lio/vertx/core/Vertx;
    MethodParameters:
      Name  Flags
      args  

  private void runVerticle(java.lang.String, io.vertx.core.impl.Args);
    descriptor: (Ljava/lang/String;Lio/vertx/core/impl/Args;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.lang.String main
        start local 2 // io.vertx.core.impl.Args args
         0: .line 268
            aload 2 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-ha"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* ha */
        start local 3 // boolean ha
         3: .line 269
            aload 2 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-cluster"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 4
            iload 3 /* ha */
            ifne 4
            iconst_0
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* clustered */
        start local 4 // boolean clustered
         6: .line 271
            aload 0 /* this */
            iload 4 /* clustered */
            iload 3 /* ha */
            aload 2 /* args */
            invokevirtual io.vertx.core.Starter.startVertx:(ZZLio/vertx/core/impl/Args;)Lio/vertx/core/Vertx;
            astore 5 /* vertx */
        start local 5 // io.vertx.core.Vertx vertx
         7: .line 272
            aload 5 /* vertx */
            ifnonnull 9
         8: .line 274
            return
         9: .line 277
      StackMap locals: int io.vertx.core.Vertx
      StackMap stack:
            aload 2 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-instances"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* sinstances */
        start local 6 // java.lang.String sinstances
        10: .line 279
            aload 6 /* sinstances */
            ifnull 19
        11: .line 281
            aload 6 /* sinstances */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 7 /* instances */
        start local 7 // int instances
        12: .line 283
            iload 7 /* instances */
            iconst_m1
            if_icmpeq 20
            iload 7 /* instances */
            iconst_1
            if_icmpge 20
        13: .line 284
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            ldc "Invalid number of instances"
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        14: .line 285
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.displaySyntax:()V
        15: .line 286
            return
        end local 7 // int instances
        16: .line 288
      StackMap locals: io.vertx.core.Starter java.lang.String io.vertx.core.impl.Args int int io.vertx.core.Vertx java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
        17: .line 289
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.displaySyntax:()V
        18: .line 290
            return
        19: .line 293
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* instances */
        start local 7 // int instances
        20: .line 296
      StackMap locals: int
      StackMap stack:
            aload 2 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-conf"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* confArg */
        start local 8 // java.lang.String confArg
        21: .line 299
            aload 8 /* confArg */
            ifnull 43
        22: .line 300
            aconst_null
            astore 10
            aconst_null
            astore 11
        23: new java.util.Scanner
            dup
            new java.io.File
            dup
            aload 8 /* confArg */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial java.util.Scanner.<init>:(Ljava/io/File;)V
            ldc "\\A"
            invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
            astore 12 /* scanner */
        start local 12 // java.util.Scanner scanner
        24: .line 301
            aload 12 /* scanner */
            invokevirtual java.util.Scanner.next:()Ljava/lang/String;
            astore 13 /* sconf */
        start local 13 // java.lang.String sconf
        25: .line 303
            new io.vertx.core.json.JsonObject
            dup
            aload 13 /* sconf */
            invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
            astore 9 /* conf */
        start local 9 // io.vertx.core.json.JsonObject conf
        26: .line 304
            goto 31
        end local 9 // io.vertx.core.json.JsonObject conf
      StackMap locals: io.vertx.core.Starter java.lang.String io.vertx.core.impl.Args int int io.vertx.core.Vertx java.lang.String int java.lang.String top java.lang.Throwable java.lang.Throwable java.util.Scanner java.lang.String
      StackMap stack: io.vertx.core.json.DecodeException
        27: pop
        28: .line 305
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Configuration file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* sconf */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not contain a valid JSON object"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        29: .line 308
            aload 12 /* scanner */
            ifnull 30
            aload 12 /* scanner */
            invokevirtual java.util.Scanner.close:()V
        30: .line 306
      StackMap locals:
      StackMap stack:
            return
        end local 13 // java.lang.String sconf
        start local 9 // io.vertx.core.json.JsonObject conf
        31: .line 308
      StackMap locals: io.vertx.core.Starter java.lang.String io.vertx.core.impl.Args int int io.vertx.core.Vertx java.lang.String int java.lang.String io.vertx.core.json.JsonObject java.lang.Throwable java.lang.Throwable java.util.Scanner
      StackMap stack:
            aload 12 /* scanner */
            ifnull 44
            aload 12 /* scanner */
            invokevirtual java.util.Scanner.close:()V
            goto 44
        end local 9 // io.vertx.core.json.JsonObject conf
      StackMap locals: io.vertx.core.Starter java.lang.String io.vertx.core.impl.Args int int io.vertx.core.Vertx java.lang.String int java.lang.String top java.lang.Throwable java.lang.Throwable java.util.Scanner
      StackMap stack: java.lang.Throwable
        32: astore 10
            aload 12 /* scanner */
            ifnull 33
            aload 12 /* scanner */
            invokevirtual java.util.Scanner.close:()V
        end local 12 // java.util.Scanner scanner
      StackMap locals:
      StackMap stack:
        33: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 11
            aload 10
            ifnonnull 35
            aload 11
            astore 10
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 10
            aload 11
            if_acmpeq 36
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 10
            athrow
      StackMap locals: io.vertx.core.Starter java.lang.String io.vertx.core.impl.Args int int io.vertx.core.Vertx java.lang.String int java.lang.String
      StackMap stack: java.io.FileNotFoundException
        37: pop
        38: .line 310
            new io.vertx.core.json.JsonObject
            dup
            aload 8 /* confArg */
            invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
            astore 9 /* conf */
        start local 9 // io.vertx.core.json.JsonObject conf
        39: .line 311
            goto 44
        end local 9 // io.vertx.core.json.JsonObject conf
      StackMap locals:
      StackMap stack: io.vertx.core.json.DecodeException
        40: pop
        41: .line 312
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "-conf option does not point to a file and is not valid JSON: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* confArg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        42: .line 313
            return
        43: .line 317
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* conf */
        start local 9 // io.vertx.core.json.JsonObject conf
        44: .line 320
      StackMap locals: io.vertx.core.json.JsonObject
      StackMap stack:
            aload 2 /* args */
            getfield io.vertx.core.impl.Args.map:Ljava/util/Map;
            ldc "-worker"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 45
            iconst_1
            goto 46
      StackMap locals:
      StackMap stack:
        45: iconst_0
      StackMap locals:
      StackMap stack: int
        46: istore 10 /* worker */
        start local 10 // boolean worker
        47: .line 321
            iload 10 /* worker */
            ifeq 48
            ldc "deploying worker verticle"
            goto 49
      StackMap locals: int
      StackMap stack:
        48: ldc "deploying verticle"
      StackMap locals:
      StackMap stack: java.lang.String
        49: astore 11 /* message */
        start local 11 // java.lang.String message
        50: .line 322
            aload 0 /* this */
            new io.vertx.core.DeploymentOptions
            dup
            invokespecial io.vertx.core.DeploymentOptions.<init>:()V
            putfield io.vertx.core.Starter.deploymentOptions:Lio/vertx/core/DeploymentOptions;
        51: .line 323
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.Starter.deploymentOptions:Lio/vertx/core/DeploymentOptions;
            ldc "vertx.deployment.options."
            invokevirtual io.vertx.core.Starter.configureFromSystemProperties:(Ljava/lang/Object;Ljava/lang/String;)V
        52: .line 325
            aload 0 /* this */
            getfield io.vertx.core.Starter.deploymentOptions:Lio/vertx/core/DeploymentOptions;
            aload 9 /* conf */
            invokevirtual io.vertx.core.DeploymentOptions.setConfig:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/DeploymentOptions;
            iload 10 /* worker */
            invokevirtual io.vertx.core.DeploymentOptions.setWorker:(Z)Lio/vertx/core/DeploymentOptions;
            iload 3 /* ha */
            invokevirtual io.vertx.core.DeploymentOptions.setHa:(Z)Lio/vertx/core/DeploymentOptions;
            iload 7 /* instances */
            invokevirtual io.vertx.core.DeploymentOptions.setInstances:(I)Lio/vertx/core/DeploymentOptions;
            pop
        53: .line 327
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.Starter.deploymentOptions:Lio/vertx/core/DeploymentOptions;
            invokevirtual io.vertx.core.Starter.beforeDeployingVerticle:(Lio/vertx/core/DeploymentOptions;)V
        54: .line 328
            aload 5 /* vertx */
            aload 1 /* main */
            aload 0 /* this */
            getfield io.vertx.core.Starter.deploymentOptions:Lio/vertx/core/DeploymentOptions;
            aload 0 /* this */
            aload 11 /* message */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/core/Starter;)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/core/Starter.lambda$1(Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.core.Starter.createLoggingHandler:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
            invokeinterface io.vertx.core.Vertx.deployVerticle:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;)V
        55: .line 334
            return
        end local 11 // java.lang.String message
        end local 10 // boolean worker
        end local 9 // io.vertx.core.json.JsonObject conf
        end local 8 // java.lang.String confArg
        end local 7 // int instances
        end local 6 // java.lang.String sinstances
        end local 5 // io.vertx.core.Vertx vertx
        end local 4 // boolean clustered
        end local 3 // boolean ha
        end local 2 // io.vertx.core.impl.Args args
        end local 1 // java.lang.String main
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   56     0        this  Lio/vertx/core/Starter;
            0   56     1        main  Ljava/lang/String;
            0   56     2        args  Lio/vertx/core/impl/Args;
            3   56     3          ha  Z
            6   56     4   clustered  Z
            7   56     5       vertx  Lio/vertx/core/Vertx;
           10   56     6  sinstances  Ljava/lang/String;
           12   16     7   instances  I
           20   56     7   instances  I
           21   56     8     confArg  Ljava/lang/String;
           26   27     9        conf  Lio/vertx/core/json/JsonObject;
           31   32     9        conf  Lio/vertx/core/json/JsonObject;
           39   40     9        conf  Lio/vertx/core/json/JsonObject;
           44   56     9        conf  Lio/vertx/core/json/JsonObject;
           24   33    12     scanner  Ljava/util/Scanner;
           25   31    13       sconf  Ljava/lang/String;
           47   56    10      worker  Z
           50   56    11     message  Ljava/lang/String;
      Exception table:
        from    to  target  type
          11    15      16  Class java.lang.NumberFormatException
          25    26      27  Class io.vertx.core.json.DecodeException
          24    29      32  any
          23    30      34  any
          31    34      34  any
          22    30      37  Class java.io.FileNotFoundException
          31    37      37  Class java.io.FileNotFoundException
          38    39      40  Class io.vertx.core.json.DecodeException
    MethodParameters:
      Name  Flags
      main  
      args  

  private <T> io.vertx.core.Handler<io.vertx.core.AsyncResult<T>> createLoggingHandler(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.lang.String message
        start local 2 // io.vertx.core.Handler completionHandler
         0: .line 337
            aload 1 /* message */
            aload 2 /* completionHandler */
            invokedynamic handle(Ljava/lang/String;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/core/Starter.lambda$2(Ljava/lang/String;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            areturn
        end local 2 // io.vertx.core.Handler completionHandler
        end local 1 // java.lang.String message
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lio/vertx/core/Starter;
            0    1     1            message  Ljava/lang/String;
            0    1     2  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
    MethodParameters:
                   Name  Flags
      message            final
      completionHandler  final

  private void configureFromSystemProperties(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.lang.Object options
        start local 2 // java.lang.String prefix
         0: .line 359
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            astore 3 /* props */
        start local 3 // java.util.Properties props
         1: .line 360
            aload 3 /* props */
            invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
            astore 4 /* e */
        start local 4 // java.util.Enumeration e
         2: .line 362
            goto 36
         3: .line 363
      StackMap locals: java.util.Properties java.util.Enumeration
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* propName */
        start local 5 // java.lang.String propName
         4: .line 364
            aload 3 /* props */
            aload 5 /* propName */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* propVal */
        start local 6 // java.lang.String propVal
         5: .line 365
            aload 5 /* propName */
            aload 2 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 36
         6: .line 366
            aload 5 /* propName */
            aload 2 /* prefix */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* fieldName */
        start local 7 // java.lang.String fieldName
         7: .line 367
            aload 0 /* this */
            aload 7 /* fieldName */
            aload 1 /* options */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual io.vertx.core.Starter.getSetter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 8 /* setter */
        start local 8 // java.lang.reflect.Method setter
         8: .line 368
            aload 8 /* setter */
            ifnonnull 11
         9: .line 369
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "No such property to configure on options: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* options */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.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 7 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
        10: .line 370
            goto 36
        11: .line 372
      StackMap locals: io.vertx.core.Starter java.lang.Object java.lang.String java.util.Properties java.util.Enumeration java.lang.String java.lang.String java.lang.String java.lang.reflect.Method
      StackMap stack:
            aload 8 /* setter */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            iconst_0
            aaload
            astore 9 /* argType */
        start local 9 // java.lang.Class argType
        12: .line 375
            aload 9 /* argType */
            ldc Ljava/lang/String;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 376
            aload 6 /* propVal */
            astore 10 /* arg */
        start local 10 // java.lang.Object arg
        14: .line 377
            goto 32
        end local 10 // java.lang.Object arg
      StackMap locals: java.lang.Class
      StackMap stack:
        15: aload 9 /* argType */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 378
            aload 6 /* propVal */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 10 /* arg */
        start local 10 // java.lang.Object arg
        17: .line 379
            goto 32
        end local 10 // java.lang.Object arg
      StackMap locals:
      StackMap stack:
        18: aload 9 /* argType */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 380
            aload 6 /* propVal */
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
            astore 10 /* arg */
        start local 10 // java.lang.Object arg
        20: .line 381
            goto 32
        end local 10 // java.lang.Object arg
      StackMap locals:
      StackMap stack:
        21: aload 9 /* argType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 24
        22: .line 382
            aload 6 /* propVal */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            astore 10 /* arg */
        start local 10 // java.lang.Object arg
        23: .line 383
            goto 32
        end local 10 // java.lang.Object arg
      StackMap locals:
      StackMap stack:
        24: aload 9 /* argType */
            invokevirtual java.lang.Class.isEnum:()Z
            ifeq 27
        25: .line 384
            aload 9 /* argType */
            aload 6 /* propVal */
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            astore 10 /* arg */
        start local 10 // java.lang.Object arg
        26: .line 385
            goto 32
        end local 10 // java.lang.Object arg
        27: .line 386
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Invalid type for setter: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* argType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
        28: .line 387
            goto 36
        29: .line 389
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        30: .line 390
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Invalid argtype:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* argType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " on options: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* options */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.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 7 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
        31: .line 391
            goto 36
        start local 10 // java.lang.Object arg
        32: .line 394
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 8 /* setter */
            aload 1 /* options */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* arg */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 395
            goto 36
      StackMap locals:
      StackMap stack: java.lang.Exception
        34: astore 11 /* ex */
        start local 11 // java.lang.Exception ex
        35: .line 396
            new io.vertx.core.VertxException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to invoke setter: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* setter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 11 /* ex */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.lang.Exception ex
        end local 10 // java.lang.Object arg
        end local 9 // java.lang.Class argType
        end local 8 // java.lang.reflect.Method setter
        end local 7 // java.lang.String fieldName
        end local 6 // java.lang.String propVal
        end local 5 // java.lang.String propName
        36: .line 362
      StackMap locals: io.vertx.core.Starter java.lang.Object java.lang.String java.util.Properties java.util.Enumeration
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        37: .line 400
            return
        end local 4 // java.util.Enumeration e
        end local 3 // java.util.Properties props
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.Object options
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   38     0       this  Lio/vertx/core/Starter;
            0   38     1    options  Ljava/lang/Object;
            0   38     2     prefix  Ljava/lang/String;
            1   38     3      props  Ljava/util/Properties;
            2   38     4          e  Ljava/util/Enumeration;
            4   36     5   propName  Ljava/lang/String;
            5   36     6    propVal  Ljava/lang/String;
            7   36     7  fieldName  Ljava/lang/String;
            8   36     8     setter  Ljava/lang/reflect/Method;
           12   36     9    argType  Ljava/lang/Class<*>;
           14   15    10        arg  Ljava/lang/Object;
           17   18    10        arg  Ljava/lang/Object;
           20   21    10        arg  Ljava/lang/Object;
           23   24    10        arg  Ljava/lang/Object;
           26   27    10        arg  Ljava/lang/Object;
           32   36    10        arg  Ljava/lang/Object;
           35   36    11         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          12    28      29  Class java.lang.IllegalArgumentException
          32    33      34  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      options  
      prefix   

  private java.lang.reflect.Method getSetter(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Class clazz
         0: .line 403
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            astore 3 /* meths */
        start local 3 // java.lang.reflect.Method[] meths
         1: .line 404
            aload 3 /* meths */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: io.vertx.core.Starter java.lang.String java.lang.Class java.lang.reflect.Method[] top int int java.lang.reflect.Method[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* meth */
        start local 4 // java.lang.reflect.Method meth
         3: .line 405
            new java.lang.StringBuilder
            dup
            ldc "set"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 4 /* meth */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 406
            aload 4 /* meth */
            areturn
        end local 4 // java.lang.reflect.Method meth
         5: .line 404
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 2
         7: .line 409
            aconst_null
            areturn
        end local 3 // java.lang.reflect.Method[] meths
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String fieldName
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/vertx/core/Starter;
            0    8     1  fieldName  Ljava/lang/String;
            0    8     2      clazz  Ljava/lang/Class<*>;
            1    8     3      meths  [Ljava/lang/reflect/Method;
            3    5     4       meth  Ljava/lang/reflect/Method;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
           Name  Flags
      fieldName  
      clazz      

  private void addShutdownHook();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 413
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            new io.vertx.core.Starter$1
            dup
            aload 0 /* this */
            invokespecial io.vertx.core.Starter$1.<init>:(Lio/vertx/core/Starter;)V
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
         1: .line 431
            return
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/Starter;

  private java.lang.String getDefaultAddress();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=5, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 439
            invokestatic java.net.NetworkInterface.getNetworkInterfaces:()Ljava/util/Enumeration;
            astore 1 /* nets */
        start local 1 // java.util.Enumeration nets
         1: .line 440
            goto 12
        end local 1 // java.util.Enumeration nets
      StackMap locals:
      StackMap stack: java.net.SocketException
         2: pop
         3: .line 441
            aconst_null
            areturn
        start local 1 // java.util.Enumeration nets
         4: .line 445
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 1 /* nets */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.NetworkInterface
            astore 2 /* netinf */
        start local 2 // java.net.NetworkInterface netinf
         5: .line 447
            aload 2 /* netinf */
            invokevirtual java.net.NetworkInterface.getInetAddresses:()Ljava/util/Enumeration;
            astore 3 /* addresses */
        start local 3 // java.util.Enumeration addresses
         6: .line 449
            goto 11
         7: .line 450
      StackMap locals: java.net.NetworkInterface java.util.Enumeration
      StackMap stack:
            aload 3 /* addresses */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 4 /* address */
        start local 4 // java.net.InetAddress address
         8: .line 451
            aload 4 /* address */
            invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
            ifne 11
            aload 4 /* address */
            invokevirtual java.net.InetAddress.isMulticastAddress:()Z
            ifne 11
         9: .line 452
            aload 4 /* address */
            instanceof java.net.Inet6Address
            ifne 11
        10: .line 453
            aload 4 /* address */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            areturn
        end local 4 // java.net.InetAddress address
        11: .line 449
      StackMap locals:
      StackMap stack:
            aload 3 /* addresses */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
        end local 3 // java.util.Enumeration addresses
        end local 2 // java.net.NetworkInterface netinf
        12: .line 444
      StackMap locals:
      StackMap stack:
            aload 1 /* nets */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
        13: .line 457
            aconst_null
            areturn
        end local 1 // java.util.Enumeration nets
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lio/vertx/core/Starter;
            1    2     1       nets  Ljava/util/Enumeration<Ljava/net/NetworkInterface;>;
            4   14     1       nets  Ljava/util/Enumeration<Ljava/net/NetworkInterface;>;
            5   12     2     netinf  Ljava/net/NetworkInterface;
            6   12     3  addresses  Ljava/util/Enumeration<Ljava/net/InetAddress;>;
            8   11     4    address  Ljava/net/InetAddress;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.SocketException

  public java.lang.String getVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 461
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ldc "META-INF/vertx/vertx-version.txt"
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* is */
        start local 3 // java.io.InputStream is
         2: .line 462
            aload 3 /* is */
            ifnonnull 4
         3: .line 463
            new java.lang.IllegalStateException
            dup
            ldc "Cannot find vertx-version.txt on classpath"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 465
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: new java.util.Scanner
            dup
            aload 3 /* is */
            ldc "UTF-8"
            invokespecial java.util.Scanner.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            ldc "\\A"
            invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
            astore 6 /* scanner */
        start local 6 // java.util.Scanner scanner
         6: .line 466
            aload 6 /* scanner */
            invokevirtual java.util.Scanner.hasNext:()Z
            ifeq 7
            aload 6 /* scanner */
            invokevirtual java.util.Scanner.next:()Ljava/lang/String;
            goto 8
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.Scanner
      StackMap stack:
         7: ldc ""
         8: .line 467
      StackMap locals:
      StackMap stack: java.lang.String
            aload 6 /* scanner */
            ifnull 9
            aload 6 /* scanner */
            invokevirtual java.util.Scanner.close:()V
         9: .line 468
      StackMap locals:
      StackMap stack: java.lang.String
            aload 3 /* is */
            ifnull 10
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
        10: .line 466
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
        12: .line 467
            aload 6 /* scanner */
            ifnull 13
            aload 6 /* scanner */
            invokevirtual java.util.Scanner.close:()V
        end local 6 // java.util.Scanner scanner
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
      StackMap locals: io.vertx.core.Starter java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        17: astore 1
        18: .line 468
            aload 3 /* is */
            ifnull 19
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 3 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        19: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 2
            aload 1
            ifnonnull 21
            aload 2
            astore 1
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 1
            aload 2
            if_acmpeq 22
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 1
            athrow
      StackMap locals: io.vertx.core.Starter
      StackMap stack: java.io.IOException
        23: astore 1 /* e */
        start local 1 // java.io.IOException e
        24: .line 469
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lio/vertx/core/Starter;
            2   19     3       is  Ljava/io/InputStream;
            6   13     6  scanner  Ljava/util/Scanner;
           24   25     1        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     8      11  any
           5     9      14  any
          11    14      14  any
           2     9      17  any
          11    17      17  any
           1    10      20  any
          11    20      20  any
           0    10      23  Class java.io.IOException
          11    23      23  Class java.io.IOException

  private java.lang.String readMainVerticleFromManifest();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 475
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 1 /* resources */
        start local 1 // java.util.Enumeration resources
         1: .line 476
            goto 17
         2: .line 477
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aconst_null
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         3: .line 479
            aload 1 /* resources */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.URL
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 2 /* stream */
         4: .line 480
            new java.util.jar.Manifest
            dup
            aload 2 /* stream */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 3 /* manifest */
        start local 3 // java.util.jar.Manifest manifest
         5: .line 481
            aload 3 /* manifest */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 4 /* attributes */
        start local 4 // java.util.jar.Attributes attributes
         6: .line 482
            aload 4 /* attributes */
            ldc "Main-Class"
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* mainClass */
        start local 5 // java.lang.String mainClass
         7: .line 483
            ldc Lio/vertx/core/Starter;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 5 /* mainClass */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
         8: .line 484
            aload 4 /* attributes */
            ldc "Main-Verticle"
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* theMainVerticle */
        start local 6 // java.lang.String theMainVerticle
         9: .line 485
            aload 6 /* theMainVerticle */
            ifnull 16
        10: .line 486
            aload 6 /* theMainVerticle */
            astore 8
        11: .line 490
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual io.vertx.core.Starter.closeQuietly:(Ljava/io/InputStream;)V
        12: .line 486
            aload 8
            areturn
        end local 6 // java.lang.String theMainVerticle
        end local 5 // java.lang.String mainClass
        end local 4 // java.util.jar.Attributes attributes
        end local 3 // java.util.jar.Manifest manifest
        13: .line 489
      StackMap locals: io.vertx.core.Starter java.util.Enumeration java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 7
        14: .line 490
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual io.vertx.core.Starter.closeQuietly:(Ljava/io/InputStream;)V
        15: .line 491
            aload 7
            athrow
        16: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual io.vertx.core.Starter.closeQuietly:(Ljava/io/InputStream;)V
        end local 2 // java.io.InputStream stream
        17: .line 476
      StackMap locals:
      StackMap stack:
            aload 1 /* resources */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 2
        end local 1 // java.util.Enumeration resources
        18: .line 493
            goto 21
      StackMap locals: io.vertx.core.Starter
      StackMap stack: java.io.IOException
        19: astore 1 /* e */
        start local 1 // java.io.IOException e
        20: .line 494
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        21: .line 496
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lio/vertx/core/Starter;
            1   18     1        resources  Ljava/util/Enumeration<Ljava/net/URL;>;
            3   17     2           stream  Ljava/io/InputStream;
            5   13     3         manifest  Ljava/util/jar/Manifest;
            6   13     4       attributes  Ljava/util/jar/Attributes;
            7   13     5        mainClass  Ljava/lang/String;
            9   13     6  theMainVerticle  Ljava/lang/String;
           20   21     1                e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3    11      13  any
           0    12      19  Class java.io.IOException
          13    18      19  Class java.io.IOException

  private void closeQuietly(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // java.io.InputStream stream
         0: .line 500
            aload 1 /* stream */
            ifnull 4
         1: .line 502
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
         2: .line 503
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         3: pop
         4: .line 507
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.InputStream stream
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/vertx/core/Starter;
            0    5     1  stream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private void displaySyntax();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.Starter this
         0: .line 513
            ldc "    vertx run <main> [-options]                                                \n        runs a verticle called <main> in its own instance of vert.x.         \n\n    valid options are:                                                         \n        -conf <config>         Specifies configuration that should be provided \n                               to the verticle. <config> should reference      \n                               either a text file containing a valid JSON      \n                               object which represents the configuration OR    \n                               be a JSON string.                               \n        -instances <instances> specifies how many instances of the verticle    \n                               will be deployed. Defaults to 1                 \n        -worker                if specified then the verticle is a worker      \n                               verticle.                                       \n        -cp <classpath>        provide an extra classpath to be used for the   \n                               verticle deployment.                            \n        -cluster               if specified then the vert.x instance will form \n                               a cluster with any other vert.x instances on    \n                               the network.                                    \n        -cluster-port          port to use for cluster communication.          \n                               Default is 0 which means choose a spare         \n                               random port.                                    \n        -cluster-host          host to bind to for cluster communication.      \n                               If this is not specified vert.x will attempt    \n                               to choose one from the available interfaces.    \n        -ha                    if specified the verticle will be deployed as a \n                               high availability (HA) deployment.              \n                               This means it can fail over to any other nodes  \n                               in the cluster started with the same HA group   \n        -quorum                used in conjunction with -ha this specifies the \n                               minimum number of nodes in the cluster for any  \n                               HA deploymentIDs to be active. Defaults to 0    \n        -hagroup               used in conjunction with -ha this specifies the \n                               HA group this node will join. There can be      \n                               multiple HA groups in a cluster. Nodes will only\n                               failover to other nodes in the same group.      \n                               Defaults to __DEFAULT__                       \n\n    vertx -version                                                             \n        displays the version"
         1: .line 511
            astore 1 /* usage */
        start local 1 // java.lang.String usage
         2: .line 552
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            aload 1 /* usage */
            invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
         3: .line 553
            return
        end local 1 // java.lang.String usage
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/vertx/core/Starter;
            2    4     1  usage  Ljava/lang/String;

  private static void lambda$0(java.util.concurrent.atomic.AtomicReference, java.util.concurrent.CountDownLatch, io.vertx.core.AsyncResult);
    descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // io.vertx.core.AsyncResult ar
         0: .line 228
            aload 0
            aload 2 /* ar */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         1: .line 229
            aload 1
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         2: .line 230
            return
        end local 2 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2    ar  Lio/vertx/core/AsyncResult<Lio/vertx/core/Vertx;>;

  private void lambda$1(io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.core.Starter this
        start local 1 // io.vertx.core.AsyncResult res
         0: .line 329
            aload 1 /* res */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 2
         1: .line 331
            aload 0 /* this */
            invokevirtual io.vertx.core.Starter.handleDeployFailed:()V
         2: .line 333
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.core.Starter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/Starter;
            0    3     1   res  Lio/vertx/core/AsyncResult<Ljava/lang/String;>;

  private static void lambda$2(java.lang.String, io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=3
        start local 2 // io.vertx.core.AsyncResult res
         0: .line 338
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 10
         1: .line 339
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
         2: .line 340
            aload 3 /* cause */
            instanceof io.vertx.core.VertxException
            ifeq 8
         3: .line 341
            aload 3 /* cause */
            checkcast io.vertx.core.VertxException
            astore 4 /* ve */
        start local 4 // io.vertx.core.VertxException ve
         4: .line 342
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            aload 4 /* ve */
            invokevirtual io.vertx.core.VertxException.getMessage:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
         5: .line 343
            aload 4 /* ve */
            invokevirtual io.vertx.core.VertxException.getCause:()Ljava/lang/Throwable;
            ifnull 11
         6: .line 344
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            aload 4 /* ve */
            invokevirtual io.vertx.core.VertxException.getCause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        end local 4 // io.vertx.core.VertxException ve
         7: .line 346
            goto 11
         8: .line 347
      StackMap locals: java.lang.Throwable
      StackMap stack:
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Failed in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* cause */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable cause
         9: .line 349
            goto 11
        10: .line 350
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.core.Starter.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Succeeded in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
        11: .line 352
      StackMap locals:
      StackMap stack:
            aload 1
            ifnull 13
        12: .line 353
            aload 1
            aload 2 /* res */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        13: .line 355
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.AsyncResult res
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     2    res  Lio/vertx/core/AsyncResult<TT;>;
            2    9     3  cause  Ljava/lang/Throwable;
            4    7     4     ve  Lio/vertx/core/VertxException;
}
SourceFile: "Starter.java"
NestMembers:
  io.vertx.core.Starter$1
InnerClasses:
  io.vertx.core.Starter$1
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()