public class org.apache.catalina.startup.Catalina
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.startup.Catalina
  super_class: java.lang.Object
{
  protected static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  public static final java.lang.String SERVER_XML;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "conf/server.xml"

  protected boolean await;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String configFile;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.ClassLoader parentClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0004) ACC_PROTECTED

  protected org.apache.catalina.Server server;
    descriptor: Lorg/apache/catalina/Server;
    flags: (0x0004) ACC_PROTECTED

  protected boolean useShutdownHook;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.Thread shutdownHook;
    descriptor: Ljava/lang/Thread;
    flags: (0x0004) ACC_PROTECTED

  protected boolean useNaming;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean loaded;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean throwOnInitFailure;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean generateCode;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.io.File generatedCodeLocation;
    descriptor: Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String generatedCodeLocationParameter;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String generatedCodePackage;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected boolean useGeneratedCode;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 82
            ldc "org.apache.catalina.startup"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         1: .line 81
            putstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 1028
            ldc Lorg/apache/catalina/startup/Catalina;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 175
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.await:Z
         2: .line 96
            aload 0 /* this */
            ldc "conf/server.xml"
            putfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
         3: .line 102
            aload 0 /* this */
         4: .line 103
            ldc Lorg/apache/catalina/startup/Catalina;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            putfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
         5: .line 109
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.Catalina.server:Lorg/apache/catalina/Server;
         6: .line 115
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
         7: .line 121
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
         8: .line 127
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.Catalina.useNaming:Z
         9: .line 133
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.loaded:Z
        10: .line 139
            aload 0 /* this */
        11: .line 140
            ldc "org.apache.catalina.startup.EXIT_ON_INIT_FAILURE"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putfield org.apache.catalina.startup.Catalina.throwOnInitFailure:Z
        12: .line 146
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.generateCode:Z
        13: .line 152
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
        14: .line 158
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocationParameter:Ljava/lang/String;
        15: .line 164
            aload 0 /* this */
            ldc "catalinaembedded"
            putfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
        16: .line 170
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
        17: .line 176
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.setSecurityProtection:()V
        18: .line 177
            invokestatic org.apache.tomcat.util.ExceptionUtils.preload:()V
        19: .line 178
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setConfigFile(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String file
         0: .line 184
            aload 0 /* this */
            aload 1 /* file */
            putfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
         1: .line 185
            return
        end local 1 // java.lang.String file
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  file  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      file  

  public java.lang.String getConfigFile();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 189
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setUseShutdownHook(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean useShutdownHook
         0: .line 194
            aload 0 /* this */
            iload 1 /* useShutdownHook */
            putfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
         1: .line 195
            return
        end local 1 // boolean useShutdownHook
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  useShutdownHook  Z
    MethodParameters:
                 Name  Flags
      useShutdownHook  

  public boolean getUseShutdownHook();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 199
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
            ireturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public boolean getGenerateCode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 204
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generateCode:Z
            ireturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setGenerateCode(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean generateCode
         0: .line 209
            aload 0 /* this */
            iload 1 /* generateCode */
            putfield org.apache.catalina.startup.Catalina.generateCode:Z
         1: .line 210
            return
        end local 1 // boolean generateCode
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  generateCode  Z
    MethodParameters:
              Name  Flags
      generateCode  

  public boolean getUseGeneratedCode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 214
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
            ireturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setUseGeneratedCode(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean useGeneratedCode
         0: .line 219
            aload 0 /* this */
            iload 1 /* useGeneratedCode */
            putfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
         1: .line 220
            return
        end local 1 // boolean useGeneratedCode
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  useGeneratedCode  Z
    MethodParameters:
                  Name  Flags
      useGeneratedCode  

  public java.io.File getGeneratedCodeLocation();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 224
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setGeneratedCodeLocation(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.io.File generatedCodeLocation
         0: .line 229
            aload 0 /* this */
            aload 1 /* generatedCodeLocation */
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
         1: .line 230
            return
        end local 1 // java.io.File generatedCodeLocation
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  generatedCodeLocation  Ljava/io/File;
    MethodParameters:
                       Name  Flags
      generatedCodeLocation  

  public java.lang.String getGeneratedCodePackage();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 234
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setGeneratedCodePackage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String generatedCodePackage
         0: .line 239
            aload 0 /* this */
            aload 1 /* generatedCodePackage */
            putfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
         1: .line 240
            return
        end local 1 // java.lang.String generatedCodePackage
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  generatedCodePackage  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      generatedCodePackage  

  public boolean getThrowOnInitFailure();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 248
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.throwOnInitFailure:Z
            ireturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setThrowOnInitFailure(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean throwOnInitFailure
         0: .line 257
            aload 0 /* this */
            iload 1 /* throwOnInitFailure */
            putfield org.apache.catalina.startup.Catalina.throwOnInitFailure:Z
         1: .line 258
            return
        end local 1 // boolean throwOnInitFailure
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  throwOnInitFailure  Z
    MethodParameters:
                    Name  Flags
      throwOnInitFailure  

  public void setParentClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.ClassLoader parentClassLoader
         0: .line 267
            aload 0 /* this */
            aload 1 /* parentClassLoader */
            putfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
         1: .line 268
            return
        end local 1 // java.lang.ClassLoader parentClassLoader
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  parentClassLoader  Ljava/lang/ClassLoader;
    MethodParameters:
                   Name  Flags
      parentClassLoader  

  public java.lang.ClassLoader getParentClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 271
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
            ifnull 2
         1: .line 272
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
            areturn
         2: .line 274
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setServer(org.apache.catalina.Server);
    descriptor: (Lorg/apache/catalina/Server;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // org.apache.catalina.Server server
         0: .line 278
            aload 0 /* this */
            aload 1 /* server */
            putfield org.apache.catalina.startup.Catalina.server:Lorg/apache/catalina/Server;
         1: .line 279
            return
        end local 1 // org.apache.catalina.Server server
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  server  Lorg/apache/catalina/Server;
    MethodParameters:
        Name  Flags
      server  

  public org.apache.catalina.Server getServer();
    descriptor: ()Lorg/apache/catalina/Server;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 283
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.server:Lorg/apache/catalina/Server;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public boolean isUseNaming();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 291
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useNaming:Z
            ireturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setUseNaming(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean useNaming
         0: .line 301
            aload 0 /* this */
            iload 1 /* useNaming */
            putfield org.apache.catalina.startup.Catalina.useNaming:Z
         1: .line 302
            return
        end local 1 // boolean useNaming
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  useNaming  Z
    MethodParameters:
           Name  Flags
      useNaming  

  public void setAwait(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean b
         0: .line 305
            aload 0 /* this */
            iload 1 /* b */
            putfield org.apache.catalina.startup.Catalina.await:Z
         1: .line 306
            return
        end local 1 // boolean b
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public boolean isAwait();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 309
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.await:Z
            ireturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

  protected boolean arguments(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String[] args
         0: .line 323
            iconst_0
            istore 2 /* isConfig */
        start local 2 // boolean isConfig
         1: .line 324
            iconst_0
            istore 3 /* isGenerateCode */
        start local 3 // boolean isGenerateCode
         2: .line 326
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpge 5
         3: .line 327
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.usage:()V
         4: .line 328
            iconst_0
            ireturn
         5: .line 331
      StackMap locals: int int
      StackMap stack:
            aload 1 /* args */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 45
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] int int top int int java.lang.String[]
      StackMap stack:
         6: aload 7
            iload 5
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.String arg
         7: .line 332
            iload 2 /* isConfig */
            ifeq 11
         8: .line 333
            aload 0 /* this */
            aload 4 /* arg */
            putfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
         9: .line 334
            iconst_0
            istore 2 /* isConfig */
        10: .line 335
            goto 44
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] int int java.lang.String int int java.lang.String[]
      StackMap stack:
        11: aload 4 /* arg */
            ldc "-config"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 336
            iconst_1
            istore 2 /* isConfig */
        13: .line 337
            goto 44
      StackMap locals:
      StackMap stack:
        14: aload 4 /* arg */
            ldc "-generateCode"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 338
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.startup.Catalina.setGenerateCode:(Z)V
        16: .line 339
            iconst_1
            istore 3 /* isGenerateCode */
        17: .line 340
            goto 44
      StackMap locals:
      StackMap stack:
        18: aload 4 /* arg */
            ldc "-useGeneratedCode"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        19: .line 341
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.startup.Catalina.setUseGeneratedCode:(Z)V
        20: .line 342
            iconst_0
            istore 3 /* isGenerateCode */
        21: .line 343
            goto 44
      StackMap locals:
      StackMap stack:
        22: aload 4 /* arg */
            ldc "-nonaming"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        23: .line 344
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.startup.Catalina.setUseNaming:(Z)V
        24: .line 345
            iconst_0
            istore 3 /* isGenerateCode */
        25: .line 346
            goto 44
      StackMap locals:
      StackMap stack:
        26: aload 4 /* arg */
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 347
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.usage:()V
        28: .line 348
            iconst_0
            ireturn
        29: .line 349
      StackMap locals:
      StackMap stack:
            aload 4 /* arg */
            ldc "start"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 350
            iconst_0
            istore 3 /* isGenerateCode */
        31: .line 352
            goto 44
      StackMap locals:
      StackMap stack:
        32: aload 4 /* arg */
            ldc "configtest"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 353
            iconst_0
            istore 3 /* isGenerateCode */
        34: .line 355
            goto 44
      StackMap locals:
      StackMap stack:
        35: aload 4 /* arg */
            ldc "stop"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        36: .line 356
            iconst_0
            istore 3 /* isGenerateCode */
        37: .line 358
            goto 44
      StackMap locals:
      StackMap stack:
        38: iload 3 /* isGenerateCode */
            ifeq 42
        39: .line 359
            aload 0 /* this */
            aload 4 /* arg */
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocationParameter:Ljava/lang/String;
        40: .line 360
            iconst_0
            istore 3 /* isGenerateCode */
        41: .line 361
            goto 44
        42: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.usage:()V
        43: .line 363
            iconst_0
            ireturn
        end local 4 // java.lang.String arg
        44: .line 331
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] int int top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        45: iload 5
            iload 6
            if_icmplt 6
        46: .line 367
            iconst_1
            ireturn
        end local 3 // boolean isGenerateCode
        end local 2 // boolean isConfig
        end local 1 // java.lang.String[] args
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0            this  Lorg/apache/catalina/startup/Catalina;
            0   47     1            args  [Ljava/lang/String;
            1   47     2        isConfig  Z
            2   47     3  isGenerateCode  Z
            7   44     4             arg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  

  protected java.io.File configFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 377
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* file */
        start local 1 // java.io.File file
         1: .line 378
            aload 1 /* file */
            invokevirtual java.io.File.isAbsolute:()Z
            ifne 3
         2: .line 379
            new java.io.File
            dup
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaBase:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 1 /* file */
         3: .line 381
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* file */
            areturn
        end local 1 // java.io.File file
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/startup/Catalina;
            1    4     1  file  Ljava/io/File;

  protected org.apache.tomcat.util.digester.Digester createStartDigester();
    descriptor: ()Lorg/apache/tomcat/util/digester/Digester;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 392
            new org.apache.tomcat.util.digester.Digester
            dup
            invokespecial org.apache.tomcat.util.digester.Digester.<init>:()V
            astore 1 /* digester */
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         1: .line 393
            aload 1 /* digester */
            iconst_0
            invokevirtual org.apache.tomcat.util.digester.Digester.setValidating:(Z)V
         2: .line 394
            aload 1 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setRulesValidation:(Z)V
         3: .line 395
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* fakeAttributes */
        start local 2 // java.util.Map fakeAttributes
         4: .line 397
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* objectAttrs */
        start local 3 // java.util.List objectAttrs
         5: .line 398
            aload 3 /* objectAttrs */
            ldc "className"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 399
            aload 2 /* fakeAttributes */
            ldc Ljava/lang/Object;
            aload 3 /* objectAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 401
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* contextAttrs */
        start local 4 // java.util.List contextAttrs
         8: .line 402
            aload 4 /* contextAttrs */
            ldc "source"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 403
            aload 2 /* fakeAttributes */
            ldc Lorg/apache/catalina/core/StandardContext;
            aload 4 /* contextAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 405
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* connectorAttrs */
        start local 5 // java.util.List connectorAttrs
        11: .line 406
            aload 5 /* connectorAttrs */
            ldc "portOffset"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 407
            aload 2 /* fakeAttributes */
            ldc Lorg/apache/catalina/connector/Connector;
            aload 5 /* connectorAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 408
            aload 1 /* digester */
            aload 2 /* fakeAttributes */
            invokevirtual org.apache.tomcat.util.digester.Digester.setFakeAttributes:(Ljava/util/Map;)V
        14: .line 409
            aload 1 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setUseContextClassLoader:(Z)V
        15: .line 412
            aload 1 /* digester */
            ldc "Server"
        16: .line 413
            ldc "org.apache.catalina.core.StandardServer"
        17: .line 414
            ldc "className"
        18: .line 412
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        19: .line 415
            aload 1 /* digester */
            ldc "Server"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        20: .line 416
            aload 1 /* digester */
            ldc "Server"
        21: .line 417
            ldc "setServer"
        22: .line 418
            ldc "org.apache.catalina.Server"
        23: .line 416
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        24: .line 420
            aload 1 /* digester */
            ldc "Server/GlobalNamingResources"
        25: .line 421
            ldc "org.apache.catalina.deploy.NamingResourcesImpl"
        26: .line 420
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 422
            aload 1 /* digester */
            ldc "Server/GlobalNamingResources"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        28: .line 423
            aload 1 /* digester */
            ldc "Server/GlobalNamingResources"
        29: .line 424
            ldc "setGlobalNamingResources"
        30: .line 425
            ldc "org.apache.catalina.deploy.NamingResourcesImpl"
        31: .line 423
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        32: .line 427
            aload 1 /* digester */
            ldc "Server/Listener"
        33: .line 428
            new org.apache.catalina.startup.ListenerCreateRule
            dup
            aconst_null
            ldc "className"
            invokespecial org.apache.catalina.startup.ListenerCreateRule.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        34: .line 427
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        35: .line 429
            aload 1 /* digester */
            ldc "Server/Listener"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        36: .line 430
            aload 1 /* digester */
            ldc "Server/Listener"
        37: .line 431
            ldc "addLifecycleListener"
        38: .line 432
            ldc "org.apache.catalina.LifecycleListener"
        39: .line 430
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        40: .line 434
            aload 1 /* digester */
            ldc "Server/Service"
        41: .line 435
            ldc "org.apache.catalina.core.StandardService"
        42: .line 436
            ldc "className"
        43: .line 434
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        44: .line 437
            aload 1 /* digester */
            ldc "Server/Service"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        45: .line 438
            aload 1 /* digester */
            ldc "Server/Service"
        46: .line 439
            ldc "addService"
        47: .line 440
            ldc "org.apache.catalina.Service"
        48: .line 438
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        49: .line 442
            aload 1 /* digester */
            ldc "Server/Service/Listener"
        50: .line 443
            aconst_null
        51: .line 444
            ldc "className"
        52: .line 442
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        53: .line 445
            aload 1 /* digester */
            ldc "Server/Service/Listener"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        54: .line 446
            aload 1 /* digester */
            ldc "Server/Service/Listener"
        55: .line 447
            ldc "addLifecycleListener"
        56: .line 448
            ldc "org.apache.catalina.LifecycleListener"
        57: .line 446
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        58: .line 451
            aload 1 /* digester */
            ldc "Server/Service/Executor"
        59: .line 452
            ldc "org.apache.catalina.core.StandardThreadExecutor"
        60: .line 453
            ldc "className"
        61: .line 451
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        62: .line 454
            aload 1 /* digester */
            ldc "Server/Service/Executor"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        63: .line 456
            aload 1 /* digester */
            ldc "Server/Service/Executor"
        64: .line 457
            ldc "addExecutor"
        65: .line 458
            ldc "org.apache.catalina.Executor"
        66: .line 456
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        67: .line 460
            aload 1 /* digester */
            ldc "Server/Service/Connector"
        68: .line 461
            new org.apache.catalina.startup.ConnectorCreateRule
            dup
            invokespecial org.apache.catalina.startup.ConnectorCreateRule.<init>:()V
        69: .line 460
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        70: .line 462
            aload 1 /* digester */
            ldc "Server/Service/Connector"
        71: .line 463
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "executor"
            aastore
            dup
            iconst_1
            ldc "sslImplementationName"
            aastore
            dup
            iconst_2
            ldc "protocol"
            aastore
        72: .line 462
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;[Ljava/lang/String;)V
        73: .line 464
            aload 1 /* digester */
            ldc "Server/Service/Connector"
        74: .line 465
            ldc "addConnector"
        75: .line 466
            ldc "org.apache.catalina.connector.Connector"
        76: .line 464
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        77: .line 468
            aload 1 /* digester */
            ldc "Server/Service/Connector"
            new org.apache.catalina.startup.AddPortOffsetRule
            dup
            invokespecial org.apache.catalina.startup.AddPortOffsetRule.<init>:()V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        78: .line 470
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig"
        79: .line 471
            ldc "org.apache.tomcat.util.net.SSLHostConfig"
        80: .line 470
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
        81: .line 472
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        82: .line 473
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig"
        83: .line 474
            ldc "addSslHostConfig"
        84: .line 475
            ldc "org.apache.tomcat.util.net.SSLHostConfig"
        85: .line 473
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        86: .line 477
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/Certificate"
        87: .line 478
            new org.apache.catalina.startup.CertificateCreateRule
            dup
            invokespecial org.apache.catalina.startup.CertificateCreateRule.<init>:()V
        88: .line 477
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        89: .line 479
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/Certificate"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "type"
            aastore
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;[Ljava/lang/String;)V
        90: .line 480
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/Certificate"
        91: .line 481
            ldc "addCertificate"
        92: .line 482
            ldc "org.apache.tomcat.util.net.SSLHostConfigCertificate"
        93: .line 480
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        94: .line 484
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf"
        95: .line 485
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConf"
        96: .line 484
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
        97: .line 486
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        98: .line 487
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf"
        99: .line 488
            ldc "setOpenSslConf"
       100: .line 489
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConf"
       101: .line 487
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       102: .line 491
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf/OpenSSLConfCmd"
       103: .line 492
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConfCmd"
       104: .line 491
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
       105: .line 493
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf/OpenSSLConfCmd"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       106: .line 494
            aload 1 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf/OpenSSLConfCmd"
       107: .line 495
            ldc "addCmd"
       108: .line 496
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConfCmd"
       109: .line 494
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       110: .line 498
            aload 1 /* digester */
            ldc "Server/Service/Connector/Listener"
       111: .line 499
            aconst_null
       112: .line 500
            ldc "className"
       113: .line 498
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       114: .line 501
            aload 1 /* digester */
            ldc "Server/Service/Connector/Listener"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       115: .line 502
            aload 1 /* digester */
            ldc "Server/Service/Connector/Listener"
       116: .line 503
            ldc "addLifecycleListener"
       117: .line 504
            ldc "org.apache.catalina.LifecycleListener"
       118: .line 502
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       119: .line 506
            aload 1 /* digester */
            ldc "Server/Service/Connector/UpgradeProtocol"
       120: .line 507
            aconst_null
       121: .line 508
            ldc "className"
       122: .line 506
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       123: .line 509
            aload 1 /* digester */
            ldc "Server/Service/Connector/UpgradeProtocol"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       124: .line 510
            aload 1 /* digester */
            ldc "Server/Service/Connector/UpgradeProtocol"
       125: .line 511
            ldc "addUpgradeProtocol"
       126: .line 512
            ldc "org.apache.coyote.UpgradeProtocol"
       127: .line 510
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       128: .line 515
            aload 1 /* digester */
            new org.apache.catalina.startup.NamingRuleSet
            dup
            ldc "Server/GlobalNamingResources/"
            invokespecial org.apache.catalina.startup.NamingRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       129: .line 516
            aload 1 /* digester */
            new org.apache.catalina.startup.EngineRuleSet
            dup
            ldc "Server/Service/"
            invokespecial org.apache.catalina.startup.EngineRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       130: .line 517
            aload 1 /* digester */
            new org.apache.catalina.startup.HostRuleSet
            dup
            ldc "Server/Service/Engine/"
            invokespecial org.apache.catalina.startup.HostRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       131: .line 518
            aload 1 /* digester */
            new org.apache.catalina.startup.ContextRuleSet
            dup
            ldc "Server/Service/Engine/Host/"
            invokespecial org.apache.catalina.startup.ContextRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       132: .line 519
            aload 0 /* this */
            aload 1 /* digester */
            ldc "Server/Service/Engine/Host/Cluster/"
            invokevirtual org.apache.catalina.startup.Catalina.addClusterRuleSet:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;)V
       133: .line 520
            aload 1 /* digester */
            new org.apache.catalina.startup.NamingRuleSet
            dup
            ldc "Server/Service/Engine/Host/Context/"
            invokespecial org.apache.catalina.startup.NamingRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       134: .line 523
            aload 1 /* digester */
            ldc "Server/Service/Engine"
       135: .line 524
            new org.apache.catalina.startup.Catalina$SetParentClassLoaderRule
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
            invokespecial org.apache.catalina.startup.Catalina$SetParentClassLoaderRule.<init>:(Lorg/apache/catalina/startup/Catalina;Ljava/lang/ClassLoader;)V
       136: .line 523
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
       137: .line 525
            aload 0 /* this */
            aload 1 /* digester */
            ldc "Server/Service/Engine/Cluster/"
            invokevirtual org.apache.catalina.startup.Catalina.addClusterRuleSet:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;)V
       138: .line 527
            aload 1 /* digester */
            areturn
        end local 5 // java.util.List connectorAttrs
        end local 4 // java.util.List contextAttrs
        end local 3 // java.util.List objectAttrs
        end local 2 // java.util.Map fakeAttributes
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  139     0            this  Lorg/apache/catalina/startup/Catalina;
            1  139     1        digester  Lorg/apache/tomcat/util/digester/Digester;
            4  139     2  fakeAttributes  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/String;>;>;
            5  139     3     objectAttrs  Ljava/util/List<Ljava/lang/String;>;
            8  139     4    contextAttrs  Ljava/util/List<Ljava/lang/String;>;
           11  139     5  connectorAttrs  Ljava/util/List<Ljava/lang/String;>;

  private void addClusterRuleSet(org.apache.tomcat.util.digester.Digester, java.lang.String);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
        start local 2 // java.lang.String prefix
         0: .line 535
            aconst_null
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         1: .line 536
            aconst_null
            astore 4 /* constructor */
        start local 4 // java.lang.reflect.Constructor constructor
         2: .line 538
            ldc "org.apache.catalina.ha.ClusterRuleSet"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* clazz */
         3: .line 539
            aload 3 /* clazz */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* constructor */
         4: .line 540
            aload 4 /* constructor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* prefix */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.tomcat.util.digester.RuleSet
            astore 5 /* ruleSet */
        start local 5 // org.apache.tomcat.util.digester.RuleSet ruleSet
         5: .line 541
            aload 1 /* digester */
            aload 5 /* ruleSet */
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
        end local 5 // org.apache.tomcat.util.digester.RuleSet ruleSet
         6: .line 542
            goto 19
      StackMap locals: org.apache.catalina.startup.Catalina org.apache.tomcat.util.digester.Digester java.lang.String java.lang.Class java.lang.reflect.Constructor
      StackMap stack: java.lang.Exception
         7: astore 5 /* e */
        start local 5 // java.lang.Exception e
         8: .line 543
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 15
         9: .line 544
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noCluster"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 545
            new java.lang.StringBuilder
            dup
            aload 5 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        11: .line 544
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 545
            aload 5 /* e */
        13: .line 544
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        14: .line 546
            goto 19
      StackMap locals: java.lang.Exception
      StackMap stack:
        15: getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isInfoEnabled:()Z
            ifeq 19
        16: .line 547
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noCluster"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        17: .line 548
            new java.lang.StringBuilder
            dup
            aload 5 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        18: .line 547
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        end local 5 // java.lang.Exception e
        19: .line 551
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.reflect.Constructor constructor
        end local 3 // java.lang.Class clazz
        end local 2 // java.lang.String prefix
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/apache/catalina/startup/Catalina;
            0   20     1     digester  Lorg/apache/tomcat/util/digester/Digester;
            0   20     2       prefix  Ljava/lang/String;
            1   20     3        clazz  Ljava/lang/Class<*>;
            2   20     4  constructor  Ljava/lang/reflect/Constructor<*>;
            5    6     5      ruleSet  Lorg/apache/tomcat/util/digester/RuleSet;
            8   19     5            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      digester  
      prefix    

  protected org.apache.tomcat.util.digester.Digester createStopDigester();
    descriptor: ()Lorg/apache/tomcat/util/digester/Digester;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 560
            new org.apache.tomcat.util.digester.Digester
            dup
            invokespecial org.apache.tomcat.util.digester.Digester.<init>:()V
            astore 1 /* digester */
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         1: .line 561
            aload 1 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setUseContextClassLoader:(Z)V
         2: .line 564
            aload 1 /* digester */
            ldc "Server"
         3: .line 565
            ldc "org.apache.catalina.core.StandardServer"
         4: .line 566
            ldc "className"
         5: .line 564
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         6: .line 567
            aload 1 /* digester */
            ldc "Server"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
         7: .line 568
            aload 1 /* digester */
            ldc "Server"
         8: .line 569
            ldc "setServer"
         9: .line 570
            ldc "org.apache.catalina.Server"
        10: .line 568
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 572
            aload 1 /* digester */
            areturn
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/apache/catalina/startup/Catalina;
            1   12     1  digester  Lorg/apache/tomcat/util/digester/Digester;

  protected void parseServerXml(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=15, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean start
         0: .line 579
            new org.apache.catalina.startup.CatalinaBaseConfigurationSource
            dup
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaBaseFile:()Ljava/io/File;
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getConfigFile:()Ljava/lang/String;
            invokespecial org.apache.catalina.startup.CatalinaBaseConfigurationSource.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.setSource:(Lorg/apache/tomcat/util/file/ConfigurationSource;)V
         1: .line 580
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.configFile:()Ljava/io/File;
            astore 2 /* file */
        start local 2 // java.io.File file
         2: .line 582
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
            ifeq 14
            invokestatic org.apache.tomcat.util.digester.Digester.isGeneratedCodeLoaderSet:()Z
            ifne 14
         3: .line 584
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".DigesterGeneratedCodeLoader"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* loaderClassName */
        start local 3 // java.lang.String loaderClassName
         4: .line 587
            ldc Lorg/apache/catalina/startup/Catalina;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 3 /* loaderClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.digester.Digester$GeneratedCodeLoader
         5: .line 586
            astore 4 /* loader */
        start local 4 // org.apache.tomcat.util.digester.Digester$GeneratedCodeLoader loader
         6: .line 588
            aload 4 /* loader */
            invokestatic org.apache.tomcat.util.digester.Digester.setGeneratedCodeLoader:(Lorg/apache/tomcat/util/digester/Digester$GeneratedCodeLoader;)V
        end local 4 // org.apache.tomcat.util.digester.Digester$GeneratedCodeLoader loader
         7: .line 589
            goto 14
      StackMap locals: org.apache.catalina.startup.Catalina int java.io.File java.lang.String
      StackMap stack: java.lang.Exception
         8: astore 4 /* e */
        start local 4 // java.lang.Exception e
         9: .line 590
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        10: .line 591
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noLoader"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* loaderClassName */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 4 /* e */
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        11: .line 592
            goto 13
        12: .line 593
      StackMap locals: java.lang.Exception
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noLoader"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* loaderClassName */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        13: .line 596
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.String loaderClassName
        14: .line 601
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* serverXmlLocation */
        start local 3 // java.io.File serverXmlLocation
        15: .line 602
            aconst_null
            astore 4 /* xmlClassName */
        start local 4 // java.lang.String xmlClassName
        16: .line 603
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generateCode:Z
            ifne 17
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
            ifeq 20
        17: .line 604
      StackMap locals: java.io.File java.lang.String
      StackMap stack:
            iload 1 /* start */
            ifeq 18
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".ServerXml"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 19
      StackMap locals:
      StackMap stack:
        18: new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".ServerXmlStop"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        19: astore 4 /* xmlClassName */
        20: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generateCode:Z
            ifeq 31
        21: .line 607
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocationParameter:Ljava/lang/String;
            ifnull 26
        22: .line 608
            aload 0 /* this */
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocationParameter:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
        23: .line 609
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
            invokevirtual java.io.File.isAbsolute:()Z
            ifne 27
        24: .line 610
            aload 0 /* this */
            new java.io.File
            dup
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaHomeFile:()Ljava/io/File;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocationParameter:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
        25: .line 612
            goto 27
        26: .line 613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.File
            dup
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaHomeFile:()Ljava/io/File;
            ldc "work"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            putfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
        27: .line 615
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* serverXmlLocation */
        28: .line 616
            aload 3 /* serverXmlLocation */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 31
            aload 3 /* serverXmlLocation */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 31
        29: .line 617
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.generatedCodeLocationError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        30: .line 619
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.generateCode:Z
        31: .line 623
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* serverXml */
        start local 5 // org.apache.catalina.startup.Catalina$ServerXml serverXml
        32: .line 624
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useGeneratedCode:Z
            ifeq 34
        33: .line 625
            aload 4 /* xmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.loadGeneratedClass:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.Catalina$ServerXml
            astore 5 /* serverXml */
        34: .line 628
      StackMap locals: org.apache.catalina.startup.Catalina$ServerXml
      StackMap stack:
            aload 5 /* serverXml */
            ifnull 37
        35: .line 629
            aload 5 /* serverXml */
            aload 0 /* this */
            invokeinterface org.apache.catalina.startup.Catalina$ServerXml.load:(Lorg/apache/catalina/startup/Catalina;)V
        36: .line 630
            goto 78
        37: .line 631
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
        38: invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getServerXml:()Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
            astore 8 /* resource */
        start local 8 // org.apache.tomcat.util.file.ConfigurationSource$Resource resource
        39: .line 633
            iload 1 /* start */
            ifeq 40
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.createStartDigester:()Lorg/apache/tomcat/util/digester/Digester;
            goto 41
      StackMap locals: java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource
      StackMap stack:
        40: aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.createStopDigester:()Lorg/apache/tomcat/util/digester/Digester;
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.digester.Digester
        41: astore 9 /* digester */
        start local 9 // org.apache.tomcat.util.digester.Digester digester
        42: .line 634
            aload 8 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getInputStream:()Ljava/io/InputStream;
            astore 10 /* inputStream */
        start local 10 // java.io.InputStream inputStream
        43: .line 635
            new org.xml.sax.InputSource
            dup
            aload 8 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
            astore 11 /* inputSource */
        start local 11 // org.xml.sax.InputSource inputSource
        44: .line 636
            aload 11 /* inputSource */
            aload 10 /* inputStream */
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
        45: .line 637
            aload 9 /* digester */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.digester.Digester.push:(Ljava/lang/Object;)V
        46: .line 638
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generateCode:Z
            ifeq 49
        47: .line 639
            aload 9 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.startGeneratingCode:()V
        48: .line 640
            aload 0 /* this */
            aload 9 /* digester */
            iload 1 /* start */
            invokevirtual org.apache.catalina.startup.Catalina.generateClassHeader:(Lorg/apache/tomcat/util/digester/Digester;Z)V
        49: .line 642
      StackMap locals: org.apache.tomcat.util.digester.Digester java.io.InputStream org.xml.sax.InputSource
      StackMap stack:
            aload 9 /* digester */
            aload 11 /* inputSource */
            invokevirtual org.apache.tomcat.util.digester.Digester.parse:(Lorg/xml/sax/InputSource;)Ljava/lang/Object;
            pop
        50: .line 643
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generateCode:Z
            ifeq 68
        51: .line 644
            aload 0 /* this */
            aload 9 /* digester */
            invokevirtual org.apache.catalina.startup.Catalina.generateClassFooter:(Lorg/apache/tomcat/util/digester/Digester;)V
        52: .line 645
            aconst_null
            astore 12
            aconst_null
            astore 13
        53: new java.io.FileWriter
            dup
        54: new java.io.File
            dup
            aload 3 /* serverXmlLocation */
        55: .line 646
            iload 1 /* start */
            ifeq 56
            ldc "ServerXml.java"
            goto 57
      StackMap locals: org.apache.catalina.startup.Catalina int java.io.File java.io.File java.lang.String org.apache.catalina.startup.Catalina$ServerXml java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource org.apache.tomcat.util.digester.Digester java.io.InputStream org.xml.sax.InputSource java.lang.Throwable java.lang.Throwable
      StackMap stack: new 53 new 53 new 54 new 54 java.io.File
        56: ldc "ServerXmlStop.java"
      StackMap locals: org.apache.catalina.startup.Catalina int java.io.File java.io.File java.lang.String org.apache.catalina.startup.Catalina$ServerXml java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource org.apache.tomcat.util.digester.Digester java.io.InputStream org.xml.sax.InputSource java.lang.Throwable java.lang.Throwable
      StackMap stack: new 53 new 53 new 54 new 54 java.io.File java.lang.String
        57: invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
        58: .line 645
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 14 /* writer */
        start local 14 // java.io.FileWriter writer
        59: .line 647
            aload 14 /* writer */
            aload 9 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
        60: .line 648
            aload 14 /* writer */
            ifnull 66
            aload 14 /* writer */
            invokevirtual java.io.FileWriter.close:()V
            goto 66
      StackMap locals: org.apache.catalina.startup.Catalina int java.io.File java.io.File java.lang.String org.apache.catalina.startup.Catalina$ServerXml java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource org.apache.tomcat.util.digester.Digester java.io.InputStream org.xml.sax.InputSource java.lang.Throwable java.lang.Throwable java.io.FileWriter
      StackMap stack: java.lang.Throwable
        61: astore 12
            aload 14 /* writer */
            ifnull 62
            aload 14 /* writer */
            invokevirtual java.io.FileWriter.close:()V
        end local 14 // java.io.FileWriter writer
      StackMap locals:
      StackMap stack:
        62: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: astore 13
            aload 12
            ifnonnull 64
            aload 13
            astore 12
            goto 65
      StackMap locals:
      StackMap stack:
        64: aload 12
            aload 13
            if_acmpeq 65
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        65: aload 12
            athrow
        66: .line 649
      StackMap locals:
      StackMap stack:
            aload 9 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.endGeneratingCode:()V
        67: .line 650
            aload 4 /* xmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.addGeneratedClass:(Ljava/lang/String;)V
        end local 11 // org.xml.sax.InputSource inputSource
        end local 10 // java.io.InputStream inputStream
        end local 9 // org.apache.tomcat.util.digester.Digester digester
        68: .line 652
      StackMap locals:
      StackMap stack:
            aload 8 /* resource */
            ifnull 78
            aload 8 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
            goto 78
      StackMap locals:
      StackMap stack: java.lang.Throwable
        69: astore 6
            aload 8 /* resource */
            ifnull 70
            aload 8 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
        end local 8 // org.apache.tomcat.util.file.ConfigurationSource$Resource resource
      StackMap locals:
      StackMap stack:
        70: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        71: astore 7
            aload 6
            ifnonnull 72
            aload 7
            astore 6
            goto 73
      StackMap locals:
      StackMap stack:
        72: aload 6
            aload 7
            if_acmpeq 73
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        73: aload 6
            athrow
      StackMap locals: org.apache.catalina.startup.Catalina int java.io.File java.io.File java.lang.String org.apache.catalina.startup.Catalina$ServerXml
      StackMap stack: java.lang.Exception
        74: astore 6 /* e */
        start local 6 // java.lang.Exception e
        75: .line 653
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.configFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 6 /* e */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        76: .line 654
            aload 2 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 78
            aload 2 /* file */
            invokevirtual java.io.File.canRead:()Z
            ifne 78
        77: .line 655
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.incorrectPermissions"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        end local 6 // java.lang.Exception e
        78: .line 659
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.apache.catalina.startup.Catalina$ServerXml serverXml
        end local 4 // java.lang.String xmlClassName
        end local 3 // java.io.File serverXmlLocation
        end local 2 // java.io.File file
        end local 1 // boolean start
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   79     0               this  Lorg/apache/catalina/startup/Catalina;
            0   79     1              start  Z
            2   79     2               file  Ljava/io/File;
            4   14     3    loaderClassName  Ljava/lang/String;
            6    7     4             loader  Lorg/apache/tomcat/util/digester/Digester$GeneratedCodeLoader;
            9   14     4                  e  Ljava/lang/Exception;
           15   79     3  serverXmlLocation  Ljava/io/File;
           16   79     4       xmlClassName  Ljava/lang/String;
           32   79     5          serverXml  Lorg/apache/catalina/startup/Catalina$ServerXml;
           39   70     8           resource  Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
           42   68     9           digester  Lorg/apache/tomcat/util/digester/Digester;
           43   68    10        inputStream  Ljava/io/InputStream;
           44   68    11        inputSource  Lorg/xml/sax/InputSource;
           59   62    14             writer  Ljava/io/FileWriter;
           75   78     6                  e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     7       8  Class java.lang.Exception
          59    60      61  any
          53    63      63  any
          39    68      69  any
          38    71      71  any
          37    74      74  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      start  

  public void stopServer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 662
            aload 0 /* this */
            aconst_null
            invokevirtual org.apache.catalina.startup.Catalina.stopServer:([Ljava/lang/String;)V
         1: .line 663
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;

  public void stopServer(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String[] arguments
         0: .line 667
            aload 1 /* arguments */
            ifnull 2
         1: .line 668
            aload 0 /* this */
            aload 1 /* arguments */
            invokevirtual org.apache.catalina.startup.Catalina.arguments:([Ljava/lang/String;)Z
            pop
         2: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 2 /* s */
        start local 2 // org.apache.catalina.Server s
         3: .line 672
            aload 2 /* s */
            ifnonnull 9
         4: .line 673
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.startup.Catalina.parseServerXml:(Z)V
         5: .line 674
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            ifnonnull 15
         6: .line 675
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         7: .line 676
            iconst_1
            invokestatic java.lang.System.exit:(I)V
         8: .line 678
            goto 15
         9: .line 681
      StackMap locals: org.apache.catalina.Server
      StackMap stack:
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.stop:()V
        10: .line 682
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.destroy:()V
        11: .line 683
            goto 14
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        12: astore 3 /* e */
        start local 3 // org.apache.catalina.LifecycleException e
        13: .line 684
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // org.apache.catalina.LifecycleException e
        14: .line 686
      StackMap locals:
      StackMap stack:
            return
        15: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 2 /* s */
        16: .line 691
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortWithOffset:()I
            ifle 50
        17: .line 692
            aconst_null
            astore 3
            aconst_null
            astore 4
        18: new java.net.Socket
            dup
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getAddress:()Ljava/lang/String;
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortWithOffset:()I
            invokespecial java.net.Socket.<init>:(Ljava/lang/String;I)V
            astore 5 /* socket */
        start local 5 // java.net.Socket socket
        19: .line 693
            aload 5 /* socket */
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            astore 6 /* stream */
        start local 6 // java.io.OutputStream stream
        20: .line 694
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getShutdown:()Ljava/lang/String;
            astore 7 /* shutdown */
        start local 7 // java.lang.String shutdown
        21: .line 695
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        22: goto 25
        23: .line 696
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server java.lang.Throwable java.lang.Throwable java.net.Socket java.io.OutputStream java.lang.String int
      StackMap stack:
            aload 6 /* stream */
            aload 7 /* shutdown */
            iload 8 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.io.OutputStream.write:(I)V
        24: .line 695
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 8 /* i */
            aload 7 /* shutdown */
            invokevirtual java.lang.String.length:()I
            if_icmplt 23
        end local 8 // int i
        26: .line 698
            aload 6 /* stream */
            invokevirtual java.io.OutputStream.flush:()V
        end local 7 // java.lang.String shutdown
        27: .line 699
            aload 6 /* stream */
            ifnull 30
            aload 6 /* stream */
            invokevirtual java.io.OutputStream.close:()V
            goto 30
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server java.lang.Throwable java.lang.Throwable java.net.Socket java.io.OutputStream
      StackMap stack: java.lang.Throwable
        28: astore 3
            aload 6 /* stream */
            ifnull 29
            aload 6 /* stream */
            invokevirtual java.io.OutputStream.close:()V
        end local 6 // java.io.OutputStream stream
      StackMap locals:
      StackMap stack:
        29: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        30: aload 5 /* socket */
            ifnull 52
            aload 5 /* socket */
            invokevirtual java.net.Socket.close:()V
            goto 52
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 4
            aload 3
            ifnonnull 32
            aload 4
            astore 3
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 3
            aload 4
            if_acmpeq 33
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        33: aload 5 /* socket */
            ifnull 34
            aload 5 /* socket */
            invokevirtual java.net.Socket.close:()V
        end local 5 // java.net.Socket socket
      StackMap locals:
      StackMap stack:
        34: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 4
            aload 3
            ifnonnull 36
            aload 4
            astore 3
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 3
            aload 4
            if_acmpeq 37
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        37: aload 3
            athrow
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server
      StackMap stack: java.net.ConnectException
        38: astore 3 /* ce */
        start local 3 // java.net.ConnectException ce
        39: .line 700
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopServer.connectException"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getAddress:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        40: .line 701
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortWithOffset:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPort:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
            dup
            iconst_3
        41: .line 702
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortOffset:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
        42: .line 700
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        43: .line 703
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* ce */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        44: .line 704
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        end local 3 // java.net.ConnectException ce
        45: goto 52
        46: .line 705
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        47: .line 706
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        48: .line 707
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        end local 3 // java.io.IOException e
        49: .line 709
            goto 52
        50: .line 710
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopServer"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        51: .line 711
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        52: .line 713
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.catalina.Server s
        end local 1 // java.lang.String[] arguments
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   53     0       this  Lorg/apache/catalina/startup/Catalina;
            0   53     1  arguments  [Ljava/lang/String;
            3   53     2          s  Lorg/apache/catalina/Server;
           13   14     3          e  Lorg/apache/catalina/LifecycleException;
           19   34     5     socket  Ljava/net/Socket;
           20   29     6     stream  Ljava/io/OutputStream;
           21   27     7   shutdown  Ljava/lang/String;
           22   26     8          i  I
           39   45     3         ce  Ljava/net/ConnectException;
           47   49     3          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           9    11      12  Class org.apache.catalina.LifecycleException
          20    27      28  any
          19    30      31  any
          18    35      35  any
          17    38      38  Class java.net.ConnectException
          17    38      46  Class java.io.IOException
    MethodParameters:
           Name  Flags
      arguments  

  public void load();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=5, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 721
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.loaded:Z
            ifeq 2
         1: .line 722
            return
         2: .line 724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.Catalina.loaded:Z
         3: .line 726
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* t1 */
        start local 1 // long t1
         4: .line 729
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.initNaming:()V
         5: .line 732
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.startup.Catalina.parseServerXml:(Z)V
         6: .line 733
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 3 /* s */
        start local 3 // org.apache.catalina.Server s
         7: .line 734
            aload 3 /* s */
            ifnonnull 9
         8: .line 735
            return
         9: .line 738
      StackMap locals: long org.apache.catalina.Server
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            aload 0 /* this */
            invokeinterface org.apache.catalina.Server.setCatalina:(Lorg/apache/catalina/startup/Catalina;)V
        10: .line 739
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaHomeFile:()Ljava/io/File;
            invokeinterface org.apache.catalina.Server.setCatalinaHome:(Ljava/io/File;)V
        11: .line 740
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaBaseFile:()Ljava/io/File;
            invokeinterface org.apache.catalina.Server.setCatalinaBase:(Ljava/io/File;)V
        12: .line 743
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.initStreams:()V
        13: .line 747
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.init:()V
        14: .line 748
            goto 19
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        15: astore 4 /* e */
        start local 4 // org.apache.catalina.LifecycleException e
        16: .line 749
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.throwOnInitFailure:Z
            ifeq 18
        17: .line 750
            new java.lang.Error
            dup
            aload 4 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        18: .line 752
      StackMap locals: org.apache.catalina.LifecycleException
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.initError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 4 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // org.apache.catalina.LifecycleException e
        19: .line 756
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isInfoEnabled:()Z
            ifeq 21
        20: .line 757
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.init"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* t1 */
            lsub
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        21: .line 759
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.catalina.Server s
        end local 1 // long t1
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/apache/catalina/startup/Catalina;
            4   22     1    t1  J
            7   22     3     s  Lorg/apache/catalina/Server;
           16   19     4     e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
          13    14      15  Class org.apache.catalina.LifecycleException

  public void load(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String[] args
         0: .line 768
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual org.apache.catalina.startup.Catalina.arguments:([Ljava/lang/String;)Z
            ifeq 5
         1: .line 769
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.load:()V
         2: .line 771
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 772
            aload 2 /* e */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
        end local 2 // java.lang.Exception e
         5: .line 774
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] args
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/startup/Catalina;
            0    6     1  args  [Ljava/lang/String;
            4    5     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      args  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=5, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 782
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            ifnonnull 2
         1: .line 783
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.load:()V
         2: .line 786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            ifnonnull 5
         3: .line 787
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noServer"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.fatal:(Ljava/lang/Object;)V
         4: .line 788
            return
         5: .line 791
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* t1 */
        start local 1 // long t1
         6: .line 795
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.start:()V
         7: .line 796
            goto 15
      StackMap locals: org.apache.catalina.startup.Catalina long
      StackMap stack: org.apache.catalina.LifecycleException
         8: astore 3 /* e */
        start local 3 // org.apache.catalina.LifecycleException e
         9: .line 797
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.serverStartFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.fatal:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        10: .line 799
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.destroy:()V
        11: .line 800
            goto 14
      StackMap locals: org.apache.catalina.startup.Catalina long org.apache.catalina.LifecycleException
      StackMap stack: org.apache.catalina.LifecycleException
        12: astore 4 /* e1 */
        start local 4 // org.apache.catalina.LifecycleException e1
        13: .line 801
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            ldc "destroy() failed for failed Server "
            aload 4 /* e1 */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // org.apache.catalina.LifecycleException e1
        14: .line 803
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.catalina.LifecycleException e
        15: .line 806
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isInfoEnabled:()Z
            ifeq 17
        16: .line 807
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.startup"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* t1 */
            lsub
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        17: .line 810
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generateCode:Z
            ifeq 19
        18: .line 812
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.generateLoader:()V
        19: .line 816
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
            ifeq 28
        20: .line 817
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
            ifnonnull 22
        21: .line 818
            aload 0 /* this */
            new org.apache.catalina.startup.Catalina$CatalinaShutdownHook
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.startup.Catalina$CatalinaShutdownHook.<init>:(Lorg/apache/catalina/startup/Catalina;)V
            putfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
        22: .line 820
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
        23: .line 825
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 3 /* logManager */
        start local 3 // java.util.logging.LogManager logManager
        24: .line 826
            aload 3 /* logManager */
            instanceof org.apache.juli.ClassLoaderLogManager
            ifeq 28
        25: .line 827
            aload 3 /* logManager */
            checkcast org.apache.juli.ClassLoaderLogManager
        26: .line 828
            iconst_0
        27: .line 827
            invokevirtual org.apache.juli.ClassLoaderLogManager.setUseShutdownHook:(Z)V
        end local 3 // java.util.logging.LogManager logManager
        28: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.await:Z
            ifeq 31
        29: .line 833
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.await:()V
        30: .line 834
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.stop:()V
        31: .line 836
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long t1
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0        this  Lorg/apache/catalina/startup/Catalina;
            6   32     1          t1  J
            9   15     3           e  Lorg/apache/catalina/LifecycleException;
           13   14     4          e1  Lorg/apache/catalina/LifecycleException;
           24   28     3  logManager  Ljava/util/logging/LogManager;
      Exception table:
        from    to  target  type
           6     7       8  Class org.apache.catalina.LifecycleException
          10    11      12  Class org.apache.catalina.LifecycleException

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 847
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
            ifeq 10
         1: .line 848
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
            pop
         2: .line 852
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 1 /* logManager */
        start local 1 // java.util.logging.LogManager logManager
         3: .line 853
            aload 1 /* logManager */
            instanceof org.apache.juli.ClassLoaderLogManager
            ifeq 10
         4: .line 854
            aload 1 /* logManager */
            checkcast org.apache.juli.ClassLoaderLogManager
         5: .line 855
            iconst_1
         6: .line 854
            invokevirtual org.apache.juli.ClassLoaderLogManager.setUseShutdownHook:(Z)V
        end local 1 // java.util.logging.LogManager logManager
         7: .line 858
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         9: .line 859
            aload 1 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        10: .line 866
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 1 /* s */
        start local 1 // org.apache.catalina.Server s
        11: .line 867
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.getState:()Lorg/apache/catalina/LifecycleState;
            astore 2 /* state */
        start local 2 // org.apache.catalina.LifecycleState state
        12: .line 868
            getstatic org.apache.catalina.LifecycleState.STOPPING_PREP:Lorg/apache/catalina/LifecycleState;
            aload 2 /* state */
            invokevirtual org.apache.catalina.LifecycleState.compareTo:(Ljava/lang/Enum;)I
            ifgt 14
        13: .line 869
            getstatic org.apache.catalina.LifecycleState.DESTROYED:Lorg/apache/catalina/LifecycleState;
            aload 2 /* state */
            invokevirtual org.apache.catalina.LifecycleState.compareTo:(Ljava/lang/Enum;)I
            ifge 19
        14: .line 872
      StackMap locals: org.apache.catalina.Server org.apache.catalina.LifecycleState
      StackMap stack:
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.stop:()V
        15: .line 873
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.destroy:()V
        end local 2 // org.apache.catalina.LifecycleState state
        end local 1 // org.apache.catalina.Server s
        16: .line 875
            goto 19
      StackMap locals: org.apache.catalina.startup.Catalina
      StackMap stack: org.apache.catalina.LifecycleException
        17: astore 1 /* e */
        start local 1 // org.apache.catalina.LifecycleException e
        18: .line 876
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // org.apache.catalina.LifecycleException e
        19: .line 879
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/apache/catalina/startup/Catalina;
            3    7     1  logManager  Ljava/util/logging/LogManager;
            9   10     1           t  Ljava/lang/Throwable;
           11   16     1           s  Lorg/apache/catalina/Server;
           12   16     2       state  Lorg/apache/catalina/LifecycleState;
           18   19     1           e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           0     7       8  Class java.lang.Throwable
          10    16      17  Class org.apache.catalina.LifecycleException

  public void await();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 887
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.await:()V
         1: .line 889
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;

  protected void usage();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 897
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.usage"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 899
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;

  protected void initStreams();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 904
            new org.apache.tomcat.util.log.SystemLogHandler
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokespecial org.apache.tomcat.util.log.SystemLogHandler.<init>:(Ljava/io/PrintStream;)V
            invokestatic java.lang.System.setOut:(Ljava/io/PrintStream;)V
         1: .line 905
            new org.apache.tomcat.util.log.SystemLogHandler
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial org.apache.tomcat.util.log.SystemLogHandler.<init>:(Ljava/io/PrintStream;)V
            invokestatic java.lang.System.setErr:(Ljava/io/PrintStream;)V
         2: .line 906
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/startup/Catalina;

  protected void initNaming();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 911
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useNaming:Z
            ifne 4
         1: .line 912
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noNaming"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
         2: .line 913
            ldc "catalina.useNaming"
            ldc "false"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
         3: .line 914
            goto 21
         4: .line 915
      StackMap locals:
      StackMap stack:
            ldc "catalina.useNaming"
            ldc "true"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
         5: .line 916
            ldc "org.apache.naming"
            astore 1 /* value */
        start local 1 // java.lang.String value
         6: .line 918
            ldc "java.naming.factory.url.pkgs"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
         7: .line 917
            astore 2 /* oldValue */
        start local 2 // java.lang.String oldValue
         8: .line 919
            aload 2 /* oldValue */
            ifnull 10
         9: .line 920
            new java.lang.StringBuilder
            dup
            aload 1 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* oldValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* value */
        10: .line 922
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc "java.naming.factory.url.pkgs"
            aload 1 /* value */
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        11: .line 923
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 13
        12: .line 924
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Setting naming prefix="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        13: .line 927
      StackMap locals:
      StackMap stack:
            ldc "java.naming.factory.initial"
        14: .line 926
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* value */
        15: .line 928
            aload 1 /* value */
            ifnonnull 20
        16: .line 930
            ldc "java.naming.factory.initial"
        17: .line 931
            ldc "org.apache.naming.java.javaURLContextFactory"
        18: .line 929
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        19: .line 932
            goto 21
        20: .line 933
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "INITIAL_CONTEXT_FACTORY already set "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        end local 2 // java.lang.String oldValue
        end local 1 // java.lang.String value
        21: .line 936
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/apache/catalina/startup/Catalina;
            6   21     1     value  Ljava/lang/String;
            8   21     2  oldValue  Ljava/lang/String;

  protected void setSecurityProtection();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 943
            invokestatic org.apache.catalina.security.SecurityConfig.newInstance:()Lorg/apache/catalina/security/SecurityConfig;
            astore 1 /* securityConfig */
        start local 1 // org.apache.catalina.security.SecurityConfig securityConfig
         1: .line 944
            aload 1 /* securityConfig */
            invokevirtual org.apache.catalina.security.SecurityConfig.setPackageDefinition:()V
         2: .line 945
            aload 1 /* securityConfig */
            invokevirtual org.apache.catalina.security.SecurityConfig.setPackageAccess:()V
         3: .line 946
            return
        end local 1 // org.apache.catalina.security.SecurityConfig securityConfig
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/catalina/startup/Catalina;
            1    4     1  securityConfig  Lorg/apache/catalina/security/SecurityConfig;

  protected void generateLoader();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=7, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 950
            ldc "DigesterGeneratedCodeLoader"
            astore 1 /* loaderClassName */
        start local 1 // java.lang.String loaderClassName
         1: .line 951
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* code */
        start local 2 // java.lang.StringBuilder code
         2: .line 952
            aload 2 /* code */
            ldc "package "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage: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;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 953
            aload 2 /* code */
            ldc "public class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* loaderClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 954
            aload 2 /* code */
            ldc " implements org.apache.tomcat.util.digester.Digester.GeneratedCodeLoader {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 955
            aload 2 /* code */
            ldc "public Object loadGeneratedCode(String className) {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 956
            aload 2 /* code */
            ldc "switch (className) {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 957
            invokestatic org.apache.tomcat.util.digester.Digester.getGeneratedClasses:()[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 12
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         8: aload 6
            iload 4
            aaload
            astore 3 /* generatedClassName */
        start local 3 // java.lang.String generatedClassName
         9: .line 958
            aload 2 /* code */
            ldc "case \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* generatedClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" : return new "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* generatedClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 959
            aload 2 /* code */
            ldc "();"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String generatedClassName
        11: .line 957
            iinc 4 1
      StackMap locals:
      StackMap stack:
        12: iload 4
            iload 5
            if_icmplt 8
        13: .line 961
            aload 2 /* code */
            ldc "default: return null; }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 962
            aload 2 /* code */
            ldc "}}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 963
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodeLocation:Ljava/io/File;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* loaderLocation */
        start local 3 // java.io.File loaderLocation
        16: .line 964
            aconst_null
            astore 4
            aconst_null
            astore 5
        17: new java.io.FileWriter
            dup
            new java.io.File
            dup
            aload 3 /* loaderLocation */
            new java.lang.StringBuilder
            dup
            aload 1 /* loaderClassName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".java"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 6 /* writer */
        start local 6 // java.io.FileWriter writer
        18: .line 965
            aload 6 /* writer */
            aload 2 /* code */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
        19: .line 966
            aload 6 /* writer */
            ifnull 27
            aload 6 /* writer */
            invokevirtual java.io.FileWriter.close:()V
            goto 27
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String java.lang.StringBuilder java.io.File java.lang.Throwable java.lang.Throwable java.io.FileWriter
      StackMap stack: java.lang.Throwable
        20: astore 4
            aload 6 /* writer */
            ifnull 21
            aload 6 /* writer */
            invokevirtual java.io.FileWriter.close:()V
        end local 6 // java.io.FileWriter writer
      StackMap locals:
      StackMap stack:
        21: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 5
            aload 4
            ifnonnull 23
            aload 5
            astore 4
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 4
            aload 5
            if_acmpeq 24
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 4
            athrow
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String java.lang.StringBuilder java.io.File
      StackMap stack: java.io.IOException
        25: astore 4 /* e */
        start local 4 // java.io.IOException e
        26: .line 968
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            ldc "Error writing code loader"
            aload 4 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException e
        27: .line 970
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.File loaderLocation
        end local 2 // java.lang.StringBuilder code
        end local 1 // java.lang.String loaderClassName
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   28     0                this  Lorg/apache/catalina/startup/Catalina;
            1   28     1     loaderClassName  Ljava/lang/String;
            2   28     2                code  Ljava/lang/StringBuilder;
            9   11     3  generatedClassName  Ljava/lang/String;
           16   28     3      loaderLocation  Ljava/io/File;
           18   21     6              writer  Ljava/io/FileWriter;
           26   27     4                   e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          18    19      20  any
          17    22      22  any
          16    25      25  Class java.io.IOException

  protected void generateClassHeader(org.apache.tomcat.util.digester.Digester, boolean);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
        start local 2 // boolean start
         0: .line 974
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            astore 3 /* code */
        start local 3 // java.lang.StringBuilder code
         1: .line 975
            aload 3 /* code */
            ldc "package "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.generatedCodePackage: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;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 976
            aload 3 /* code */
            ldc "public class ServerXml"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 977
            iload 2 /* start */
            ifne 5
         4: .line 978
            aload 3 /* code */
            ldc "Stop"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 980
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* code */
            ldc " implements "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 981
            aload 3 /* code */
            ldc Lorg/apache/catalina/startup/Catalina$ServerXml;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 36
            bipush 46
            invokevirtual java.lang.String.replace:(CC)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;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 982
            aload 3 /* code */
            ldc "public void load("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc Lorg/apache/catalina/startup/Catalina;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 983
            aload 3 /* code */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* digester */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.digester.Digester.toVariableName:(Ljava/lang/Object;)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;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 984
            return
        end local 3 // java.lang.StringBuilder code
        end local 2 // boolean start
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/catalina/startup/Catalina;
            0   10     1  digester  Lorg/apache/tomcat/util/digester/Digester;
            0   10     2     start  Z
            1   10     3      code  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      digester  
      start     

  protected void generateClassFooter(org.apache.tomcat.util.digester.Digester);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         0: .line 988
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            astore 2 /* code */
        start local 2 // java.lang.StringBuilder code
         1: .line 989
            aload 2 /* code */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 990
            aload 2 /* code */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 991
            return
        end local 2 // java.lang.StringBuilder code
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/catalina/startup/Catalina;
            0    4     1  digester  Lorg/apache/tomcat/util/digester/Digester;
            1    4     2      code  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      digester  
}
SourceFile: "Catalina.java"
NestMembers:
  org.apache.catalina.startup.Catalina$CatalinaShutdownHook  org.apache.catalina.startup.Catalina$ServerXml  org.apache.catalina.startup.Catalina$SetParentClassLoaderRule
InnerClasses:
  protected CatalinaShutdownHook = org.apache.catalina.startup.Catalina$CatalinaShutdownHook of org.apache.catalina.startup.Catalina
  public abstract ServerXml = org.apache.catalina.startup.Catalina$ServerXml of org.apache.catalina.startup.Catalina
  final SetParentClassLoaderRule = org.apache.catalina.startup.Catalina$SetParentClassLoaderRule of org.apache.catalina.startup.Catalina
  public abstract GeneratedCodeLoader = org.apache.tomcat.util.digester.Digester$GeneratedCodeLoader of org.apache.tomcat.util.digester.Digester
  public Resource = org.apache.tomcat.util.file.ConfigurationSource$Resource of org.apache.tomcat.util.file.ConfigurationSource