public class sun.tools.jar.Main
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.tools.jar.Main
  super_class: java.lang.Object
{
  java.lang.String program;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.io.PrintWriter out;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0000) 

  java.io.PrintWriter err;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0000) 

  java.lang.String fname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String mname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String ename;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String zname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String rootjar;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private static final int BASE_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  java.util.Map<java.lang.String, sun.tools.jar.Main$Entry> entryMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Lsun/tools/jar/Main$Entry;>;

  java.util.Set<sun.tools.jar.Main$Entry> entries;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lsun/tools/jar/Main$Entry;>;

  java.util.Map<java.lang.String, byte[]> moduleInfos;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;[B>;

  java.util.Map<java.lang.Integer, java.util.Set<java.lang.String>> pathsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;

  java.util.Map<java.lang.Integer, java.lang.String[]> filesMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;

  boolean isMultiRelease;
    descriptor: Z
    flags: (0x0000) 

  int releaseValue;
    descriptor: I
    flags: (0x0000) 

  boolean cflag;
    descriptor: Z
    flags: (0x0000) 

  boolean uflag;
    descriptor: Z
    flags: (0x0000) 

  boolean xflag;
    descriptor: Z
    flags: (0x0000) 

  boolean tflag;
    descriptor: Z
    flags: (0x0000) 

  boolean vflag;
    descriptor: Z
    flags: (0x0000) 

  boolean flag0;
    descriptor: Z
    flags: (0x0000) 

  boolean Mflag;
    descriptor: Z
    flags: (0x0000) 

  boolean iflag;
    descriptor: Z
    flags: (0x0000) 

  boolean nflag;
    descriptor: Z
    flags: (0x0000) 

  boolean pflag;
    descriptor: Z
    flags: (0x0000) 

  boolean dflag;
    descriptor: Z
    flags: (0x0000) 

  java.util.function.Consumer<java.io.PrintWriter> info;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x0000) 
    Signature: Ljava/util/function/Consumer<Ljava/io/PrintWriter;>;

  java.lang.module.ModuleDescriptor$Version moduleVersion;
    descriptor: Ljava/lang/module/ModuleDescriptor$Version;
    flags: (0x0000) 

  java.util.regex.Pattern modulesToHash;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0000) 

  jdk.internal.module.ModuleResolution moduleResolution;
    descriptor: Ljdk/internal/module/ModuleResolution;
    flags: (0x0000) 

  java.lang.module.ModuleFinder moduleFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x0000) 

  static final java.lang.String MODULE_INFO;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "module-info.class"

  static final java.lang.String MANIFEST_DIR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "META-INF/"

  static final java.lang.String VERSIONS_DIR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "META-INF/versions/"

  static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.0"

  static final int VERSIONS_DIR_LENGTH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static java.util.ResourceBundle rsrc;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final boolean useExtractionTime;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private boolean ok;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private byte[] copyBuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashSet<java.lang.String> jarPaths;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Ljava/lang/String;>;

  static java.util.Comparator<java.lang.String> ENTRYNAME_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/Comparator<Ljava/lang/String;>;

  static java.util.Comparator<java.util.zip.ZipEntry> ENTRY_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/Comparator<Ljava/util/zip/ZipEntry;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 80
            ldc Lsun/tools/jar/Main;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.tools.jar.Main.$assertionsDisabled:Z
         3: .line 167
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.length:()I
            putstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
         4: .line 176
            ldc "sun.tools.jar.useExtractionTime"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         5: .line 175
            putstatic sun.tools.jar.Main.useExtractionTime:Z
         6: .line 183
            ldc "sun.tools.jar.resources.jar"
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
            putstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
         7: .line 184
            goto 10
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
         8: pop
         9: .line 185
            new java.lang.Error
            dup
            ldc "Fatal: Resource for jar is missing"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 2222
      StackMap locals:
      StackMap stack:
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  sun/tools/jar/Main.lambda$0(Ljava/lang/String;Ljava/lang/String;)I (6)
                  (Ljava/lang/String;Ljava/lang/String;)I
            putstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
        11: .line 2260
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/zip/ZipEntry.getName()Ljava/lang/String; (5)
                  (Ljava/util/zip/ZipEntry;)Ljava/lang/String;
            getstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
        12: .line 2259
            putstatic sun.tools.jar.Main.ENTRY_COMPARATOR:Ljava/util/Comparator;
        13: .line 2260
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           6     7       8  Class java.util.MissingResourceException

  static java.lang.String getMsg(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 191
            getstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
            aload 0 /* key */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 192
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         3: .line 193
            new java.lang.Error
            dup
            ldc "Error in message file"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   key  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.MissingResourceException
    MethodParameters:
      Name  Flags
      key   

  static java.lang.String formatMsg(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String arg
         0: .line 198
            aload 0 /* key */
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         1: .line 199
            iconst_1
            anewarray java.lang.String
            astore 3 /* args */
        start local 3 // java.lang.String[] args
         2: .line 200
            aload 3 /* args */
            iconst_0
            aload 1 /* arg */
            aastore
         3: .line 201
            aload 2 /* msg */
            aload 3 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String[] args
        end local 2 // java.lang.String msg
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   key  Ljava/lang/String;
            0    4     1   arg  Ljava/lang/String;
            1    4     2   msg  Ljava/lang/String;
            2    4     3  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   

  static java.lang.String formatMsg2(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.String key
        start local 1 // java.lang.String arg
        start local 2 // java.lang.String arg1
         0: .line 205
            aload 0 /* key */
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         1: .line 206
            iconst_2
            anewarray java.lang.String
            astore 4 /* args */
        start local 4 // java.lang.String[] args
         2: .line 207
            aload 4 /* args */
            iconst_0
            aload 1 /* arg */
            aastore
         3: .line 208
            aload 4 /* args */
            iconst_1
            aload 2 /* arg1 */
            aastore
         4: .line 209
            aload 3 /* msg */
            aload 4 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String[] args
        end local 3 // java.lang.String msg
        end local 2 // java.lang.String arg1
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   key  Ljava/lang/String;
            0    5     1   arg  Ljava/lang/String;
            0    5     2  arg1  Ljava/lang/String;
            1    5     3   msg  Ljava/lang/String;
            2    5     4  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   
      arg1  

  public void <init>(java.io.PrintStream, java.io.PrintStream, java.lang.String);
    descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.PrintStream out
        start local 2 // java.io.PrintStream err
        start local 3 // java.lang.String program
         0: .line 212
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 85
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 116
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
         4: .line 119
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield sun.tools.jar.Main.entries:Ljava/util/Set;
         5: .line 122
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
         6: .line 126
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
         7: .line 129
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
         8: .line 137
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.jar.Main.releaseValue:I
         9: .line 160
            aload 0 /* this */
            invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
            putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
        10: .line 161
            aload 0 /* this */
            iconst_0
            anewarray java.nio.file.Path
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
        11: .line 1225
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
        12: .line 1519
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
        13: .line 213
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
            putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
        14: .line 214
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            aload 2 /* err */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
            putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
        15: .line 215
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        16: .line 216
            return
        end local 3 // java.lang.String program
        end local 2 // java.io.PrintStream err
        end local 1 // java.io.PrintStream out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1      out  Ljava/io/PrintStream;
            0   17     2      err  Ljava/io/PrintStream;
            0   17     3  program  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      out      
      err      
      program  

  public void <init>(java.io.PrintWriter, java.io.PrintWriter, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/io/PrintWriter;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.PrintWriter out
        start local 2 // java.io.PrintWriter err
        start local 3 // java.lang.String program
         0: .line 218
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 85
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 116
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
         4: .line 119
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield sun.tools.jar.Main.entries:Ljava/util/Set;
         5: .line 122
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
         6: .line 126
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
         7: .line 129
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
         8: .line 137
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.jar.Main.releaseValue:I
         9: .line 160
            aload 0 /* this */
            invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
            putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
        10: .line 161
            aload 0 /* this */
            iconst_0
            anewarray java.nio.file.Path
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
        11: .line 1225
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
        12: .line 1519
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
        13: .line 219
            aload 0 /* this */
            aload 1 /* out */
            putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
        14: .line 220
            aload 0 /* this */
            aload 2 /* err */
            putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
        15: .line 221
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        16: .line 222
            return
        end local 3 // java.lang.String program
        end local 2 // java.io.PrintWriter err
        end local 1 // java.io.PrintWriter out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1      out  Ljava/io/PrintWriter;
            0   17     2      err  Ljava/io/PrintWriter;
            0   17     3  program  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      out      
      err      
      program  

  private static java.io.File createTempFileInSameDirectoryAs(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 230
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 1 /* dir */
        start local 1 // java.io.File dir
         1: .line 231
            aload 1 /* dir */
            ifnonnull 3
         2: .line 232
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* dir */
         3: .line 233
      StackMap locals: java.io.File
      StackMap stack:
            ldc "jartmp"
            aconst_null
            aload 1 /* dir */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            areturn
        end local 1 // java.io.File dir
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  file  Ljava/io/File;
            1    4     1   dir  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public synchronized boolean run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=15, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 242
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.ok:Z
         1: .line 243
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
            ifne 3
         2: .line 244
            iconst_0
            ireturn
         3: .line 246
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* tmpFile */
        start local 2 // java.io.File tmpFile
         4: .line 248
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 5
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 9
         5: .line 249
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 9
         6: .line 253
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         7: .line 254
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 255
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         9: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 111
        10: .line 260
            aconst_null
            astore 3 /* manifest */
        start local 3 // java.util.jar.Manifest manifest
        11: .line 261
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 33
        12: .line 262
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 22
        13: .line 263
            aconst_null
            astore 4
            aconst_null
            astore 5
        14: new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 6 /* in */
        start local 6 // java.io.InputStream in
        15: .line 264
            new java.util.jar.Manifest
            dup
            new java.io.BufferedInputStream
            dup
            aload 6 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 3 /* manifest */
        16: .line 265
            aload 6 /* in */
            ifnull 23
            aload 6 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 23
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        17: astore 4
            aload 6 /* in */
            ifnull 18
            aload 6 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
            aload 4
            ifnonnull 20
            aload 5
            astore 4
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 4
            aload 5
            if_acmpeq 21
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 4
            athrow
        22: .line 267
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            astore 3 /* manifest */
        23: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
        24: .line 270
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
        25: .line 271
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 29
        26: .line 436
            aload 2 /* tmpFile */
            ifnull 28
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 28
        27: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        28: .line 272
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        29: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 31
        30: .line 275
            aload 0 /* this */
            aload 3 /* manifest */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
        31: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 33
        32: .line 278
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
        33: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.expand:()V
        34: .line 282
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 45
        35: .line 284
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* jentries */
        start local 4 // java.util.Set jentries
        36: .line 286
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* packages */
        start local 5 // java.util.Set packages
        37: .line 287
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        38: .line 288
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$2(Lsun/tools/jar/Main$Entry;)Z (6)
                  (Lsun/tools/jar/Main$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        39: .line 289
            aload 0 /* this */
            aload 5 /* packages */
            aload 4 /* jentries */
            invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$3(Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V (7)
                  (Lsun/tools/jar/Main$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        40: .line 293
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 5 /* packages */
            invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
        41: .line 296
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            ldc "module-info.class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            aload 4 /* jentries */
            invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
            ifne 50
        42: .line 436
            aload 2 /* tmpFile */
            ifnull 44
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 44
        43: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        44: .line 297
      StackMap locals: java.util.Set java.util.Set
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // java.util.Set packages
        end local 4 // java.util.Set jentries
        45: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnonnull 46
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 50
        46: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.module.options.without.info"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        47: .line 436
            aload 2 /* tmpFile */
            ifnull 49
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 49
        48: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        49: .line 301
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        50: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 52
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 52
        51: .line 307
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
        52: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 54
        53: .line 310
            ldc "tmpjar"
            goto 55
        54: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
        55: .line 309
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* tmpbase */
        start local 4 // java.lang.String tmpbase
        56: .line 313
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
        57: .line 314
            aconst_null
            astore 5
            aconst_null
            astore 6
        58: new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.OutputStream out
        59: .line 315
            aload 0 /* this */
            new java.io.BufferedOutputStream
            dup
            aload 7 /* out */
            sipush 4096
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
        60: .line 316
            aload 7 /* out */
            ifnull 66
            aload 7 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 66
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
        61: astore 5
            aload 7 /* out */
            ifnull 62
            aload 7 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 7 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
        62: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: astore 6
            aload 5
            ifnonnull 64
            aload 6
            astore 5
            goto 65
      StackMap locals:
      StackMap stack:
        64: aload 5
            aload 6
            if_acmpeq 65
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        65: aload 5
            athrow
        66: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.nflag:Z
            ifeq 109
        67: .line 318
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".pack"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 5 /* packFile */
        start local 5 // java.io.File packFile
        68: .line 320
            invokestatic java.util.jar.Pack200.newPacker:()Ljava/util/jar/Pack200$Packer;
            astore 6 /* packer */
        start local 6 // java.util.jar.Pack200$Packer packer
        69: .line 321
            aload 6 /* packer */
            invokeinterface java.util.jar.Pack200$Packer.properties:()Ljava/util/SortedMap;
            astore 7 /* p */
        start local 7 // java.util.Map p
        70: .line 322
            aload 7 /* p */
            ldc "pack.effort"
            ldc "1"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        71: .line 323
            aconst_null
            astore 8
            aconst_null
            astore 9
        72: new java.util.jar.JarFile
            dup
            aload 2 /* tmpFile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 10 /* jarFile */
        start local 10 // java.util.jar.JarFile jarFile
        73: .line 324
            new java.io.FileOutputStream
            dup
            aload 5 /* packFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 11 /* pack */
        start local 11 // java.io.OutputStream pack
        74: .line 326
            aload 6 /* packer */
            aload 10 /* jarFile */
            aload 11 /* pack */
            invokeinterface java.util.jar.Pack200$Packer.pack:(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
        75: .line 327
            aload 11 /* pack */
            ifnull 78
            aload 11 /* pack */
            invokevirtual java.io.OutputStream.close:()V
            goto 78
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.util.jar.JarFile java.io.OutputStream
      StackMap stack: java.lang.Throwable
        76: astore 8
            aload 11 /* pack */
            ifnull 77
            aload 11 /* pack */
            invokevirtual java.io.OutputStream.close:()V
        end local 11 // java.io.OutputStream pack
      StackMap locals:
      StackMap stack:
        77: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        78: aload 10 /* jarFile */
            ifnull 86
            aload 10 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
            goto 86
      StackMap locals:
      StackMap stack: java.lang.Throwable
        79: astore 9
            aload 8
            ifnonnull 80
            aload 9
            astore 8
            goto 81
      StackMap locals:
      StackMap stack:
        80: aload 8
            aload 9
            if_acmpeq 81
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        81: aload 10 /* jarFile */
            ifnull 82
            aload 10 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 10 // java.util.jar.JarFile jarFile
      StackMap locals:
      StackMap stack:
        82: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        83: astore 9
            aload 8
            ifnonnull 84
            aload 9
            astore 8
            goto 85
      StackMap locals:
      StackMap stack:
        84: aload 8
            aload 9
            if_acmpeq 85
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        85: aload 8
            athrow
        86: .line 328
      StackMap locals:
      StackMap stack:
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 88
        87: .line 329
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        88: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
        89: .line 332
            aconst_null
            astore 8
            aconst_null
            astore 9
        90: new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 10 /* out */
        start local 10 // java.io.OutputStream out
        91: .line 333
            new java.util.jar.JarOutputStream
            dup
            aload 10 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 11 /* jos */
        start local 11 // java.util.jar.JarOutputStream jos
        92: .line 335
            invokestatic java.util.jar.Pack200.newUnpacker:()Ljava/util/jar/Pack200$Unpacker;
            astore 12 /* unpacker */
        start local 12 // java.util.jar.Pack200$Unpacker unpacker
        93: .line 336
            aload 12 /* unpacker */
            aload 5 /* packFile */
            aload 11 /* jos */
            invokeinterface java.util.jar.Pack200$Unpacker.unpack:(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
        end local 12 // java.util.jar.Pack200$Unpacker unpacker
        94: .line 337
            aload 11 /* jos */
            ifnull 97
            aload 11 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
            goto 97
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.io.OutputStream java.util.jar.JarOutputStream
      StackMap stack: java.lang.Throwable
        95: astore 8
            aload 11 /* jos */
            ifnull 96
            aload 11 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        end local 11 // java.util.jar.JarOutputStream jos
      StackMap locals:
      StackMap stack:
        96: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        97: aload 10 /* out */
            ifnull 108
            aload 10 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 108
      StackMap locals:
      StackMap stack: java.lang.Throwable
        98: astore 9
            aload 8
            ifnonnull 99
            aload 9
            astore 8
            goto 100
      StackMap locals:
      StackMap stack:
        99: aload 8
            aload 9
            if_acmpeq 100
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       100: aload 10 /* out */
            ifnull 101
            aload 10 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 10 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
       101: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       102: astore 9
            aload 8
            ifnonnull 103
            aload 9
            astore 8
            goto 104
      StackMap locals:
      StackMap stack:
       103: aload 8
            aload 9
            if_acmpeq 104
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       104: aload 8
            athrow
        end local 7 // java.util.Map p
        end local 6 // java.util.jar.Pack200$Packer packer
       105: .line 338
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File
      StackMap stack: java.lang.Throwable
            astore 13
       106: .line 339
            aload 5 /* packFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
       107: .line 340
            aload 13
            athrow
       108: .line 339
      StackMap locals:
      StackMap stack:
            aload 5 /* packFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        end local 5 // java.io.File packFile
       109: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmpFile */
            invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
        end local 4 // java.lang.String tmpbase
        end local 3 // java.util.jar.Manifest manifest
       110: .line 343
            goto 230
      StackMap locals:
      StackMap stack:
       111: aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 152
       112: .line 344
            aconst_null
            astore 3 /* inputFile */
        start local 3 // java.io.File inputFile
       113: .line 345
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 117
       114: .line 346
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* inputFile */
       115: .line 347
            aload 3 /* inputFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            astore 2 /* tmpFile */
       116: .line 348
            goto 119
       117: .line 349
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
       118: .line 350
            aload 0 /* this */
            ldc "tmpjar"
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
       119: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.expand:()V
       120: .line 353
            aconst_null
            astore 4
            aconst_null
            astore 5
       121: aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 122
            new java.io.FileInputStream
            dup
            aload 3 /* inputFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            goto 123
       122: .line 354
      StackMap locals: java.lang.Throwable java.lang.Throwable
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
       123: .line 353
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 6 /* in */
        start local 6 // java.io.FileInputStream in
       124: .line 355
            new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.FileOutputStream out
       125: .line 356
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 127
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 127
       126: .line 357
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            goto 128
      StackMap locals: java.io.FileInputStream java.io.FileOutputStream
      StackMap stack:
       127: aconst_null
       128: .line 356
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 8 /* manifest */
        start local 8 // java.io.InputStream manifest
       129: .line 359
            aload 0 /* this */
            aload 6 /* in */
            new java.io.BufferedOutputStream
            dup
            aload 7 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
       130: .line 360
            aload 8 /* manifest */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aconst_null
       131: .line 359
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
            istore 9 /* updateOk */
        start local 9 // boolean updateOk
       132: .line 361
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 134
       133: .line 362
            aload 0 /* this */
            iload 9 /* updateOk */
            putfield sun.tools.jar.Main.ok:Z
        end local 9 // boolean updateOk
       134: .line 364
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 8 /* manifest */
            ifnull 137
            aload 8 /* manifest */
            invokevirtual java.io.InputStream.close:()V
            goto 137
      StackMap locals:
      StackMap stack: java.lang.Throwable
       135: astore 4
            aload 8 /* manifest */
            ifnull 136
            aload 8 /* manifest */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream manifest
      StackMap locals:
      StackMap stack:
       136: aload 4
            athrow
      StackMap locals:
      StackMap stack:
       137: aload 7 /* out */
            ifnull 142
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 142
      StackMap locals:
      StackMap stack: java.lang.Throwable
       138: astore 5
            aload 4
            ifnonnull 139
            aload 5
            astore 4
            goto 140
      StackMap locals:
      StackMap stack:
       139: aload 4
            aload 5
            if_acmpeq 140
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       140: aload 7 /* out */
            ifnull 141
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 7 // java.io.FileOutputStream out
      StackMap locals:
      StackMap stack:
       141: aload 4
            athrow
      StackMap locals:
      StackMap stack:
       142: aload 6 /* in */
            ifnull 150
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
            goto 150
      StackMap locals:
      StackMap stack: java.lang.Throwable
       143: astore 5
            aload 4
            ifnonnull 144
            aload 5
            astore 4
            goto 145
      StackMap locals:
      StackMap stack:
       144: aload 4
            aload 5
            if_acmpeq 145
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       145: aload 6 /* in */
            ifnull 146
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream in
      StackMap locals:
      StackMap stack:
       146: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       147: astore 5
            aload 4
            ifnonnull 148
            aload 5
            astore 4
            goto 149
      StackMap locals:
      StackMap stack:
       148: aload 4
            aload 5
            if_acmpeq 149
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       149: aload 4
            athrow
       150: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmpFile */
            invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
        end local 3 // java.io.File inputFile
       151: .line 366
            goto 230
      StackMap locals:
      StackMap stack:
       152: aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 166
       153: .line 367
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
       154: .line 371
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       155: .line 372
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 158
       156: .line 373
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
       157: .line 374
            goto 230
       158: .line 375
      StackMap locals: java.lang.String[]
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 4 /* in */
        start local 4 // java.io.InputStream in
       159: .line 377
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 4 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
       160: .line 378
            goto 164
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       161: astore 5
       162: .line 379
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
       163: .line 380
            aload 5
            athrow
       164: .line 379
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String[] files
       165: .line 382
            goto 230
      StackMap locals:
      StackMap stack:
       166: aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifeq 184
       167: .line 383
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
       168: .line 394
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       169: .line 395
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 172
            aload 3 /* files */
            ifnull 172
       170: .line 396
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       171: .line 397
            goto 230
       172: .line 398
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 174
       173: .line 399
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            goto 175
       174: .line 400
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
       175: .line 398
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 4 /* in */
        start local 4 // java.io.InputStream in
       176: .line 402
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 4 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)Z
            ifne 182
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 182
       177: .line 403
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       178: .line 405
            goto 182
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       179: astore 5
       180: .line 406
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
       181: .line 407
            aload 5
            athrow
       182: .line 406
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String[] files
       183: .line 409
            goto 230
      StackMap locals:
      StackMap stack:
       184: aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 188
       185: .line 410
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       186: .line 411
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
        end local 3 // java.lang.String[] files
       187: .line 412
            goto 230
      StackMap locals:
      StackMap stack:
       188: aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 230
       189: .line 414
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 199
       190: .line 415
            aconst_null
            astore 4
            aconst_null
            astore 5
       191: new java.util.zip.ZipFile
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 6 /* zf */
        start local 6 // java.util.zip.ZipFile zf
       192: .line 416
            aload 0 /* this */
            aload 6 /* zf */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/util/zip/ZipFile;)Z
            istore 3 /* found */
        start local 3 // boolean found
       193: .line 417
            aload 6 /* zf */
            ifnull 208
            aload 6 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
            goto 208
        end local 3 // boolean found
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
       194: astore 4
            aload 6 /* zf */
            ifnull 195
            aload 6 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 6 // java.util.zip.ZipFile zf
      StackMap locals:
      StackMap stack:
       195: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       196: astore 5
            aload 4
            ifnonnull 197
            aload 5
            astore 4
            goto 198
      StackMap locals:
      StackMap stack:
       197: aload 4
            aload 5
            if_acmpeq 198
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       198: aload 4
            athrow
       199: .line 419
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
       200: new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 6 /* fin */
        start local 6 // java.io.FileInputStream fin
       201: .line 420
            aload 0 /* this */
            aload 6 /* fin */
            invokevirtual sun.tools.jar.Main.describeModuleFromStream:(Ljava/io/FileInputStream;)Z
            istore 3 /* found */
        start local 3 // boolean found
       202: .line 421
            aload 6 /* fin */
            ifnull 208
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
            goto 208
        end local 3 // boolean found
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
       203: astore 4
            aload 6 /* fin */
            ifnull 204
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream fin
      StackMap locals:
      StackMap stack:
       204: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       205: astore 5
            aload 4
            ifnonnull 206
            aload 5
            astore 4
            goto 207
      StackMap locals:
      StackMap stack:
       206: aload 4
            aload 5
            if_acmpeq 207
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       207: aload 4
            athrow
        start local 3 // boolean found
       208: .line 423
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File int
      StackMap stack:
            iload 3 /* found */
            ifne 230
       209: .line 424
            aload 0 /* this */
            ldc "error.module.descriptor.not.found"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        end local 3 // boolean found
       210: .line 426
            goto 230
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack: java.io.IOException
       211: astore 3 /* e */
        start local 3 // java.io.IOException e
       212: .line 427
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
       213: .line 428
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.io.IOException e
       214: .line 436
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       215: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 232
       216: .line 429
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 3 /* ee */
        start local 3 // java.lang.Error ee
       217: .line 430
            aload 3 /* ee */
            invokevirtual java.lang.Error.printStackTrace:()V
       218: .line 431
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.lang.Error ee
       219: .line 436
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       220: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 232
       221: .line 432
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
       222: .line 433
            aload 3 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
       223: .line 434
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.lang.Throwable t
       224: .line 436
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       225: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 232
       226: .line 435
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
       227: .line 436
            aload 2 /* tmpFile */
            ifnull 229
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 229
       228: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       229: .line 438
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
       230: .line 436
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack:
            aload 2 /* tmpFile */
            ifnull 232
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 232
       231: .line 437
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       232: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
       233: .line 440
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
       234: .line 441
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ireturn
        end local 2 // java.io.File tmpFile
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  235     0       this  Lsun/tools/jar/Main;
            0  235     1       args  [Ljava/lang/String;
            4  235     2    tmpFile  Ljava/io/File;
           11  110     3   manifest  Ljava/util/jar/Manifest;
           15   18     6         in  Ljava/io/InputStream;
           36   45     4   jentries  Ljava/util/Set<Ljava/lang/String;>;
           37   45     5   packages  Ljava/util/Set<Ljava/lang/String;>;
           56  110     4    tmpbase  Ljava/lang/String;
           59   62     7        out  Ljava/io/OutputStream;
           68  109     5   packFile  Ljava/io/File;
           69  105     6     packer  Ljava/util/jar/Pack200$Packer;
           70  105     7          p  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           73   82    10    jarFile  Ljava/util/jar/JarFile;
           74   77    11       pack  Ljava/io/OutputStream;
           91  101    10        out  Ljava/io/OutputStream;
           92   96    11        jos  Ljava/util/jar/JarOutputStream;
           93   94    12   unpacker  Ljava/util/jar/Pack200$Unpacker;
          113  151     3  inputFile  Ljava/io/File;
          124  146     6         in  Ljava/io/FileInputStream;
          125  141     7        out  Ljava/io/FileOutputStream;
          129  136     8   manifest  Ljava/io/InputStream;
          132  134     9   updateOk  Z
          155  165     3      files  [Ljava/lang/String;
          159  165     4         in  Ljava/io/InputStream;
          169  183     3      files  [Ljava/lang/String;
          176  183     4         in  Ljava/io/InputStream;
          186  187     3      files  [Ljava/lang/String;
          193  194     3      found  Z
          202  203     3      found  Z
          208  210     3      found  Z
          192  195     6         zf  Ljava/util/zip/ZipFile;
          201  204     6        fin  Ljava/io/FileInputStream;
          212  214     3          e  Ljava/io/IOException;
          217  219     3         ee  Ljava/lang/Error;
          222  224     3          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  any
          14    19      19  any
          59    60      61  any
          58    63      63  any
          74    75      76  any
          73    78      79  any
          72    83      83  any
          92    94      95  any
          91    97      98  any
          90   102     102  any
          68   105     105  any
         129   134     135  any
         125   137     138  any
         124   142     143  any
         121   147     147  any
         159   161     161  any
         176   179     179  any
         192   193     194  any
         191   196     196  any
         201   202     203  any
         200   205     205  any
           4    26     211  Class java.io.IOException
          29    42     211  Class java.io.IOException
          45    47     211  Class java.io.IOException
          50   210     211  Class java.io.IOException
           4    26     216  Class java.lang.Error
          29    42     216  Class java.lang.Error
          45    47     216  Class java.lang.Error
          50   210     216  Class java.lang.Error
           4    26     221  Class java.lang.Throwable
          29    42     221  Class java.lang.Throwable
          45    47     221  Class java.lang.Throwable
          50   210     221  Class java.lang.Throwable
           4    26     226  any
          29    42     226  any
          45    47     226  any
          50   214     226  any
         216   219     226  any
         221   224     226  any
    MethodParameters:
      Name  Flags
      args  

  private void validateAndClose(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File tmpfile
         0: .line 445
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 14
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 14
         1: .line 446
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.util.zip.ZipFile
            dup
            aload 1 /* tmpfile */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 4 /* zf */
        start local 4 // java.util.zip.ZipFile zf
         3: .line 447
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* zf */
            invokestatic sun.tools.jar.Validator.validate:(Lsun/tools/jar/Main;Ljava/util/zip/ZipFile;)Z
            putfield sun.tools.jar.Main.ok:Z
         4: .line 448
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifne 6
         5: .line 449
            aload 0 /* this */
            ldc "error.validator.jarfile.invalid"
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         6: .line 451
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack:
            aload 4 /* zf */
            ifnull 14
            aload 4 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 4 /* zf */
            ifnull 8
            aload 4 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 4 // java.util.zip.ZipFile zf
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals: sun.tools.jar.Main java.io.File
      StackMap stack: java.io.IOException
        12: astore 2 /* e */
        start local 2 // java.io.IOException e
        13: .line 452
            aload 0 /* this */
            ldc "error.validator.jarfile.exception"
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        end local 2 // java.io.IOException e
        14: .line 455
      StackMap locals:
      StackMap stack:
            aload 1 /* tmpfile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 2 /* path */
        start local 2 // java.nio.file.Path path
        15: .line 457
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 24
        16: .line 458
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 19
        17: .line 459
            aload 2 /* path */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
        18: .line 460
            goto 24
        19: .line 461
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 2 /* path */
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/io/OutputStream;)J
            pop2
        20: .line 464
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 3
        22: .line 465
            aload 2 /* path */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        23: .line 466
            aload 3
            athrow
        24: .line 465
      StackMap locals:
      StackMap stack:
            aload 2 /* path */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        25: .line 467
            return
        end local 2 // java.nio.file.Path path
        end local 1 // java.io.File tmpfile
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lsun/tools/jar/Main;
            0   26     1  tmpfile  Ljava/io/File;
            3    8     4       zf  Ljava/util/zip/ZipFile;
           13   14     2        e  Ljava/io/IOException;
           15   26     2     path  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           3     6       7  any
           2     9       9  any
           1    12      12  Class java.io.IOException
          15    21      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      tmpfile  

  private java.lang.String[] filesMapToFiles(java.util.Map<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map filesMap
         0: .line 470
            aload 1 /* filesMap */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            aconst_null
            areturn
         1: .line 471
      StackMap locals:
      StackMap stack:
            aload 1 /* filesMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
         2: .line 472
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 473
            aload 0 /* this */
            invokedynamic apply(Lsun/tools/jar/Main;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.filesToEntryNames(Ljava/util/Map$Entry;)Ljava/util/stream/Stream; (5)
                  (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 474
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$5(I)[Ljava/lang/String; (6)
                  (I)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast java.lang.String[]
         5: .line 471
            areturn
        end local 1 // java.util.Map filesMap
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/tools/jar/Main;
            0    6     1  filesMap  Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)[Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filesMap  

  java.util.stream.Stream<java.lang.String> filesToEntryNames(java.util.Map$Entry<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map$Entry fileEntries
         0: .line 478
            aload 1 /* fileEntries */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* version */
        start local 2 // int version
         1: .line 479
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 2 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* cpaths */
        start local 3 // java.util.Set cpaths
         2: .line 480
            aload 1 /* fileEntries */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         3: .line 481
            aload 0 /* this */
            aload 3 /* cpaths */
            iload 2 /* version */
            invokedynamic apply(Lsun/tools/jar/Main;Ljava/util/Set;I)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$6(Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String; (7)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 480
            areturn
        end local 3 // java.util.Set cpaths
        end local 2 // int version
        end local 1 // java.util.Map$Entry fileEntries
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lsun/tools/jar/Main;
            0    5     1  fileEntries  Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;
            1    5     2      version  I
            2    5     3       cpaths  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
             Name  Flags
      fileEntries  

  boolean parseArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 490
            aload 1 /* args */
            invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* args */
         1: .line 491
            goto 8
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
         2: astore 2 /* e */
        start local 2 // java.io.FileNotFoundException e
         3: .line 492
            aload 0 /* this */
            ldc "error.cant.open"
            aload 2 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
         4: .line 493
            iconst_0
            ireturn
        end local 2 // java.io.FileNotFoundException e
         5: .line 494
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 495
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
         7: .line 496
            iconst_0
            ireturn
        end local 2 // java.io.IOException e
         8: .line 499
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* count */
        start local 2 // int count
         9: .line 501
            aload 1 /* args */
            iconst_0
            aaload
            astore 3 /* flags */
        start local 3 // java.lang.String flags
        10: .line 506
            aload 3 /* flags */
            ldc "--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 12
        11: .line 507
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmpne 24
        12: .line 509
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            invokestatic sun.tools.jar.GNUStyleOptions.parseOptions:(Lsun/tools/jar/Main;[Ljava/lang/String;)I
            istore 2 /* count */
        13: .line 510
            goto 21
      StackMap locals:
      StackMap stack: sun.tools.jar.GNUStyleOptions$BadArgs
        14: astore 4 /* x */
        start local 4 // sun.tools.jar.GNUStyleOptions$BadArgs x
        15: .line 511
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            ifnonnull 21
        16: .line 512
            aload 4 /* x */
            getfield sun.tools.jar.GNUStyleOptions$BadArgs.showUsage:Z
            ifeq 19
        17: .line 513
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        18: .line 514
            goto 20
        19: .line 515
      StackMap locals: sun.tools.jar.GNUStyleOptions$BadArgs
      StackMap stack:
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        20: .line 517
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // sun.tools.jar.GNUStyleOptions$BadArgs x
        21: .line 520
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            ifnull 81
        22: .line 521
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        23: .line 522
            iconst_1
            ireturn
        24: .line 526
      StackMap locals:
      StackMap stack:
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
        25: .line 527
            aload 3 /* flags */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* flags */
        26: .line 529
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        27: goto 76
        28: .line 530
      StackMap locals: int
      StackMap stack:
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 13
                   48: 57
                   77: 49
                   80: 69
                   99: 29
                  101: 67
                  102: 53
                  105: 59
                  109: 55
                  110: 65
                  116: 44
                  117: 34
                  118: 51
                  120: 39
              default: 71
          }
        29: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 32
        30: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        31: .line 534
            iconst_0
            ireturn
        32: .line 536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.cflag:Z
        33: .line 537
            goto 75
        34: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 37
        35: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        36: .line 541
            iconst_0
            ireturn
        37: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.uflag:Z
        38: .line 544
            goto 75
        39: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 42
        40: .line 547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        41: .line 548
            iconst_0
            ireturn
        42: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.xflag:Z
        43: .line 551
            goto 75
        44: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 47
        45: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        46: .line 555
            iconst_0
            ireturn
        47: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.tflag:Z
        48: .line 558
            goto 75
        49: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.Mflag:Z
        50: .line 561
            goto 75
        51: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.vflag:Z
        52: .line 564
            goto 75
        53: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.fname:Ljava/lang/String;
        54: .line 567
            goto 75
        55: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.mname:Ljava/lang/String;
        56: .line 570
            goto 75
        57: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.flag0:Z
        58: .line 573
            goto 75
        59: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 62
        60: .line 576
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        61: .line 577
            iconst_0
            ireturn
        62: .line 580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
        63: .line 581
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.iflag:Z
        64: .line 582
            goto 75
        65: .line 584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.nflag:Z
        66: .line 585
            goto 75
        67: .line 587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.ename:Ljava/lang/String;
        68: .line 588
            goto 75
        69: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.pflag:Z
        70: .line 591
            goto 75
        71: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.illegal.option"
        72: .line 594
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
        73: .line 593
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        74: .line 595
            iconst_0
            ireturn
        75: .line 529
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        76: iload 4 /* i */
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            if_icmplt 28
        end local 4 // int i
        end local 3 // java.lang.String flags
        77: .line 599
            goto 81
      StackMap locals: sun.tools.jar.Main java.lang.String[] int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        78: pop
        79: .line 600
            aload 0 /* this */
            ldc "main.usage.summary"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        80: .line 601
            iconst_0
            ireturn
        81: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifne 84
        82: .line 604
            aload 0 /* this */
            ldc "error.bad.option"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        83: .line 605
            iconst_0
            ireturn
        84: .line 609
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            arraylength
            iload 2 /* count */
            isub
            istore 3 /* n */
        start local 3 // int n
        85: .line 610
            iload 3 /* n */
            ifle 148
        86: .line 611
            iconst_0
            istore 4 /* version */
        start local 4 // int version
        87: .line 612
            iconst_0
            istore 5 /* k */
        start local 5 // int k
        88: .line 613
            iload 3 /* n */
            anewarray java.lang.String
            astore 6 /* nameBuf */
        start local 6 // java.lang.String[] nameBuf
        89: .line 614
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        90: .line 616
            iload 2 /* count */
            istore 7 /* i */
        start local 7 // int i
        91: goto 135
        92: .line 617
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int
      StackMap stack:
            aload 1 /* args */
            iload 7 /* i */
            aaload
            ldc "-C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 108
        93: .line 618
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 96
        94: .line 621
            aload 0 /* this */
            ldc "error.bad.dflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        95: .line 622
            iconst_0
            ireturn
        96: .line 625
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 8 /* dir */
        start local 8 // java.lang.String dir
        97: .line 626
            aload 8 /* dir */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 99
        98: .line 627
            aload 8 /* dir */
            goto 100
      StackMap locals: java.lang.String
      StackMap stack:
        99: new java.lang.StringBuilder
            dup
            aload 8 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       100: .line 626
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* dir */
       101: .line 628
            aload 8 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 8 /* dir */
       102: .line 629
            goto 104
       103: .line 630
      StackMap locals:
      StackMap stack:
            aload 8 /* dir */
            ldc "//"
            ldc "/"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 8 /* dir */
       104: .line 629
      StackMap locals:
      StackMap stack:
            aload 8 /* dir */
            ldc "//"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpgt 103
       105: .line 632
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 8 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       106: .line 633
            aload 6 /* nameBuf */
            iload 5 /* k */
            iinc 5 /* k */ 1
            new java.lang.StringBuilder
            dup
            aload 8 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        end local 8 // java.lang.String dir
       107: .line 634
            goto 134
      StackMap locals:
      StackMap stack:
       108: aload 1 /* args */
            iload 7 /* i */
            aaload
            ldc "--release"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 130
       109: .line 635
            iconst_0
            istore 8 /* v */
        start local 8 // int v
       110: .line 637
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 8 /* v */
       111: .line 638
            goto 114
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int
      StackMap stack: java.lang.NumberFormatException
       112: pop
       113: .line 639
            aload 0 /* this */
            ldc "error.release.value.notnumber"
            aload 1 /* args */
            iload 7 /* i */
            aaload
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
       114: .line 642
      StackMap locals:
      StackMap stack:
            iload 8 /* v */
            bipush 9
            if_icmpge 117
       115: .line 643
            aload 0 /* this */
            ldc "error.release.value.toosmall"
            iload 8 /* v */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       116: .line 644
            iconst_0
            ireturn
       117: .line 647
      StackMap locals:
      StackMap stack:
            iload 5 /* k */
            ifle 124
       118: .line 648
            iload 5 /* k */
            anewarray java.lang.String
            astore 9 /* files */
        start local 9 // java.lang.String[] files
       119: .line 649
            aload 6 /* nameBuf */
            iconst_0
            aload 9 /* files */
            iconst_0
            iload 5 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       120: .line 650
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* files */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       121: .line 651
            aload 0 /* this */
            iload 4 /* version */
            ifle 122
            iconst_1
            goto 123
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
      StackMap stack: sun.tools.jar.Main
       122: iconst_0
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
      StackMap stack: sun.tools.jar.Main int
       123: putfield sun.tools.jar.Main.isMultiRelease:Z
        end local 9 // java.lang.String[] files
       124: .line 654
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* k */
       125: .line 655
            iload 3 /* n */
            anewarray java.lang.String
            astore 6 /* nameBuf */
       126: .line 656
            iload 8 /* v */
            istore 4 /* version */
       127: .line 657
            aload 0 /* this */
            iload 4 /* version */
            putfield sun.tools.jar.Main.releaseValue:I
       128: .line 658
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // int v
       129: .line 659
            goto 134
       130: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 133
       131: .line 663
            aload 0 /* this */
            ldc "error.bad.dflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       132: .line 664
            iconst_0
            ireturn
       133: .line 666
      StackMap locals:
      StackMap stack:
            aload 6 /* nameBuf */
            iload 5 /* k */
            iinc 5 /* k */ 1
            aload 1 /* args */
            iload 7 /* i */
            aaload
            aastore
       134: .line 616
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
       135: iload 7 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 92
        end local 7 // int i
       136: .line 669
            goto 140
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
       137: pop
       138: .line 670
            aload 0 /* this */
            ldc "error.bad.file.arg"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       139: .line 671
            iconst_0
            ireturn
       140: .line 674
      StackMap locals:
      StackMap stack:
            iload 5 /* k */
            ifle 156
       141: .line 675
            iload 5 /* k */
            anewarray java.lang.String
            astore 7 /* files */
        start local 7 // java.lang.String[] files
       142: .line 676
            aload 6 /* nameBuf */
            iconst_0
            aload 7 /* files */
            iconst_0
            iload 5 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       143: .line 677
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 7 /* files */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       144: .line 678
            aload 0 /* this */
            iload 4 /* version */
            ifle 145
            iconst_1
            goto 146
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
      StackMap stack: sun.tools.jar.Main
       145: iconst_0
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
      StackMap stack: sun.tools.jar.Main int
       146: putfield sun.tools.jar.Main.isMultiRelease:Z
        end local 7 // java.lang.String[] files
        end local 6 // java.lang.String[] nameBuf
        end local 5 // int k
        end local 4 // int version
       147: .line 680
            goto 156
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int
      StackMap stack:
       148: aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 151
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 151
       149: .line 681
            aload 0 /* this */
            ldc "error.bad.cflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       150: .line 682
            iconst_0
            ireturn
       151: .line 683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 156
       152: .line 684
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 153
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 154
       153: .line 686
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
       154: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.bad.uflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       155: .line 689
            iconst_0
            ireturn
       156: .line 692
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int n
        end local 2 // int count
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0  157     0     this  Lsun/tools/jar/Main;
            0  157     1     args  [Ljava/lang/String;
            3    5     2        e  Ljava/io/FileNotFoundException;
            6    8     2        e  Ljava/io/IOException;
            9  157     2    count  I
           10   77     3    flags  Ljava/lang/String;
           15   21     4        x  Lsun/tools/jar/GNUStyleOptions$BadArgs;
           27   77     4        i  I
           85  157     3        n  I
           87  147     4  version  I
           88  147     5        k  I
           89  147     6  nameBuf  [Ljava/lang/String;
           91  136     7        i  I
           97  107     8      dir  Ljava/lang/String;
          110  129     8        v  I
          119  124     9    files  [Ljava/lang/String;
          142  147     7    files  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.FileNotFoundException
           0     1       5  Class java.io.IOException
          12    13      14  Class sun.tools.jar.GNUStyleOptions$BadArgs
           9    20      78  Class java.lang.ArrayIndexOutOfBoundsException
          21    23      78  Class java.lang.ArrayIndexOutOfBoundsException
          24    31      78  Class java.lang.ArrayIndexOutOfBoundsException
          32    36      78  Class java.lang.ArrayIndexOutOfBoundsException
          37    41      78  Class java.lang.ArrayIndexOutOfBoundsException
          42    46      78  Class java.lang.ArrayIndexOutOfBoundsException
          47    61      78  Class java.lang.ArrayIndexOutOfBoundsException
          62    74      78  Class java.lang.ArrayIndexOutOfBoundsException
          75    77      78  Class java.lang.ArrayIndexOutOfBoundsException
         110   111     112  Class java.lang.NumberFormatException
          90    95     137  Class java.lang.ArrayIndexOutOfBoundsException
          96   116     137  Class java.lang.ArrayIndexOutOfBoundsException
         117   132     137  Class java.lang.ArrayIndexOutOfBoundsException
         133   136     137  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      args  

  void addPackageIfNamed(java.util.Set<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Set packages
        start local 2 // java.lang.String name
         0: .line 700
            aload 2 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
         1: .line 702
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            istore 3 /* i0 */
        start local 3 // int i0
         2: .line 703
            aload 2 /* name */
            bipush 47
            iload 3 /* i0 */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* i */
        start local 4 // int i
         3: .line 704
            iload 4 /* i */
            ifgt 11
         4: .line 705
            aload 0 /* this */
            ldc "warn.release.unexpected.versioned.entry"
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
         5: .line 706
            return
         6: .line 709
      StackMap locals: int int
      StackMap stack:
            aload 2 /* name */
            iload 3 /* i0 */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         7: .line 710
            iload 5 /* c */
            bipush 48
            if_icmplt 8
            iload 5 /* c */
            bipush 57
            if_icmple 10
         8: .line 711
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc "warn.release.unexpected.versioned.entry"
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
         9: .line 712
            return
        10: .line 714
      StackMap locals:
      StackMap stack:
            iinc 3 /* i0 */ 1
        end local 5 // char c
        11: .line 708
      StackMap locals:
      StackMap stack:
            iload 3 /* i0 */
            iload 4 /* i */
            if_icmplt 6
        12: .line 716
            aload 2 /* name */
            iload 4 /* i */
            iconst_1
            iadd
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
        end local 4 // int i
        end local 3 // int i0
        13: .line 718
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.toPackageName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pn */
        start local 3 // java.lang.String pn
        14: .line 720
            aload 3 /* pn */
            invokestatic jdk.internal.module.Checks.isPackageName:(Ljava/lang/String;)Z
            ifeq 16
        15: .line 721
            aload 1 /* packages */
            aload 3 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 723
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 3 // java.lang.String pn
        end local 2 // java.lang.String name
        end local 1 // java.util.Set packages
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lsun/tools/jar/Main;
            0   17     1  packages  Ljava/util/Set<Ljava/lang/String;>;
            0   17     2      name  Ljava/lang/String;
            2   13     3        i0  I
            3   13     4         i  I
            7   11     5         c  C
           14   17     3        pn  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      packages  
      name      

  private java.lang.String toEntryName(java.lang.String, java.util.Set<java.lang.String>, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
        start local 2 // java.util.Set cpaths
        start local 3 // boolean isDir
         0: .line 726
            aload 1 /* name */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* name */
         1: .line 727
            iload 3 /* isDir */
            ifeq 5
         2: .line 728
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
            aload 1 /* name */
            goto 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.StringBuilder
            dup
            aload 1 /* name */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 1 /* name */
         5: .line 730
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 4 /* matchPath */
        start local 4 // java.lang.String matchPath
         6: .line 731
            aload 2 /* cpaths */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* path */
        start local 5 // java.lang.String path
         8: .line 732
            aload 1 /* name */
            aload 5 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
            aload 5 /* path */
            invokevirtual java.lang.String.length:()I
            aload 4 /* matchPath */
            invokevirtual java.lang.String.length:()I
            if_icmple 10
         9: .line 733
            aload 5 /* path */
            astore 4 /* matchPath */
        end local 5 // java.lang.String path
        10: .line 731
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 736
            aload 0 /* this */
            aload 1 /* name */
            aload 4 /* matchPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
        12: .line 739
            aload 1 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        13: .line 740
            aload 1 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        14: .line 742
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 4 // java.lang.String matchPath
        end local 3 // boolean isDir
        end local 2 // java.util.Set cpaths
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lsun/tools/jar/Main;
            0   15     1       name  Ljava/lang/String;
            0   15     2     cpaths  Ljava/util/Set<Ljava/lang/String;>;
            0   15     3      isDir  Z
            6   15     4  matchPath  Ljava/lang/String;
            8   10     5       path  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Z)Ljava/lang/String;
    MethodParameters:
        Name  Flags
      name    
      cpaths  
      isDir   

  private static java.lang.String toVersionedName(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // int version
         0: .line 746
            iload 1 /* version */
            ifle 2
         1: .line 747
            new java.lang.StringBuilder
            dup
            ldc "META-INF/versions/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* name */
         3: .line 746
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // int version
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     name  Ljava/lang/String;
            0    4     1  version  I
    MethodParameters:
         Name  Flags
      name     
      version  

  private static java.lang.String toPackageName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String path
         0: .line 751
            aload 0 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 752
            iload 1 /* index */
            iconst_m1
            if_icmpeq 3
         2: .line 753
            aload 0 /* path */
            iconst_0
            iload 1 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
         3: .line 755
      StackMap locals: int
      StackMap stack:
            ldc ""
            areturn
        end local 1 // int index
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   path  Ljava/lang/String;
            1    4     1  index  I
    MethodParameters:
      Name  Flags
      path  

  private void expand();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 760
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: sun.tools.jar.Main top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 1 /* version */
        start local 1 // int version
         2: .line 761
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* files */
        start local 3 // java.lang.String[] files
         3: .line 762
            aload 0 /* this */
            aconst_null
            aload 3 /* files */
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            iload 1 /* version */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
        end local 3 // java.lang.String[] files
        end local 1 // int version
         4: .line 760
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 764
            return
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/tools/jar/Main;
            2    4     1  version  I
            3    4     3    files  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private void expand(java.io.File, java.lang.String[], java.util.Set<java.lang.String>, );
    descriptor: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File dir
        start local 2 // java.lang.String[] files
        start local 3 // java.util.Set cpaths
        start local 4 // int version
         0: .line 778
            aload 2 /* files */
            ifnonnull 2
         1: .line 779
            return
         2: .line 781
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 41
         4: .line 783
      StackMap locals: int
      StackMap stack:
            aload 1 /* dir */
            ifnonnull 7
         5: .line 784
            new java.io.File
            dup
            aload 2 /* files */
            iload 5 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         6: goto 8
        end local 6 // java.io.File f
         7: .line 786
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* dir */
            aload 2 /* files */
            iload 5 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         8: .line 788
      StackMap locals: java.io.File
      StackMap stack:
            aload 6 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            istore 7 /* isDir */
        start local 7 // boolean isDir
         9: .line 789
            aload 0 /* this */
            aload 6 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aload 3 /* cpaths */
            iload 7 /* isDir */
            invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
        10: .line 791
            iload 4 /* version */
            ifeq 18
        11: .line 792
            aload 8 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        12: .line 796
            aload 0 /* this */
            ldc "error.release.unexpected.versioned.entry"
        13: .line 797
            aload 8 /* name */
            iload 4 /* version */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
        14: .line 796
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        15: .line 798
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        16: .line 799
            return
        17: .line 801
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 8 /* name */
            iload 4 /* version */
            invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
            astore 8 /* name */
        18: .line 804
      StackMap locals:
      StackMap stack:
            aload 6 /* f */
            invokevirtual java.io.File.isFile:()Z
            ifeq 29
        19: .line 805
            new sun.tools.jar.Main$Entry
            dup
            aload 6 /* f */
            aload 8 /* name */
            iconst_0
            invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
            astore 9 /* e */
        start local 9 // sun.tools.jar.Main$Entry e
        20: .line 806
            aload 8 /* name */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ifeq 25
        21: .line 807
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 8 /* name */
            aload 6 /* f */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 808
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 40
        23: .line 809
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 810
            goto 40
      StackMap locals: sun.tools.jar.Main$Entry
      StackMap stack:
        25: aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 40
        26: .line 811
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 40
        27: .line 812
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // sun.tools.jar.Main$Entry e
        28: .line 814
            goto 40
      StackMap locals:
      StackMap stack:
        29: iload 7 /* isDir */
            ifeq 38
        30: .line 815
            new sun.tools.jar.Main$Entry
            dup
            aload 6 /* f */
            aload 8 /* name */
            iconst_1
            invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
            astore 9 /* e */
        start local 9 // sun.tools.jar.Main$Entry e
        31: .line 816
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 40
        32: .line 823
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 824
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        34: .line 825
            goto 36
        35: .line 826
      StackMap locals: sun.tools.jar.Main$Entry
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* f */
            aload 6 /* f */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            aload 3 /* cpaths */
            iload 4 /* version */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
        end local 9 // sun.tools.jar.Main$Entry e
        37: .line 830
            goto 40
        38: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.nosuch.fileordir"
            aload 6 /* f */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        39: .line 832
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 8 // java.lang.String name
        end local 7 // boolean isDir
        end local 6 // java.io.File f
        40: .line 781
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 5 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 5 // int i
        42: .line 835
            return
        end local 4 // int version
        end local 3 // java.util.Set cpaths
        end local 2 // java.lang.String[] files
        end local 1 // java.io.File dir
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   43     0     this  Lsun/tools/jar/Main;
            0   43     1      dir  Ljava/io/File;
            0   43     2    files  [Ljava/lang/String;
            0   43     3   cpaths  Ljava/util/Set<Ljava/lang/String;>;
            0   43     4  version  I
            3   42     5        i  I
            6    7     6        f  Ljava/io/File;
            8   40     6        f  Ljava/io/File;
            9   40     7    isDir  Z
           10   40     8     name  Ljava/lang/String;
           20   28     9        e  Lsun/tools/jar/Main$Entry;
           31   37     9        e  Lsun/tools/jar/Main$Entry;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;I)V
    MethodParameters:
         Name  Flags
      dir      
      files    
      cpaths   
      version  

  void create(java.io.OutputStream, java.util.jar.Manifest);
    descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.OutputStream out
        start local 2 // java.util.jar.Manifest manifest
         0: .line 842
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 5 /* zos */
        start local 5 // java.util.zip.ZipOutputStream zos
         2: .line 843
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 4
         3: .line 844
            aload 5 /* zos */
            iconst_0
            invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
         4: .line 847
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
      StackMap stack:
            aload 2 /* manifest */
            ifnull 19
         5: .line 848
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 7
         6: .line 849
            aload 0 /* this */
            ldc "out.added.manifest"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         7: .line 851
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        start local 6 // java.util.zip.ZipEntry e
         8: .line 852
            aload 6 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         9: .line 853
            aload 6 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        10: .line 854
            aload 6 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        11: .line 855
            aload 5 /* zos */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        12: .line 856
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        13: .line 857
            aload 6 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        14: .line 858
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 16
        15: .line 859
            aload 0 /* this */
            aload 6 /* e */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        16: .line 861
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 5 /* zos */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        17: .line 862
            aload 2 /* manifest */
            aload 5 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        18: .line 863
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        end local 6 // java.util.zip.ZipEntry e
        19: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 5 /* zos */
            invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
        20: .line 866
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream top java.util.Iterator
      StackMap stack:
        21: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 6 /* entry */
        start local 6 // sun.tools.jar.Main$Entry entry
        22: .line 867
            aload 0 /* this */
            aload 5 /* zos */
            aload 6 /* entry */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        end local 6 // sun.tools.jar.Main$Entry entry
        23: .line 866
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 869
            aload 5 /* zos */
            ifnull 30
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
            goto 30
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
      StackMap stack: java.lang.Throwable
        25: astore 3
            aload 5 /* zos */
            ifnull 26
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        end local 5 // java.util.zip.ZipOutputStream zos
      StackMap locals:
      StackMap stack:
        26: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 4
            aload 3
            ifnonnull 28
            aload 4
            astore 3
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 3
            aload 4
            if_acmpeq 29
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        29: aload 3
            athrow
        30: .line 870
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.jar.Manifest manifest
        end local 1 // java.io.OutputStream out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lsun/tools/jar/Main;
            0   31     1       out  Ljava/io/OutputStream;
            0   31     2  manifest  Ljava/util/jar/Manifest;
            2   26     5       zos  Ljava/util/zip/ZipOutputStream;
            8   19     6         e  Ljava/util/zip/ZipEntry;
           22   23     6     entry  Lsun/tools/jar/Main$Entry;
      Exception table:
        from    to  target  type
           2    24      25  any
           1    27      27  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      out       
      manifest  

  private char toUpperCaseASCII(char);
    descriptor: (C)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // char c
         0: .line 873
            iload 1 /* c */
            bipush 97
            if_icmplt 1
            iload 1 /* c */
            bipush 122
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* c */
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 1 /* c */
            bipush 65
            iadd
            bipush 97
            isub
            i2c
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // char c
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private boolean equalsIgnoreCase(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
        start local 2 // java.lang.String upper
         0: .line 883
            getstatic sun.tools.jar.Main.$assertionsDisabled:Z
            ifne 1
            aload 2 /* upper */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            aload 2 /* upper */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 885
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            dup
            istore 3 /* len */
        start local 3 // int len
         2: aload 2 /* upper */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
         3: .line 886
            iconst_0
            ireturn
         4: .line 887
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 11
         6: .line 888
      StackMap locals: int
      StackMap stack:
            aload 1 /* s */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c1 */
        start local 5 // char c1
         7: .line 889
            aload 2 /* upper */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c2 */
        start local 6 // char c2
         8: .line 890
            iload 5 /* c1 */
            iload 6 /* c2 */
            if_icmpeq 10
            aload 0 /* this */
            iload 5 /* c1 */
            invokevirtual sun.tools.jar.Main.toUpperCaseASCII:(C)C
            iload 6 /* c2 */
            if_icmpeq 10
         9: .line 891
            iconst_0
            ireturn
        end local 6 // char c2
        end local 5 // char c1
        10: .line 887
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 6
        end local 4 // int i
        12: .line 893
            iconst_1
            ireturn
        end local 3 // int len
        end local 2 // java.lang.String upper
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lsun/tools/jar/Main;
            0   13     1      s  Ljava/lang/String;
            0   13     2  upper  Ljava/lang/String;
            2   13     3    len  I
            5   12     4      i  I
            7   10     5     c1  C
            8   10     6     c2  C
    MethodParameters:
       Name  Flags
      s      
      upper  

  boolean update(java.io.InputStream, java.io.OutputStream, java.io.InputStream, java.util.Map<java.lang.String, byte[]>, jdk.internal.util.jar.JarIndex);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=17, args_size=6
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.io.OutputStream out
        start local 3 // java.io.InputStream newManifest
        start local 4 // java.util.Map moduleInfos
        start local 5 // jdk.internal.util.jar.JarIndex jarIndex
         0: .line 904
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
         1: .line 905
            new java.util.jar.JarOutputStream
            dup
            aload 2 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 7 /* zos */
        start local 7 // java.util.zip.ZipOutputStream zos
         2: .line 906
            aconst_null
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
         3: .line 907
            iconst_0
            istore 9 /* foundManifest */
        start local 9 // boolean foundManifest
         4: .line 908
            iconst_1
            istore 10 /* updateOk */
        start local 10 // boolean updateOk
         5: .line 912
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 11 /* jentries */
        start local 11 // java.util.Set jentries
         6: .line 914
            aload 5 /* jarIndex */
            ifnull 52
         7: .line 915
            aload 0 /* this */
            aload 5 /* jarIndex */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.addIndex:(Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
         8: .line 919
            goto 52
         9: .line 920
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
      StackMap stack:
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 12 /* name */
        start local 12 // java.lang.String name
        10: .line 922
            aload 0 /* this */
            aload 12 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            istore 13 /* isManifestEntry */
        start local 13 // boolean isManifestEntry
        11: .line 923
            aload 12 /* name */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            istore 14 /* isModuleInfoEntry */
        start local 14 // boolean isModuleInfoEntry
        12: .line 925
            aload 5 /* jarIndex */
            ifnull 13
            aload 0 /* this */
            aload 12 /* name */
            ldc "META-INF/INDEX.LIST"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 52
        13: .line 926
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifeq 15
            iload 13 /* isManifestEntry */
            ifeq 15
        14: .line 927
            goto 52
        15: .line 928
      StackMap locals:
      StackMap stack:
            iload 13 /* isManifestEntry */
            ifeq 29
            aload 3 /* newManifest */
            ifnonnull 17
        16: .line 929
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnonnull 17
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 29
        17: .line 930
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* foundManifest */
        18: .line 931
            aload 3 /* newManifest */
            ifnull 24
        19: .line 935
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 15 /* fis */
        start local 15 // java.io.FileInputStream fis
        20: .line 936
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            aload 15 /* fis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            istore 16 /* ambiguous */
        start local 16 // boolean ambiguous
        21: .line 937
            aload 15 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        22: .line 938
            iload 16 /* ambiguous */
            ifeq 24
        23: .line 939
            iconst_0
            ireturn
        end local 16 // boolean ambiguous
        end local 15 // java.io.FileInputStream fis
        24: .line 943
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            aload 6 /* zis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 15 /* old */
        start local 15 // java.util.jar.Manifest old
        25: .line 944
            aload 3 /* newManifest */
            ifnull 27
        26: .line 945
            aload 15 /* old */
            aload 3 /* newManifest */
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
        27: .line 947
      StackMap locals: java.util.jar.Manifest
      StackMap stack:
            aload 0 /* this */
            aload 15 /* old */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 52
        28: .line 948
            iconst_0
            ireturn
        end local 15 // java.util.jar.Manifest old
        29: .line 950
      StackMap locals:
      StackMap stack:
            aload 4 /* moduleInfos */
            ifnull 32
            iload 14 /* isModuleInfoEntry */
            ifeq 32
        30: .line 951
            aload 4 /* moduleInfos */
            aload 12 /* name */
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 952
            goto 52
        32: .line 953
      StackMap locals:
      StackMap stack:
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            istore 15 /* isDir */
        start local 15 // boolean isDir
        33: .line 954
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 45
        34: .line 956
            new java.util.zip.ZipEntry
            dup
            aload 12 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 16 /* e2 */
        start local 16 // java.util.zip.ZipEntry e2
        35: .line 957
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        36: .line 958
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        37: .line 959
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
            invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
        38: .line 960
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getExtra:()[B
            invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
        39: .line 961
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            ifne 42
        40: .line 962
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        41: .line 963
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getCrc:()J
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        42: .line 965
      StackMap locals: int java.util.zip.ZipEntry
      StackMap stack:
            aload 7 /* zos */
            aload 16 /* e2 */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        43: .line 966
            aload 0 /* this */
            aload 6 /* zis */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
        end local 16 // java.util.zip.ZipEntry e2
        44: .line 967
            goto 50
        45: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 16 /* ent */
        start local 16 // sun.tools.jar.Main$Entry ent
        46: .line 969
            aload 0 /* this */
            aload 7 /* zos */
            aload 16 /* ent */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        47: .line 970
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        48: .line 971
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 16 /* ent */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        49: .line 972
            aload 16 /* ent */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            istore 15 /* isDir */
        end local 16 // sun.tools.jar.Main$Entry ent
        50: .line 974
      StackMap locals:
      StackMap stack:
            iload 15 /* isDir */
            ifne 52
        51: .line 975
            aload 11 /* jentries */
            aload 12 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // boolean isDir
        end local 14 // boolean isModuleInfoEntry
        end local 13 // boolean isManifestEntry
        end local 12 // java.lang.String name
        52: .line 919
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 8 /* e */
            ifnonnull 9
        53: .line 981
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 13
            goto 58
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set top java.util.Iterator
      StackMap stack:
        54: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 12 /* entry */
        start local 12 // sun.tools.jar.Main$Entry entry
        55: .line 982
            aload 0 /* this */
            aload 7 /* zos */
            aload 12 /* entry */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        56: .line 983
            aload 12 /* entry */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            ifne 58
        57: .line 984
            aload 11 /* jentries */
            aload 12 /* entry */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // sun.tools.jar.Main$Entry entry
        58: .line 981
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 54
        59: .line 987
            iload 9 /* foundManifest */
            ifne 72
        60: .line 988
            aload 3 /* newManifest */
            ifnull 69
        61: .line 989
            new java.util.jar.Manifest
            dup
            aload 3 /* newManifest */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 12 /* m */
        start local 12 // java.util.jar.Manifest m
        62: .line 990
            aload 0 /* this */
            aload 12 /* m */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 63
            iconst_0
            goto 64
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set java.util.jar.Manifest
      StackMap stack:
        63: iconst_1
      StackMap locals:
      StackMap stack: int
        64: istore 10 /* updateOk */
        65: .line 991
            iload 10 /* updateOk */
            ifeq 72
        66: .line 992
            aload 0 /* this */
            aload 12 /* m */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 72
        67: .line 993
            iconst_0
            istore 10 /* updateOk */
        end local 12 // java.util.jar.Manifest m
        68: .line 996
            goto 72
      StackMap locals:
      StackMap stack:
        69: aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 72
        70: .line 997
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 72
        71: .line 998
            iconst_0
            istore 10 /* updateOk */
        72: .line 1002
      StackMap locals:
      StackMap stack:
            iload 10 /* updateOk */
            ifeq 83
        73: .line 1003
            aload 4 /* moduleInfos */
            ifnull 80
            aload 4 /* moduleInfos */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 80
        74: .line 1004
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* pkgs */
        start local 12 // java.util.Set pkgs
        75: .line 1005
            aload 11 /* jentries */
            aload 0 /* this */
            aload 12 /* pkgs */
            invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$7(Ljava/util/Set;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        76: .line 1006
            aload 0 /* this */
            aload 4 /* moduleInfos */
            aload 12 /* pkgs */
            invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
        77: .line 1007
            aload 0 /* this */
            aload 4 /* moduleInfos */
            ldc "module-info.class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            aload 11 /* jentries */
            invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
            istore 10 /* updateOk */
        78: .line 1008
            aload 0 /* this */
            aload 4 /* moduleInfos */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
        end local 12 // java.util.Set pkgs
        79: .line 1010
            goto 83
      StackMap locals:
      StackMap stack:
        80: aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnonnull 81
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 83
        81: .line 1011
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.module.options.without.info"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        82: .line 1012
            iconst_0
            istore 10 /* updateOk */
        83: .line 1015
      StackMap locals:
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        84: .line 1016
            aload 7 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        85: .line 1017
            iload 10 /* updateOk */
            ireturn
        end local 11 // java.util.Set jentries
        end local 10 // boolean updateOk
        end local 9 // boolean foundManifest
        end local 8 // java.util.zip.ZipEntry e
        end local 7 // java.util.zip.ZipOutputStream zos
        end local 6 // java.util.zip.ZipInputStream zis
        end local 5 // jdk.internal.util.jar.JarIndex jarIndex
        end local 4 // java.util.Map moduleInfos
        end local 3 // java.io.InputStream newManifest
        end local 2 // java.io.OutputStream out
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   86     0               this  Lsun/tools/jar/Main;
            0   86     1                 in  Ljava/io/InputStream;
            0   86     2                out  Ljava/io/OutputStream;
            0   86     3        newManifest  Ljava/io/InputStream;
            0   86     4        moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0   86     5           jarIndex  Ljdk/internal/util/jar/JarIndex;
            1   86     6                zis  Ljava/util/zip/ZipInputStream;
            2   86     7                zos  Ljava/util/zip/ZipOutputStream;
            3   86     8                  e  Ljava/util/zip/ZipEntry;
            4   86     9      foundManifest  Z
            5   86    10           updateOk  Z
            6   86    11           jentries  Ljava/util/Set<Ljava/lang/String;>;
           10   52    12               name  Ljava/lang/String;
           11   52    13    isManifestEntry  Z
           12   52    14  isModuleInfoEntry  Z
           20   24    15                fis  Ljava/io/FileInputStream;
           21   24    16          ambiguous  Z
           25   29    15                old  Ljava/util/jar/Manifest;
           33   52    15              isDir  Z
           35   44    16                 e2  Ljava/util/zip/ZipEntry;
           46   50    16                ent  Lsun/tools/jar/Main$Entry;
           55   58    12              entry  Lsun/tools/jar/Main$Entry;
           62   68    12                  m  Ljava/util/jar/Manifest;
           75   79    12               pkgs  Ljava/util/Set<Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;[B>;Ljdk/internal/util/jar/JarIndex;)Z
    MethodParameters:
             Name  Flags
      in           
      out          
      newManifest  
      moduleInfos  
      jarIndex     

  private void addIndex(jdk.internal.util.jar.JarIndex, java.util.zip.ZipOutputStream);
    descriptor: (Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // jdk.internal.util.jar.JarIndex index
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1023
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/INDEX.LIST"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.zip.ZipEntry e
         1: .line 1024
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         2: .line 1025
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 6
         3: .line 1026
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 4 /* os */
        start local 4 // sun.tools.jar.Main$CRC32OutputStream os
         4: .line 1027
            aload 1 /* index */
            aload 4 /* os */
            invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
         5: .line 1028
            aload 4 /* os */
            aload 3 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
        end local 4 // sun.tools.jar.Main$CRC32OutputStream os
         6: .line 1030
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 3 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 1031
            aload 1 /* index */
            aload 2 /* zos */
            invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
         8: .line 1032
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
         9: .line 1033
            return
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // jdk.internal.util.jar.JarIndex index
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/tools/jar/Main;
            0   10     1  index  Ljdk/internal/util/jar/JarIndex;
            0   10     2    zos  Ljava/util/zip/ZipOutputStream;
            1   10     3      e  Ljava/util/zip/ZipEntry;
            4    6     4     os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  
      zos    

  private void updateModuleInfo(java.util.Map<java.lang.String, byte[]>, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map moduleInfos
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1038
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 1
            ldc "out.update.module-info"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "out.added.module-info"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* fmt */
        start local 3 // java.lang.String fmt
         3: .line 1039
            aload 1 /* moduleInfos */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* mi */
        start local 4 // java.util.Map$Entry mi
         5: .line 1040
            aload 4 /* mi */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* name */
        start local 6 // java.lang.String name
         6: .line 1041
            aload 4 /* mi */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* bytes */
        start local 7 // byte[] bytes
         7: .line 1042
            new java.util.zip.ZipEntry
            dup
            aload 6 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
         8: .line 1043
            aload 8 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         9: .line 1044
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 11
        10: .line 1045
            aload 0 /* this */
            aload 8 /* e */
            aload 7 /* bytes */
            invokevirtual sun.tools.jar.Main.crc32ModuleInfo:(Ljava/util/zip/ZipEntry;[B)V
        11: .line 1047
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String byte[] java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        12: .line 1048
            aload 2 /* zos */
            aload 7 /* bytes */
            invokevirtual java.util.zip.ZipOutputStream.write:([B)V
        13: .line 1049
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        14: .line 1050
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 16
        15: .line 1051
            aload 0 /* this */
            aload 3 /* fmt */
            aload 6 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 8 // java.util.zip.ZipEntry e
        end local 7 // byte[] bytes
        end local 6 // java.lang.String name
        end local 4 // java.util.Map$Entry mi
        16: .line 1039
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        17: .line 1054
            return
        end local 3 // java.lang.String fmt
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // java.util.Map moduleInfos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lsun/tools/jar/Main;
            0   18     1  moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0   18     2          zos  Ljava/util/zip/ZipOutputStream;
            3   18     3          fmt  Ljava/lang/String;
            5   16     4           mi  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            6   16     6         name  Ljava/lang/String;
            7   16     7        bytes  [B
            8   16     8            e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/zip/ZipOutputStream;)V
    MethodParameters:
             Name  Flags
      moduleInfos  
      zos          

  private boolean updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1059
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
         1: .line 1060
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
         2: .line 1061
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 4
         3: .line 1062
            aload 0 /* this */
            aload 1 /* m */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
         4: .line 1064
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 6
         5: .line 1065
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
         6: .line 1067
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.zip.ZipEntry e
         7: .line 1068
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         8: .line 1069
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 10
         9: .line 1070
            aload 0 /* this */
            aload 3 /* e */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        10: .line 1072
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 3 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        11: .line 1073
            aload 1 /* m */
            aload 2 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        12: .line 1074
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 14
        13: .line 1075
            aload 0 /* this */
            ldc "out.update.manifest"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        14: .line 1077
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/tools/jar/Main;
            0   15     1     m  Ljava/util/jar/Manifest;
            0   15     2   zos  Ljava/util/zip/ZipOutputStream;
            7   15     3     e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      m     
      zos   

  private static final boolean isWinDriveLetter(char);
    descriptor: (C)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 1081
            iload 0 /* c */
            bipush 97
            if_icmplt 1
            iload 0 /* c */
            bipush 122
            if_icmple 3
      StackMap locals:
      StackMap stack:
         1: iload 0 /* c */
            bipush 65
            if_icmplt 2
            iload 0 /* c */
            bipush 90
            if_icmple 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private java.lang.String safeName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
         0: .line 1085
            aload 0 /* this */
            getfield sun.tools.jar.Main.pflag:Z
            ifne 25
         1: .line 1086
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 1087
            aload 1 /* name */
            ldc "../"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* i */
        start local 3 // int i
         3: .line 1088
            iload 3 /* i */
            iconst_m1
            if_icmpne 6
         4: .line 1089
            iconst_0
            istore 3 /* i */
         5: .line 1090
            goto 7
         6: .line 1091
      StackMap locals: int int
      StackMap stack:
            iinc 3 /* i */ 3
         7: .line 1093
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 22
         8: .line 1096
            goto 19
         9: .line 1097
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            istore 4 /* off */
        start local 4 // int off
        10: .line 1098
            iload 3 /* i */
            iconst_1
            iadd
            iload 2 /* len */
            if_icmpge 16
        11: .line 1099
            aload 1 /* name */
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 16
        12: .line 1100
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic sun.tools.jar.Main.isWinDriveLetter:(C)Z
            ifeq 16
        13: .line 1101
            iinc 3 /* i */ 2
        14: .line 1103
            goto 16
        15: .line 1104
      StackMap locals: int
      StackMap stack:
            iinc 3 /* i */ 1
        16: .line 1103
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 17
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 15
        17: .line 1106
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 4 /* off */
            if_icmpne 19
        18: .line 1107
            goto 23
        end local 4 // int off
        19: .line 1096
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmplt 9
        20: .line 1110
            goto 23
        21: .line 1112
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        22: .line 1111
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 23
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 21
        23: .line 1115
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            ifeq 25
        24: .line 1116
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        end local 3 // int i
        end local 2 // int len
        25: .line 1119
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lsun/tools/jar/Main;
            0   26     1  name  Ljava/lang/String;
            2   25     2   len  I
            3   25     3     i  I
           10   19     4   off  I
    MethodParameters:
      Name  Flags
      name  

  private void addVersion(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1123
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 1124
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            ifnonnull 3
         2: .line 1125
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
            ldc "1.0"
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1127
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/tools/jar/Main;
            0    4     1       m  Ljava/util/jar/Manifest;
            1    4     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  private void addCreatedBy(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1130
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 1131
            aload 2 /* global */
            new java.util.jar.Attributes$Name
            dup
            ldc "Created-By"
            invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            ifnonnull 7
         2: .line 1132
            ldc "java.vendor"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* javaVendor */
        start local 3 // java.lang.String javaVendor
         3: .line 1133
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* jdkVersion */
        start local 4 // java.lang.String jdkVersion
         4: .line 1134
            aload 2 /* global */
            new java.util.jar.Attributes$Name
            dup
            ldc "Created-By"
            invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
            new java.lang.StringBuilder
            dup
            aload 4 /* jdkVersion */
            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;
         5: .line 1135
            aload 3 /* javaVendor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1134
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String jdkVersion
        end local 3 // java.lang.String javaVendor
         7: .line 1137
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lsun/tools/jar/Main;
            0    8     1           m  Ljava/util/jar/Manifest;
            1    8     2      global  Ljava/util/jar/Attributes;
            3    7     3  javaVendor  Ljava/lang/String;
            4    7     4  jdkVersion  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  private void addMainClass(java.util.jar.Manifest, java.lang.String);
    descriptor: (Ljava/util/jar/Manifest;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
        start local 2 // java.lang.String mainApp
         0: .line 1140
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 3 /* global */
        start local 3 // java.util.jar.Attributes global
         1: .line 1143
            aload 3 /* global */
            getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
            aload 2 /* mainApp */
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1144
            return
        end local 3 // java.util.jar.Attributes global
        end local 2 // java.lang.String mainApp
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lsun/tools/jar/Main;
            0    3     1        m  Ljava/util/jar/Manifest;
            0    3     2  mainApp  Ljava/lang/String;
            1    3     3   global  Ljava/util/jar/Attributes;
    MethodParameters:
         Name  Flags
      m        
      mainApp  

  private void addMultiRelease(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1147
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 1148
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MULTI_RELEASE:Ljava/util/jar/Attributes$Name;
            ldc "true"
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1149
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/tools/jar/Main;
            0    3     1       m  Ljava/util/jar/Manifest;
            1    3     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  private boolean isAmbiguousMainClass(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1152
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 5
         1: .line 1153
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         2: .line 1154
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 5
         3: .line 1155
            aload 0 /* this */
            ldc "error.bad.eflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
         4: .line 1156
            iconst_1
            ireturn
        end local 2 // java.util.jar.Attributes global
         5: .line 1159
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/tools/jar/Main;
            0    6     1       m  Ljava/util/jar/Manifest;
            2    5     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  void addFile(java.util.zip.ZipOutputStream, sun.tools.jar.Main$Entry);
    descriptor: (Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipOutputStream zos
        start local 2 // sun.tools.jar.Main$Entry entry
         0: .line 1167
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.file:Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         1: .line 1168
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 1169
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            istore 5 /* isDir */
        start local 5 // boolean isDir
         3: .line 1171
            aload 4 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* name */
            ldc "."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* name */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 1172
      StackMap locals: java.io.File java.lang.String int
      StackMap stack:
            return
         5: .line 1173
      StackMap locals:
      StackMap stack:
            aload 4 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            aload 4 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 1174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 10
         7: .line 1175
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 9
         8: .line 1176
            aload 0 /* this */
            ldc "out.ignore.entry"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         9: .line 1178
      StackMap locals:
      StackMap stack:
            return
        10: .line 1179
      StackMap locals:
      StackMap stack:
            aload 4 /* name */
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1180
            new java.lang.Error
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected module info: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 1183
      StackMap locals:
      StackMap stack:
            iload 5 /* isDir */
            ifeq 13
            lconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3 /* file */
            invokevirtual java.io.File.length:()J
      StackMap locals:
      StackMap stack: long
        14: lstore 6 /* size */
        start local 6 // long size
        15: .line 1185
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 17
        16: .line 1186
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            ldc "out.adding"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        17: .line 1188
      StackMap locals: long
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            aload 4 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
        18: .line 1189
            aload 8 /* e */
            aload 3 /* file */
            invokevirtual java.io.File.lastModified:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        19: .line 1190
            lload 6 /* size */
            lconst_0
            lcmp
            ifne 24
        20: .line 1191
            aload 8 /* e */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        21: .line 1192
            aload 8 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        22: .line 1193
            aload 8 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        23: .line 1194
            goto 26
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
        24: aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 26
        25: .line 1195
            aload 0 /* this */
            aload 8 /* e */
            aload 3 /* file */
            invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
        26: .line 1197
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        27: .line 1198
            iload 5 /* isDir */
            ifne 29
        28: .line 1199
            aload 0 /* this */
            aload 3 /* file */
            aload 1 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
        29: .line 1201
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        30: .line 1203
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 43
        31: .line 1204
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            lstore 6 /* size */
        32: .line 1205
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            lstore 9 /* csize */
        start local 9 // long csize
        33: .line 1206
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            ldc "out.size"
            lload 6 /* size */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        34: .line 1207
            lload 9 /* csize */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        35: .line 1206
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        36: .line 1208
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 42
        37: .line 1209
            lconst_0
            lstore 11 /* ratio */
        start local 11 // long ratio
        38: .line 1210
            lload 6 /* size */
            lconst_0
            lcmp
            ifeq 40
        39: .line 1211
            lload 6 /* size */
            lload 9 /* csize */
            lsub
            ldc 100
            lmul
            lload 6 /* size */
            ldiv
            lstore 11 /* ratio */
        40: .line 1213
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            ldc "out.deflated"
            lload 11 /* ratio */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 11 // long ratio
        41: .line 1214
            goto 43
        42: .line 1215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "out.stored"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 9 // long csize
        43: .line 1218
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.util.zip.ZipEntry e
        end local 6 // long size
        end local 5 // boolean isDir
        end local 4 // java.lang.String name
        end local 3 // java.io.File file
        end local 2 // sun.tools.jar.Main$Entry entry
        end local 1 // java.util.zip.ZipOutputStream zos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   44     0   this  Lsun/tools/jar/Main;
            0   44     1    zos  Ljava/util/zip/ZipOutputStream;
            0   44     2  entry  Lsun/tools/jar/Main$Entry;
            1   44     3   file  Ljava/io/File;
            2   44     4   name  Ljava/lang/String;
            3   44     5  isDir  Z
           15   44     6   size  J
           18   44     8      e  Ljava/util/zip/ZipEntry;
           33   43     9  csize  J
           38   41    11  ratio  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      zos    
      entry  

  private void copy(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream from
        start local 2 // java.io.OutputStream to
         0: .line 1237
            goto 2
        start local 3 // int n
         1: .line 1238
      StackMap locals: int
      StackMap stack:
            aload 2 /* to */
            aload 0 /* this */
            getfield sun.tools.jar.Main.copyBuf:[B
            iconst_0
            iload 3 /* n */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 3 // int n
         2: .line 1237
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 0 /* this */
            getfield sun.tools.jar.Main.copyBuf:[B
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 3 /* n */
        start local 3 // int n
         3: iconst_m1
            if_icmpne 1
         4: .line 1239
            return
        end local 3 // int n
        end local 2 // java.io.OutputStream to
        end local 1 // java.io.InputStream from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/tools/jar/Main;
            0    5     1  from  Ljava/io/InputStream;
            0    5     2    to  Ljava/io/OutputStream;
            1    2     3     n  I
            3    5     3     n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void copy(java.io.File, java.io.OutputStream);
    descriptor: (Ljava/io/File;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File from
        start local 2 // java.io.OutputStream to
         0: .line 1250
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileInputStream
            dup
            aload 1 /* from */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 5 /* in */
        start local 5 // java.io.InputStream in
         2: .line 1251
            aload 0 /* this */
            aload 5 /* in */
            aload 2 /* to */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 1252
            aload 5 /* in */
            ifnull 9
            aload 5 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 9
      StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
         4: astore 3
            aload 5 /* in */
            ifnull 5
            aload 5 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
         5: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 3
            ifnonnull 7
            aload 4
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 3
            aload 4
            if_acmpeq 8
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
         9: .line 1253
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.OutputStream to
        end local 1 // java.io.File from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/tools/jar/Main;
            0   10     1  from  Ljava/io/File;
            0   10     2    to  Ljava/io/OutputStream;
            2    5     5    in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void copy(java.io.InputStream, java.io.File);
    descriptor: (Ljava/io/InputStream;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream from
        start local 2 // java.io.File to
         0: .line 1264
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileOutputStream
            dup
            aload 2 /* to */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 5 /* out */
        start local 5 // java.io.OutputStream out
         2: .line 1265
            aload 0 /* this */
            aload 1 /* from */
            aload 5 /* out */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 1266
            aload 5 /* out */
            ifnull 9
            aload 5 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 9
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
         4: astore 3
            aload 5 /* out */
            ifnull 5
            aload 5 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 5 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
         5: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 3
            ifnonnull 7
            aload 4
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 3
            aload 4
            if_acmpeq 8
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
         9: .line 1267
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.File to
        end local 1 // java.io.InputStream from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/tools/jar/Main;
            0   10     1  from  Ljava/io/InputStream;
            0   10     2    to  Ljava/io/File;
            2    5     5   out  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void crc32ModuleInfo(java.util.zip.ZipEntry, byte[]);
    descriptor: (Ljava/util/zip/ZipEntry;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // byte[] bytes
         0: .line 1274
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 1275
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* bytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 4 /* in */
        start local 4 // java.io.ByteArrayInputStream in
         2: .line 1276
            aload 4 /* in */
            aload 3 /* os */
            invokevirtual java.io.ByteArrayInputStream.transferTo:(Ljava/io/OutputStream;)J
            pop2
         3: .line 1277
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         4: .line 1278
            return
        end local 4 // java.io.ByteArrayInputStream in
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // byte[] bytes
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/tools/jar/Main;
            0    5     1      e  Ljava/util/zip/ZipEntry;
            0    5     2  bytes  [B
            1    5     3     os  Lsun/tools/jar/Main$CRC32OutputStream;
            2    5     4     in  Ljava/io/ByteArrayInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      e      
      bytes  

  private void crc32Manifest(java.util.zip.ZipEntry, java.util.jar.Manifest);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.util.jar.Manifest m
         0: .line 1285
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 1286
            aload 2 /* m */
            aload 3 /* os */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
         2: .line 1287
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         3: .line 1288
            return
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // java.util.jar.Manifest m
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1     e  Ljava/util/zip/ZipEntry;
            0    4     2     m  Ljava/util/jar/Manifest;
            1    4     3    os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     
      m     

  private void crc32File(java.util.zip.ZipEntry, java.io.File);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.io.File f
         0: .line 1295
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 1296
            aload 0 /* this */
            aload 2 /* f */
            aload 3 /* os */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
         2: .line 1297
            aload 3 /* os */
            getfield sun.tools.jar.Main$CRC32OutputStream.n:J
            aload 2 /* f */
            invokevirtual java.io.File.length:()J
            lcmp
            ifeq 6
         3: .line 1298
            new sun.tools.jar.JarException
            dup
         4: .line 1299
            ldc "error.incorrect.length"
            aload 2 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
         5: .line 1298
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial sun.tools.jar.JarException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1301
      StackMap locals: sun.tools.jar.Main$CRC32OutputStream
      StackMap stack:
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 1302
            return
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // java.io.File f
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/tools/jar/Main;
            0    8     1     e  Ljava/util/zip/ZipEntry;
            0    8     2     f  Ljava/io/File;
            1    8     3    os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     
      f     

  void replaceFSC(java.util.Map<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map filesMap
         0: .line 1305
            aload 1 /* filesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* filesMap */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$8(Ljava/util/Map;Ljava/lang/Integer;)V (6)
                  (Ljava/lang/Integer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         1: .line 1313
            return
        end local 1 // java.util.Map filesMap
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/tools/jar/Main;
            0    2     1  filesMap  Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      filesMap  

  java.util.Set<java.util.zip.ZipEntry> newDirSet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 1317
            new sun.tools.jar.Main$1
            dup
            aload 0 /* this */
            invokespecial sun.tools.jar.Main$1.<init>:(Lsun/tools/jar/Main;)V
            areturn
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
    Signature: ()Ljava/util/Set<Ljava/util/zip/ZipEntry;>;

  void updateLastModifiedTime(java.util.Set<java.util.zip.ZipEntry>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Set zes
         0: .line 1324
            aload 1 /* zes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: sun.tools.jar.Main java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 2 /* ze */
        start local 2 // java.util.zip.ZipEntry ze
         2: .line 1325
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 4 /* lastModified */
        start local 4 // long lastModified
         3: .line 1326
            lload 4 /* lastModified */
            ldc -1
            lcmp
            ifeq 8
         4: .line 1327
            aload 0 /* this */
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 1328
            aload 6 /* name */
            invokevirtual java.lang.String.length:()I
            ifeq 8
         6: .line 1329
            new java.io.File
            dup
            aload 6 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* f */
        start local 7 // java.io.File f
         7: .line 1330
            aload 7 /* f */
            lload 4 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 7 // java.io.File f
        end local 6 // java.lang.String name
        end local 4 // long lastModified
        end local 2 // java.util.zip.ZipEntry ze
         8: .line 1324
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 1334
            return
        end local 1 // java.util.Set zes
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lsun/tools/jar/Main;
            0   10     1           zes  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            2    8     2            ze  Ljava/util/zip/ZipEntry;
            3    8     4  lastModified  J
            5    8     6          name  Ljava/lang/String;
            7    8     7             f  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Set<Ljava/util/zip/ZipEntry;>;)V
    MethodParameters:
      Name  Flags
      zes   

  boolean extract(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String[] files
         0: .line 1343
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* zis */
        start local 3 // java.util.zip.ZipInputStream zis
         1: .line 1347
            iconst_0
            istore 5 /* entriesFound */
        start local 5 // boolean entriesFound
         2: .line 1348
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 6 /* dirs */
        start local 6 // java.util.Set dirs
         3: .line 1349
            goto 16
        start local 4 // java.util.zip.ZipEntry e
         4: .line 1350
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set
      StackMap stack:
            iconst_1
            istore 5 /* entriesFound */
         5: .line 1351
            aload 2 /* files */
            ifnonnull 8
         6: .line 1352
            aload 6 /* dirs */
            aload 0 /* this */
            aload 3 /* zis */
            aload 4 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1353
            goto 16
         8: .line 1354
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         9: .line 1355
            aload 2 /* files */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 15
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set java.lang.String top int int java.lang.String[]
      StackMap stack:
        10: aload 11
            iload 9
            aaload
            astore 8 /* file */
        start local 8 // java.lang.String file
        11: .line 1356
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1357
            aload 6 /* dirs */
            aload 0 /* this */
            aload 3 /* zis */
            aload 4 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 1358
            goto 16
        end local 8 // java.lang.String file
        14: .line 1355
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        15: iload 9
            iload 10
            if_icmplt 10
        end local 7 // java.lang.String name
        end local 4 // java.util.zip.ZipEntry e
        16: .line 1349
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top int java.util.Set
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
        17: ifnonnull 4
        18: .line 1368
            aload 0 /* this */
            aload 6 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1370
            iload 5 /* entriesFound */
            ireturn
        end local 6 // java.util.Set dirs
        end local 5 // boolean entriesFound
        end local 4 // java.util.zip.ZipEntry e
        end local 3 // java.util.zip.ZipInputStream zis
        end local 2 // java.lang.String[] files
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lsun/tools/jar/Main;
            0   20     1            in  Ljava/io/InputStream;
            0   20     2         files  [Ljava/lang/String;
            1   20     3           zis  Ljava/util/zip/ZipInputStream;
            4   16     4             e  Ljava/util/zip/ZipEntry;
           17   20     4             e  Ljava/util/zip/ZipEntry;
            2   20     5  entriesFound  Z
            3   20     6          dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            9   16     7          name  Ljava/lang/String;
           11   14     8          file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      in     
      files  

  void extract(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String fname
        start local 2 // java.lang.String[] files
         0: .line 1377
            new java.util.zip.ZipFile
            dup
            aload 1 /* fname */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 3 /* zf */
        start local 3 // java.util.zip.ZipFile zf
         1: .line 1378
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 4 /* dirs */
        start local 4 // java.util.Set dirs
         2: .line 1379
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 5 /* zes */
        start local 5 // java.util.Enumeration zes
         3: .line 1380
            goto 16
         4: .line 1381
      StackMap locals: java.util.zip.ZipFile java.util.Set java.util.Enumeration
      StackMap stack:
            aload 5 /* zes */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 6 /* e */
        start local 6 // java.util.zip.ZipEntry e
         5: .line 1382
            aload 2 /* files */
            ifnonnull 8
         6: .line 1383
            aload 4 /* dirs */
            aload 0 /* this */
            aload 3 /* zf */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            aload 6 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1384
            goto 16
         8: .line 1385
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 6 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         9: .line 1386
            aload 2 /* files */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration java.util.zip.ZipEntry java.lang.String top int int java.lang.String[]
      StackMap stack:
        10: aload 11
            iload 9
            aaload
            astore 8 /* file */
        start local 8 // java.lang.String file
        11: .line 1387
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1388
            aload 4 /* dirs */
            aload 0 /* this */
            aload 3 /* zf */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            aload 6 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 1389
            goto 16
        end local 8 // java.lang.String file
        14: .line 1386
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        15: iload 9
            iload 10
            if_icmplt 10
        end local 7 // java.lang.String name
        end local 6 // java.util.zip.ZipEntry e
        16: .line 1380
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration
      StackMap stack:
            aload 5 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
        17: .line 1394
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        18: .line 1395
            aload 0 /* this */
            aload 4 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1396
            return
        end local 5 // java.util.Enumeration zes
        end local 4 // java.util.Set dirs
        end local 3 // java.util.zip.ZipFile zf
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String fname
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lsun/tools/jar/Main;
            0   20     1  fname  Ljava/lang/String;
            0   20     2  files  [Ljava/lang/String;
            1   20     3     zf  Ljava/util/zip/ZipFile;
            2   20     4   dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            3   20     5    zes  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
            5   16     6      e  Ljava/util/zip/ZipEntry;
            9   16     7   name  Ljava/lang/String;
           11   14     8   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fname  
      files  

  java.util.zip.ZipEntry extractFile(java.io.InputStream, java.util.zip.ZipEntry);
    descriptor: (Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream is
        start local 2 // java.util.zip.ZipEntry e
         0: .line 1404
            aconst_null
            astore 3 /* rc */
        start local 3 // java.util.zip.ZipEntry rc
         1: .line 1410
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 1411
            aload 4 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 1412
            aload 3 /* rc */
            areturn
         4: .line 1414
      StackMap locals: java.util.zip.ZipEntry java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 4 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         5: .line 1415
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifeq 19
         6: .line 1416
            aload 5 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         7: .line 1417
            aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 16
         8: .line 1418
            new java.io.IOException
            dup
            ldc "error.create.dir"
         9: .line 1419
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        10: .line 1418
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1422
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 15
        12: .line 1423
            new java.io.IOException
            dup
            ldc "error.create.dir"
        13: .line 1424
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        14: .line 1423
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1426
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            astore 3 /* rc */
        16: .line 1430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        17: .line 1431
            aload 0 /* this */
            ldc "out.create"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        18: .line 1433
            goto 41
        19: .line 1434
      StackMap locals:
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            ifnull 26
        20: .line 1435
            new java.io.File
            dup
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* d */
        start local 6 // java.io.File d
        21: .line 1436
            aload 6 /* d */
            invokevirtual java.io.File.exists:()Z
            ifne 22
            aload 6 /* d */
            invokevirtual java.io.File.mkdirs:()Z
            ifeq 23
      StackMap locals: java.io.File
      StackMap stack:
        22: aload 6 /* d */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 26
        23: .line 1437
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
        24: .line 1438
            ldc "error.create.dir"
            aload 6 /* d */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        25: .line 1437
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.io.File d
        26: .line 1442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* is */
            aload 5 /* f */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/File;)V
        27: .line 1443
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
        29: .line 1444
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 31
        30: .line 1445
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 32
        31: .line 1447
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        32: .line 1448
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        33: .line 1444
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 35
        34: .line 1445
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 36
        35: .line 1447
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        36: .line 1449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        37: .line 1450
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 40
        38: .line 1451
            aload 0 /* this */
            ldc "out.inflated"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        39: .line 1452
            goto 41
        40: .line 1453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "out.extracted"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        41: .line 1457
      StackMap locals:
      StackMap stack:
            getstatic sun.tools.jar.Main.useExtractionTime:Z
            ifne 45
        42: .line 1458
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 6 /* lastModified */
        start local 6 // long lastModified
        43: .line 1459
            lload 6 /* lastModified */
            ldc -1
            lcmp
            ifeq 45
        44: .line 1460
            aload 5 /* f */
            lload 6 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 6 // long lastModified
        45: .line 1463
      StackMap locals:
      StackMap stack:
            aload 3 /* rc */
            areturn
        end local 5 // java.io.File f
        end local 4 // java.lang.String name
        end local 3 // java.util.zip.ZipEntry rc
        end local 2 // java.util.zip.ZipEntry e
        end local 1 // java.io.InputStream is
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0          this  Lsun/tools/jar/Main;
            0   46     1            is  Ljava/io/InputStream;
            0   46     2             e  Ljava/util/zip/ZipEntry;
            1   46     3            rc  Ljava/util/zip/ZipEntry;
            2   46     4          name  Ljava/lang/String;
            5   46     5             f  Ljava/io/File;
           21   26     6             d  Ljava/io/File;
           43   45     6  lastModified  J
      Exception table:
        from    to  target  type
          26    28      28  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    
      e     

  void list(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String[] files
         0: .line 1470
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* zis */
        start local 3 // java.util.zip.ZipInputStream zis
         1: .line 1472
            goto 4
        start local 4 // java.util.zip.ZipEntry e
         2: .line 1479
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
         3: .line 1480
            aload 0 /* this */
            aload 4 /* e */
            aload 2 /* files */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
        end local 4 // java.util.zip.ZipEntry e
         4: .line 1472
      StackMap locals:
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
         5: ifnonnull 2
         6: .line 1482
            return
        end local 4 // java.util.zip.ZipEntry e
        end local 3 // java.util.zip.ZipInputStream zis
        end local 2 // java.lang.String[] files
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1     in  Ljava/io/InputStream;
            0    7     2  files  [Ljava/lang/String;
            1    7     3    zis  Ljava/util/zip/ZipInputStream;
            2    4     4      e  Ljava/util/zip/ZipEntry;
            5    7     4      e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      in     
      files  

  void list(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String fname
        start local 2 // java.lang.String[] files
         0: .line 1488
            new java.util.zip.ZipFile
            dup
            aload 1 /* fname */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 3 /* zf */
        start local 3 // java.util.zip.ZipFile zf
         1: .line 1489
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 4 /* zes */
        start local 4 // java.util.Enumeration zes
         2: .line 1490
            goto 4
         3: .line 1491
      StackMap locals: java.util.zip.ZipFile java.util.Enumeration
      StackMap stack:
            aload 0 /* this */
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            aload 2 /* files */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
         4: .line 1490
      StackMap locals:
      StackMap stack:
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 1493
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
         6: .line 1494
            return
        end local 4 // java.util.Enumeration zes
        end local 3 // java.util.zip.ZipFile zf
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String fname
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1  fname  Ljava/lang/String;
            0    7     2  files  [Ljava/lang/String;
            1    7     3     zf  Ljava/util/zip/ZipFile;
            2    7     4    zes  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fname  
      files  

  void dumpIndex(java.lang.String, jdk.internal.util.jar.JarIndex);
    descriptor: (Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // jdk.internal.util.jar.JarIndex index
         0: .line 1501
            new java.io.File
            dup
            aload 1 /* rootjar */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* jarFile */
        start local 3 // java.io.File jarFile
         1: .line 1502
            aload 3 /* jarFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 4 /* jarPath */
        start local 4 // java.nio.file.Path jarPath
         2: .line 1503
            aload 3 /* jarFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 5 /* tmpPath */
        start local 5 // java.nio.file.Path tmpPath
         3: .line 1505
            aload 0 /* this */
            aload 4 /* jarPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
         4: .line 1506
            aload 5 /* tmpPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
         5: .line 1507
            aconst_null
            aconst_null
            aload 2 /* index */
         6: .line 1505
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
         7: .line 1507
            ifeq 15
         8: .line 1509
            aload 5 /* tmpPath */
            aload 4 /* jarPath */
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
         9: .line 1510
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String jdk.internal.util.jar.JarIndex java.io.File java.nio.file.Path java.nio.file.Path
      StackMap stack: java.io.IOException
        10: astore 6 /* e */
        start local 6 // java.io.IOException e
        11: .line 1511
            new java.io.IOException
            dup
            ldc "error.write.file"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.io.IOException e
        12: .line 1514
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        13: .line 1515
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        14: .line 1516
            aload 7
            athrow
        15: .line 1515
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        16: .line 1517
            return
        end local 5 // java.nio.file.Path tmpPath
        end local 4 // java.nio.file.Path jarPath
        end local 3 // java.io.File jarFile
        end local 2 // jdk.internal.util.jar.JarIndex index
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1  rootjar  Ljava/lang/String;
            0   17     2    index  Ljdk/internal/util/jar/JarIndex;
            1   17     3  jarFile  Ljava/io/File;
            2   17     4  jarPath  Ljava/nio/file/Path;
            3   17     5  tmpPath  Ljava/nio/file/Path;
           11   12     6        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
           3    12      12  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rootjar  
      index    

  java.util.List<java.lang.String> getJarPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String jar
         0: .line 1526
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.List files
         1: .line 1527
            aload 2 /* files */
            aload 1 /* jar */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1528
            aload 0 /* this */
            getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
            aload 1 /* jar */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1531
            aload 1 /* jar */
            iconst_0
            iconst_0
            aload 1 /* jar */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 1536
            new java.util.jar.JarFile
            dup
            aload 1 /* jar */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 4 /* rf */
        start local 4 // java.util.jar.JarFile rf
         5: .line 1538
            aload 4 /* rf */
            ifnull 20
         6: .line 1539
            aload 4 /* rf */
            invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
            astore 5 /* man */
        start local 5 // java.util.jar.Manifest man
         7: .line 1540
            aload 5 /* man */
            ifnull 20
         8: .line 1541
            aload 5 /* man */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 6 /* attr */
        start local 6 // java.util.jar.Attributes attr
         9: .line 1542
            aload 6 /* attr */
            ifnull 20
        10: .line 1543
            aload 6 /* attr */
            getstatic java.util.jar.Attributes$Name.CLASS_PATH:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        11: .line 1544
            aload 7 /* value */
            ifnull 20
        12: .line 1545
            new java.util.StringTokenizer
            dup
            aload 7 /* value */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 8 /* st */
        start local 8 // java.util.StringTokenizer st
        13: .line 1546
            goto 19
        14: .line 1547
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.util.StringTokenizer
      StackMap stack:
            aload 8 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 9 /* ajar */
        start local 9 // java.lang.String ajar
        15: .line 1548
            aload 9 /* ajar */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 19
        16: .line 1549
            aload 3 /* path */
            aload 9 /* ajar */
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* ajar */
        17: .line 1551
            aload 0 /* this */
            getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
            aload 9 /* ajar */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 1552
            aload 2 /* files */
            aload 0 /* this */
            aload 9 /* ajar */
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 9 // java.lang.String ajar
        19: .line 1546
      StackMap locals:
      StackMap stack:
            aload 8 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 14
        end local 8 // java.util.StringTokenizer st
        end local 7 // java.lang.String value
        end local 6 // java.util.jar.Attributes attr
        end local 5 // java.util.jar.Manifest man
        20: .line 1560
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile
      StackMap stack:
            aload 4 /* rf */
            invokevirtual java.util.jar.JarFile.close:()V
        21: .line 1561
            aload 2 /* files */
            areturn
        end local 4 // java.util.jar.JarFile rf
        end local 3 // java.lang.String path
        end local 2 // java.util.List files
        end local 1 // java.lang.String jar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lsun/tools/jar/Main;
            0   22     1    jar  Ljava/lang/String;
            1   22     2  files  Ljava/util/List<Ljava/lang/String;>;
            4   22     3   path  Ljava/lang/String;
            5   22     4     rf  Ljava/util/jar/JarFile;
            7   20     5    man  Ljava/util/jar/Manifest;
            9   20     6   attr  Ljava/util/jar/Attributes;
           11   20     7  value  Ljava/lang/String;
           13   20     8     st  Ljava/util/StringTokenizer;
           15   19     9   ajar  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      jar   

  void genIndex(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // java.lang.String[] files
         0: .line 1568
            aload 0 /* this */
            aload 1 /* rootjar */
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            astore 3 /* jars */
        start local 3 // java.util.List jars
         1: .line 1569
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
        start local 4 // int njars
         2: .line 1572
            iload 4 /* njars */
            iconst_1
            if_icmpne 9
            aload 2 /* files */
            ifnull 9
         3: .line 1575
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 7
         5: .line 1576
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int top int
      StackMap stack:
            aload 3 /* jars */
            aload 0 /* this */
            aload 2 /* files */
            iload 6 /* i */
            aaload
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 1575
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 6 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 5
        end local 6 // int i
         8: .line 1578
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
         9: .line 1580
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int
      StackMap stack:
            aload 3 /* jars */
            iload 4 /* njars */
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 5 /* jarfiles */
        start local 5 // java.lang.String[] jarfiles
        10: .line 1581
            new jdk.internal.util.jar.JarIndex
            dup
            aload 5 /* jarfiles */
            invokespecial jdk.internal.util.jar.JarIndex.<init>:([Ljava/lang/String;)V
            astore 6 /* index */
        start local 6 // jdk.internal.util.jar.JarIndex index
        11: .line 1582
            aload 0 /* this */
            aload 1 /* rootjar */
            aload 6 /* index */
            invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
        12: .line 1583
            return
        end local 6 // jdk.internal.util.jar.JarIndex index
        end local 5 // java.lang.String[] jarfiles
        end local 4 // int njars
        end local 3 // java.util.List jars
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/tools/jar/Main;
            0   13     1   rootjar  Ljava/lang/String;
            0   13     2     files  [Ljava/lang/String;
            1   13     3      jars  Ljava/util/List<Ljava/lang/String;>;
            2   13     4     njars  I
           10   13     5  jarfiles  [Ljava/lang/String;
            4    8     6         i  I
           11   13     6     index  Ljdk/internal/util/jar/JarIndex;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rootjar  
      files    

  void printEntry(java.util.zip.ZipEntry, java.lang.String[]);
    descriptor: (Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.lang.String[] files
         0: .line 1589
            aload 2 /* files */
            ifnonnull 3
         1: .line 1590
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         2: .line 1591
            goto 11
         3: .line 1592
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         4: .line 1593
            aload 2 /* files */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[] java.lang.String top int int java.lang.String[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* file */
        start local 4 // java.lang.String file
         6: .line 1594
            aload 3 /* name */
            aload 4 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 1595
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         8: .line 1596
            return
        end local 4 // java.lang.String file
         9: .line 1593
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 5
        end local 3 // java.lang.String name
        11: .line 1600
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[]
      StackMap stack:
            return
        end local 2 // java.lang.String[] files
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lsun/tools/jar/Main;
            0   12     1      e  Ljava/util/zip/ZipEntry;
            0   12     2  files  [Ljava/lang/String;
            4   11     3   name  Ljava/lang/String;
            6    9     4   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      e      
      files  

  void printEntry(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
         0: .line 1606
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
         1: .line 1607
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 1608
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         3: .line 1609
            bipush 6
            aload 3 /* s */
            invokevirtual java.lang.String.length:()I
            isub
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 1610
      StackMap locals: java.lang.StringBuilder java.lang.String int
      StackMap stack:
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 1609
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            ifgt 5
        end local 4 // int i
         8: .line 1612
            aload 2 /* sb */
            aload 3 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.Date.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1613
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1614
            aload 0 /* this */
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 3 // java.lang.String s
        end local 2 // java.lang.StringBuilder sb
        11: .line 1615
            goto 13
        12: .line 1616
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        13: .line 1618
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/tools/jar/Main;
            0   14     1     e  Ljava/util/zip/ZipEntry;
            2   11     2    sb  Ljava/lang/StringBuilder;
            3   11     3     s  Ljava/lang/String;
            4    8     4     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     

  void usageError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1624
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1625
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            ldc "main.usage.summary.try"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 1626
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/jar/Main;
            0    3     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  void fatalError(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.Exception e
         0: .line 1632
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         1: .line 1633
            return
        end local 1 // java.lang.Exception e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     e  Ljava/lang/Exception;
    MethodParameters:
      Name  Flags
      e     

  void fatalError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1640
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.program: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 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         1: .line 1641
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  protected void output(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1647
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1648
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  void error(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1654
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1655
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1661
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1662
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 1668
            new sun.tools.jar.Main
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "jar"
            invokespecial sun.tools.jar.Main.<init>:(Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
            astore 1 /* jartool */
        start local 1 // sun.tools.jar.Main jartool
         1: .line 1669
            aload 1 /* jartool */
            aload 0 /* args */
            invokevirtual sun.tools.jar.Main.run:([Ljava/lang/String;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: sun.tools.jar.Main
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: invokestatic java.lang.System.exit:(I)V
         4: .line 1670
            return
        end local 1 // sun.tools.jar.Main jartool
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     args  [Ljava/lang/String;
            1    5     1  jartool  Lsun/tools/jar/Main;
    MethodParameters:
      Name  Flags
      args  

  private java.io.File createTemporaryFile(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String tmpbase
        start local 2 // java.lang.String suffix
         0: .line 1709
            aconst_null
            astore 3 /* tmpfile */
        start local 3 // java.io.File tmpfile
         1: .line 1712
            aload 1 /* tmpbase */
            aload 2 /* suffix */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 3 /* tmpfile */
         2: .line 1713
            goto 4
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String java.io.File
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 1716
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            ifnonnull 13
         5: .line 1718
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 12
         6: .line 1720
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 4 /* tmpfolder */
        start local 4 // java.io.File tmpfolder
         7: .line 1721
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc ".tmp"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* tmpfolder */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            astore 3 /* tmpfile */
        end local 4 // java.io.File tmpfolder
         8: .line 1722
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         9: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        10: .line 1724
            aload 0 /* this */
            aload 4 /* ioe */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        end local 4 // java.io.IOException ioe
        11: .line 1726
            goto 13
        12: .line 1728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.IOException
            dup
            ldc "error.create.tempfile"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        13: .line 1731
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            areturn
        end local 3 // java.io.File tmpfile
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String tmpbase
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lsun/tools/jar/Main;
            0   14     1    tmpbase  Ljava/lang/String;
            0   14     2     suffix  Ljava/lang/String;
            1   14     3    tmpfile  Ljava/io/File;
            7    8     4  tmpfolder  Ljava/io/File;
           10   11     4        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           1     2       3  Class java.lang.SecurityException
           6     8       9  Class java.io.IOException
    MethodParameters:
         Name  Flags
      tmpbase  
      suffix   

  private boolean describeModule(java.util.zip.ZipFile);
    descriptor: (Ljava/util/zip/ZipFile;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipFile zipFile
         0: .line 1784
            aload 1 /* zipFile */
            invokevirtual java.util.zip.ZipFile.stream:()Ljava/util/stream/Stream;
         1: .line 1785
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$9(Ljava/util/zip/ZipEntry;)Z (6)
                  (Ljava/util/zip/ZipEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 1786
            getstatic sun.tools.jar.Main.ENTRY_COMPARATOR:Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
         3: .line 1787
            aload 1 /* zipFile */
            invokedynamic apply(Ljava/util/zip/ZipFile;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$10(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
                  (Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 1788
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$11(I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
                  (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast sun.tools.jar.Main$ZipFileModuleInfoEntry[]
         5: .line 1784
            astore 2 /* infos */
        start local 2 // sun.tools.jar.Main$ZipFileModuleInfoEntry[] infos
         6: .line 1790
            aload 2 /* infos */
            arraylength
            ifne 24
         7: .line 1792
            aload 1 /* zipFile */
            invokevirtual java.util.zip.ZipFile.getName:()Ljava/lang/String;
            astore 3 /* fn */
        start local 3 // java.lang.String fn
         8: .line 1793
            iconst_1
            anewarray java.nio.file.Path
            dup
            iconst_0
            aload 3 /* fn */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aastore
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            astore 4 /* mf */
        start local 4 // java.lang.module.ModuleFinder mf
         9: .line 1795
            aload 4 /* mf */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 5 /* mref */
        start local 5 // java.util.Set mref
        10: .line 1796
            aload 5 /* mref */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 13
        11: .line 1797
            aload 0 /* this */
            ldc "error.unable.derive.automodule"
            aload 3 /* fn */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        12: .line 1798
            iconst_1
            ireturn
        13: .line 1800
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            aload 5 /* mref */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 6 /* md */
        start local 6 // java.lang.module.ModuleDescriptor md
        14: .line 1801
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "out.automodule"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        15: .line 1802
            aload 0 /* this */
            aload 6 /* md */
            aconst_null
            aconst_null
            ldc ""
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
        end local 6 // java.lang.module.ModuleDescriptor md
        end local 5 // java.util.Set mref
        16: .line 1803
            goto 25
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder
      StackMap stack: java.lang.module.FindException
        17: astore 5 /* e */
        start local 5 // java.lang.module.FindException e
        18: .line 1804
            ldc "error.unable.derive.automodule"
            aload 3 /* fn */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
        19: .line 1805
            aload 5 /* e */
            invokevirtual java.lang.module.FindException.getCause:()Ljava/lang/Throwable;
            astore 7 /* t */
        start local 7 // java.lang.Throwable t
        20: .line 1806
            aload 7 /* t */
            ifnull 22
        21: .line 1807
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        22: .line 1808
      StackMap locals: java.lang.module.FindException java.lang.String java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 7 // java.lang.Throwable t
        end local 6 // java.lang.String msg
        end local 5 // java.lang.module.FindException e
        end local 4 // java.lang.module.ModuleFinder mf
        end local 3 // java.lang.String fn
        23: .line 1810
            goto 25
        24: .line 1811
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[]
      StackMap stack:
            aload 0 /* this */
            aload 2 /* infos */
            invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ireturn
        25: .line 1813
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // sun.tools.jar.Main$ZipFileModuleInfoEntry[] infos
        end local 1 // java.util.zip.ZipFile zipFile
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lsun/tools/jar/Main;
            0   26     1  zipFile  Ljava/util/zip/ZipFile;
            6   26     2    infos  [Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            8   23     3       fn  Ljava/lang/String;
            9   23     4       mf  Ljava/lang/module/ModuleFinder;
           10   16     5     mref  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           14   16     6       md  Ljava/lang/module/ModuleDescriptor;
           18   23     5        e  Ljava/lang/module/FindException;
           19   23     6      msg  Ljava/lang/String;
           20   23     7        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    12      17  Class java.lang.module.FindException
          13    16      17  Class java.lang.module.FindException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      zipFile  

  private boolean describeModuleFromStream(java.io.FileInputStream);
    descriptor: (Ljava/io/FileInputStream;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.FileInputStream fis
         0: .line 1819
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* infos */
        start local 2 // java.util.List infos
         1: .line 1821
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.BufferedInputStream
            dup
            aload 1 /* fis */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* bis */
        start local 5 // java.io.BufferedInputStream bis
         3: .line 1822
            new java.util.zip.ZipInputStream
            dup
            aload 5 /* bis */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
         4: .line 1824
            goto 8
        start local 7 // java.util.zip.ZipEntry e
         5: .line 1825
      StackMap locals: sun.tools.jar.Main java.io.FileInputStream java.util.List java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 8 /* ename */
        start local 8 // java.lang.String ename
         6: .line 1826
            aload 8 /* ename */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 1827
            aload 2 /* infos */
            new sun.tools.jar.Main$StreamedModuleInfoEntry
            dup
            aload 8 /* ename */
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
            invokespecial sun.tools.jar.Main$StreamedModuleInfoEntry.<init>:(Ljava/lang/String;[B)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String ename
        end local 7 // java.util.zip.ZipEntry e
         8: .line 1824
      StackMap locals:
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
         9: ifnonnull 5
        end local 7 // java.util.zip.ZipEntry e
        10: .line 1830
            aload 6 /* zis */
            ifnull 13
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 6 /* zis */
            ifnull 12
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        end local 6 // java.util.zip.ZipInputStream zis
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        13: aload 5 /* bis */
            ifnull 21
            aload 5 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 3
            ifnonnull 15
            aload 4
            astore 3
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3
            aload 4
            if_acmpeq 16
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 5 /* bis */
            ifnull 17
            aload 5 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        end local 5 // java.io.BufferedInputStream bis
      StackMap locals:
      StackMap stack:
        17: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
            aload 3
            ifnonnull 19
            aload 4
            astore 3
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 3
            aload 4
            if_acmpeq 20
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 3
            athrow
        21: .line 1832
      StackMap locals:
      StackMap stack:
            aload 2 /* infos */
            invokeinterface java.util.List.size:()I
            ifne 23
        22: .line 1833
            iconst_0
            ireturn
        23: .line 1835
      StackMap locals:
      StackMap stack:
            aload 2 /* infos */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        24: .line 1836
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
            getstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        25: .line 1837
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$13(I)[Lsun/tools/jar/Main$ModuleInfoEntry; (6)
                  (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast sun.tools.jar.Main$ModuleInfoEntry[]
        26: .line 1835
            astore 3 /* sorted */
        start local 3 // sun.tools.jar.Main$ModuleInfoEntry[] sorted
        27: .line 1839
            aload 0 /* this */
            aload 3 /* sorted */
            invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ireturn
        end local 3 // sun.tools.jar.Main$ModuleInfoEntry[] sorted
        end local 2 // java.util.List infos
        end local 1 // java.io.FileInputStream fis
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0    this  Lsun/tools/jar/Main;
            0   28     1     fis  Ljava/io/FileInputStream;
            1   28     2   infos  Ljava/util/List<Lsun/tools/jar/Main$ModuleInfoEntry;>;
            3   17     5     bis  Ljava/io/BufferedInputStream;
            4   12     6     zis  Ljava/util/zip/ZipInputStream;
            5    8     7       e  Ljava/util/zip/ZipEntry;
            9   10     7       e  Ljava/util/zip/ZipEntry;
            6    8     8   ename  Ljava/lang/String;
           27   28     3  sorted  [Lsun/tools/jar/Main$ModuleInfoEntry;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      14  any
           2    18      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fis   

  private boolean lessThanEqualReleaseValue(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.tools.jar.Main$ModuleInfoEntry entry
         0: .line 1843
            aload 1 /* entry */
            invokestatic sun.tools.jar.Main.intVersionFromEntry:(Lsun/tools/jar/Main$ModuleInfoEntry;)I
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            if_icmpgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // sun.tools.jar.Main$ModuleInfoEntry entry
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/tools/jar/Main;
            0    3     1  entry  Lsun/tools/jar/Main$ModuleInfoEntry;
    MethodParameters:
       Name  Flags
      entry  

  private static java.lang.String versionFromEntryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 1847
            aload 0 /* name */
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 1848
            aload 1 /* s */
            iconst_0
            aload 1 /* s */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String s
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
            1    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static int intVersionFromEntry(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.tools.jar.Main$ModuleInfoEntry entry
         0: .line 1852
            aload 0 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 1853
            aload 1 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 1854
            iconst_0
            ireturn
         3: .line 1856
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* name */
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         4: .line 1857
            aload 2 /* s */
            iconst_0
            aload 2 /* s */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* s */
         5: .line 1858
            aload 2 /* s */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.String s
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main$ModuleInfoEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  entry  Lsun/tools/jar/Main$ModuleInfoEntry;
            1    6     1   name  Ljava/lang/String;
            4    6     2      s  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      entry  

  private boolean describeModuleFromEntries(sun.tools.jar.Main$ModuleInfoEntry[]);
    descriptor: ([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.tools.jar.Main$ModuleInfoEntry[] infos
         0: .line 1869
            getstatic sun.tools.jar.Main.$assertionsDisabled:Z
            ifne 1
            aload 1 /* infos */
            arraylength
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1872
      StackMap locals:
      StackMap stack:
            aload 1 /* infos */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 1873
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$14(Lsun/tools/jar/Main$ModuleInfoEntry;)Z (6)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 1874
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 1875
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.versionFromEntryName(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 1876
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         6: .line 1872
            astore 2 /* releases */
        start local 2 // java.lang.String releases
         7: .line 1877
            aload 2 /* releases */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 1878
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "releases: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* releases */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         9: .line 1881
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            iconst_m1
            if_icmpeq 31
        10: .line 1882
            aconst_null
            astore 3 /* entry */
        start local 3 // sun.tools.jar.Main$ModuleInfoEntry entry
        11: .line 1883
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: .line 1884
            goto 15
        13: .line 1885
      StackMap locals: sun.tools.jar.Main$ModuleInfoEntry int
      StackMap stack:
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            astore 3 /* entry */
        14: .line 1886
            iinc 4 /* i */ 1
        15: .line 1884
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 1 /* infos */
            arraylength
            if_icmpge 16
            aload 0 /* this */
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            invokevirtual sun.tools.jar.Main.lessThanEqualReleaseValue:(Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ifne 13
        16: .line 1889
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            ifnonnull 21
        17: .line 1890
            aload 0 /* this */
            ldc "error.no.operative.descriptor"
        18: .line 1891
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
        19: .line 1890
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        20: .line 1892
            iconst_0
            ireturn
        21: .line 1895
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
            ldc ""
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* uriString */
        start local 5 // java.lang.String uriString
        22: .line 1896
            aconst_null
            astore 6
            aconst_null
            astore 7
        23: aload 3 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
            astore 8 /* is */
        start local 8 // java.io.InputStream is
        24: .line 1897
            aload 0 /* this */
            aload 8 /* is */
            aload 5 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
        25: .line 1898
            aload 8 /* is */
            ifnull 43
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 43
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String sun.tools.jar.Main$ModuleInfoEntry int java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        26: astore 6
            aload 8 /* is */
            ifnull 27
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        27: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 7
            aload 6
            ifnonnull 29
            aload 7
            astore 6
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 6
            aload 7
            if_acmpeq 30
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 6
            athrow
        end local 5 // java.lang.String uriString
        end local 4 // int i
        end local 3 // sun.tools.jar.Main$ModuleInfoEntry entry
        31: .line 1901
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String
      StackMap stack:
            aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        32: .line 1902
            aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
            ldc ""
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* uriString */
        start local 3 // java.lang.String uriString
        33: .line 1903
            aconst_null
            astore 4
            aconst_null
            astore 5
        34: aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
            astore 6 /* is */
        start local 6 // java.io.InputStream is
        35: .line 1904
            aload 0 /* this */
            aload 6 /* is */
            aload 3 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
        36: .line 1905
            aload 6 /* is */
            ifnull 43
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 43
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        37: astore 4
            aload 6 /* is */
            ifnull 38
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        38: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 5
            aload 4
            ifnonnull 40
            aload 5
            astore 4
            goto 41
      StackMap locals:
      StackMap stack:
        40: aload 4
            aload 5
            if_acmpeq 41
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        41: aload 4
            athrow
        end local 3 // java.lang.String uriString
        42: .line 1908
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.no.root.descriptor"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        43: .line 1911
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.String releases
        end local 1 // sun.tools.jar.Main$ModuleInfoEntry[] infos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   44     0       this  Lsun/tools/jar/Main;
            0   44     1      infos  [Lsun/tools/jar/Main$ModuleInfoEntry;
            7   44     2   releases  Ljava/lang/String;
           11   31     3      entry  Lsun/tools/jar/Main$ModuleInfoEntry;
           12   31     4          i  I
           22   31     5  uriString  Ljava/lang/String;
           24   27     8         is  Ljava/io/InputStream;
           33   42     3  uriString  Ljava/lang/String;
           35   38     6         is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
          24    25      26  any
          23    28      28  any
          35    36      37  any
          34    39      39  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      infos  

  static <T> java.lang.String toString(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Collection set
         0: .line 1915
            aload 0 /* set */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 1
            ldc ""
            areturn
         1: .line 1916
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* set */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$17(Ljava/lang/Object;)Ljava/lang/String; (6)
                  (Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 1917
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1916
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.util.Collection set
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   set  Ljava/util/Collection<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      set   

  private void describeModule(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream entryInputStream
        start local 2 // java.lang.String uriString
         0: .line 1924
            aload 1 /* entryInputStream */
            aconst_null
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            astore 3 /* attrs */
        start local 3 // jdk.internal.module.ModuleInfo$Attributes attrs
         1: .line 1925
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* md */
        start local 4 // java.lang.module.ModuleDescriptor md
         2: .line 1926
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.target:()Ljdk/internal/module/ModuleTarget;
            astore 5 /* target */
        start local 5 // jdk.internal.module.ModuleTarget target
         3: .line 1927
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.recordedHashes:()Ljdk/internal/module/ModuleHashes;
            astore 6 /* hashes */
        start local 6 // jdk.internal.module.ModuleHashes hashes
         4: .line 1929
            aload 0 /* this */
            aload 4 /* md */
            aload 5 /* target */
            aload 6 /* hashes */
            aload 2 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
         5: .line 1930
            return
        end local 6 // jdk.internal.module.ModuleHashes hashes
        end local 5 // jdk.internal.module.ModuleTarget target
        end local 4 // java.lang.module.ModuleDescriptor md
        end local 3 // jdk.internal.module.ModuleInfo$Attributes attrs
        end local 2 // java.lang.String uriString
        end local 1 // java.io.InputStream entryInputStream
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lsun/tools/jar/Main;
            0    6     1  entryInputStream  Ljava/io/InputStream;
            0    6     2         uriString  Ljava/lang/String;
            1    6     3             attrs  Ljdk/internal/module/ModuleInfo$Attributes;
            2    6     4                md  Ljava/lang/module/ModuleDescriptor;
            3    6     5            target  Ljdk/internal/module/ModuleTarget;
            4    6     6            hashes  Ljdk/internal/module/ModuleHashes;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      entryInputStream  
      uriString         

  private void describeModule(java.lang.module.ModuleDescriptor, jdk.internal.module.ModuleTarget, jdk.internal.module.ModuleHashes, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=5
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.module.ModuleDescriptor md
        start local 2 // jdk.internal.module.ModuleTarget target
        start local 3 // jdk.internal.module.ModuleHashes hashes
        start local 4 // java.lang.String uriString
         0: .line 1938
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         1: .line 1940
            aload 5 /* sb */
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.toNameAndVersion:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1942
            aload 4 /* uriString */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 1943
            aload 5 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* uriString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1944
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 6
         5: .line 1945
            aload 5 /* sb */
            ldc " open"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1946
      StackMap locals:
      StackMap stack:
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 8
         7: .line 1947
            aload 5 /* sb */
            ldc " automatic"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1948
      StackMap locals:
      StackMap stack:
            aload 5 /* sb */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1951
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        10: .line 1952
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        11: .line 1953
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$19(Ljava/lang/module/ModuleDescriptor$Exports;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        12: .line 1954
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$20(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        13: .line 1958
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        14: .line 1959
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$21(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        15: .line 1963
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        16: .line 1964
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$22(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        17: .line 1966
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        18: .line 1967
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        19: .line 1968
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$24(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        20: .line 1974
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        21: .line 1975
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        22: .line 1976
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/module/ModuleDescriptor$Exports.isQualified()Z (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        23: .line 1977
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$27(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        24: .line 1982
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        25: .line 1983
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        26: .line 1984
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$29(Ljava/lang/module/ModuleDescriptor$Opens;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        27: .line 1985
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$30(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        28: .line 1989
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        29: .line 1990
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        30: .line 1991
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/module/ModuleDescriptor$Opens.isQualified()Z (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        31: .line 1992
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$33(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        32: .line 1998
            new java.util.TreeSet
            dup
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* concealed */
        start local 6 // java.util.Set concealed
        33: .line 1999
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 6 /* concealed */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        34: .line 2000
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 6 /* concealed */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        35: .line 2001
            aload 6 /* concealed */
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$38(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        36: .line 2003
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$39(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
        37: .line 2005
            aload 2 /* target */
            ifnull 41
        38: .line 2006
            aload 2 /* target */
            invokevirtual jdk.internal.module.ModuleTarget.targetPlatform:()Ljava/lang/String;
            astore 9 /* targetPlatform */
        start local 9 // java.lang.String targetPlatform
        39: .line 2007
            aload 9 /* targetPlatform */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 41
        40: .line 2008
            aload 5 /* sb */
            ldc "platform "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* targetPlatform */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // java.lang.String targetPlatform
        41: .line 2011
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* hashes */
            ifnull 45
        42: .line 2012
            aload 3 /* hashes */
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        43: .line 2013
            aload 5 /* sb */
            aload 3 /* hashes */
            invokedynamic accept(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$40(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
        44: .line 2012
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        45: .line 2019
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        46: .line 2020
            return
        end local 6 // java.util.Set concealed
        end local 5 // java.lang.StringBuilder sb
        end local 4 // java.lang.String uriString
        end local 3 // jdk.internal.module.ModuleHashes hashes
        end local 2 // jdk.internal.module.ModuleTarget target
        end local 1 // java.lang.module.ModuleDescriptor md
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0            this  Lsun/tools/jar/Main;
            0   47     1              md  Ljava/lang/module/ModuleDescriptor;
            0   47     2          target  Ljdk/internal/module/ModuleTarget;
            0   47     3          hashes  Ljdk/internal/module/ModuleHashes;
            0   47     4       uriString  Ljava/lang/String;
            1   47     5              sb  Ljava/lang/StringBuilder;
           33   47     6       concealed  Ljava/util/Set<Ljava/lang/String;>;
           39   41     9  targetPlatform  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      md         
      target     
      hashes     
      uriString  

  private static java.lang.String toHex(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // byte[] ba
         0: .line 2023
            new java.lang.StringBuilder
            dup
            aload 0 /* ba */
            arraylength
            iconst_1
            ishl
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 2024
            aload 0 /* ba */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
         2: aload 5
            iload 3
            baload
            istore 2 /* b */
        start local 2 // byte b
         3: .line 2025
            aload 1 /* sb */
            ldc "%02x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* b */
            sipush 255
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // byte b
         4: .line 2024
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 2027
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // byte[] ba
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    ba  [B
            1    7     1    sb  Ljava/lang/StringBuilder;
            3    4     2     b  B
    MethodParameters:
      Name  Flags
      ba    

  static java.lang.String toBinaryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String classname
         0: .line 2031
            new java.lang.StringBuilder
            dup
            aload 0 /* classname */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String classname
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  classname  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      classname  

  private boolean checkModuleInfo(byte[], java.util.Set<java.lang.String>);
    descriptor: ([BLjava/util/Set;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // byte[] moduleInfoBytes
        start local 2 // java.util.Set entries
         0: .line 2037
            iconst_1
            istore 3 /* ok */
        start local 3 // boolean ok
         1: .line 2038
            aload 1 /* moduleInfoBytes */
            ifnull 13
         2: .line 2041
            aload 1 /* moduleInfoBytes */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
            astore 4 /* md */
        start local 4 // java.lang.module.ModuleDescriptor md
         3: .line 2043
            aload 4 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Provides.providers()Ljava/util/List; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 2044
            aload 2 /* entries */
            invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$43(Ljava/util/Set;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 2045
            aload 0 /* this */
            invokedynamic accept(Lsun/tools/jar/Main;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$44(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.peek:(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
         6: .line 2046
            invokeinterface java.util.stream.Stream.count:()J
            lconst_0
         7: .line 2043
            lcmp
            ifeq 13
         8: .line 2047
            iconst_0
            istore 3 /* ok */
        end local 4 // java.lang.module.ModuleDescriptor md
         9: .line 2049
            goto 13
      StackMap locals: sun.tools.jar.Main byte[] java.util.Set int
      StackMap stack: java.lang.module.InvalidModuleDescriptorException
        10: astore 4 /* x */
        start local 4 // java.lang.module.InvalidModuleDescriptorException x
        11: .line 2050
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual java.lang.module.InvalidModuleDescriptorException.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
        12: .line 2051
            iconst_0
            istore 3 /* ok */
        end local 4 // java.lang.module.InvalidModuleDescriptorException x
        13: .line 2054
      StackMap locals:
      StackMap stack:
            iload 3 /* ok */
            ireturn
        end local 3 // boolean ok
        end local 2 // java.util.Set entries
        end local 1 // byte[] moduleInfoBytes
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lsun/tools/jar/Main;
            0   14     1  moduleInfoBytes  [B
            0   14     2          entries  Ljava/util/Set<Ljava/lang/String;>;
            1   14     3               ok  Z
            3    9     4               md  Ljava/lang/module/ModuleDescriptor;
           11   13     4                x  Ljava/lang/module/InvalidModuleDescriptorException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.lang.module.InvalidModuleDescriptorException
    Exceptions:
      throws java.io.IOException
    Signature: ([BLjava/util/Set<Ljava/lang/String;>;)Z
    MethodParameters:
                 Name  Flags
      moduleInfoBytes  
      entries          

  private void addExtendedModuleAttributes(java.util.Map<java.lang.String, byte[]>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Map;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map moduleInfos
        start local 2 // java.util.Set packages
         0: .line 2065
            aload 1 /* moduleInfos */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         2: .line 2066
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
            astore 5 /* md */
        start local 5 // java.lang.module.ModuleDescriptor md
         3: .line 2067
            aload 3 /* e */
            aload 0 /* this */
            aload 5 /* md */
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            aload 2 /* packages */
            invokevirtual sun.tools.jar.Main.extendedInfoBytes:(Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
            invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.module.ModuleDescriptor md
        end local 3 // java.util.Map$Entry e
         4: .line 2065
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 2069
            return
        end local 2 // java.util.Set packages
        end local 1 // java.util.Map moduleInfos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lsun/tools/jar/Main;
            0    6     1  moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0    6     2     packages  Ljava/util/Set<Ljava/lang/String;>;
            2    4     3            e  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    4     5           md  Ljava/lang/module/ModuleDescriptor;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
             Name  Flags
      moduleInfos  
      packages     

  static boolean isModuleInfoEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 2073
            aload 0 /* name */
            ldc "module-info.class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 14
         1: .line 2074
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            ldc "module-info.class"
            invokevirtual java.lang.String.length:()I
            isub
            istore 1 /* end */
        start local 1 // int end
         2: .line 2075
            iload 1 /* end */
            ifne 4
         3: .line 2076
            iconst_1
            ireturn
         4: .line 2077
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
         5: .line 2078
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            istore 2 /* off */
        start local 2 // int off
         6: .line 2079
            iload 2 /* off */
            iload 1 /* end */
            if_icmpne 11
         7: .line 2080
            iconst_0
            ireturn
         8: .line 2082
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* off */
            iinc 2 /* off */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         9: .line 2083
            iload 3 /* c */
            bipush 48
            if_icmplt 10
            iload 3 /* c */
            bipush 57
            if_icmple 11
        10: .line 2084
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // char c
        11: .line 2081
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 1 /* end */
            iconst_1
            isub
            if_icmplt 8
        12: .line 2086
            aload 0 /* name */
            iload 2 /* off */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        end local 2 // int off
        end local 1 // int end
        14: .line 2089
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  name  Ljava/lang/String;
            2   14     1   end  I
            6   14     2   off  I
            9   11     3     c  C
    MethodParameters:
      Name  Flags
      name  

  private byte[] extendedInfoBytes(java.lang.module.ModuleDescriptor, byte[], java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.module.ModuleDescriptor md
        start local 2 // byte[] miBytes
        start local 3 // java.util.Set packages
         0: .line 2105
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* baos */
        start local 4 // java.io.ByteArrayOutputStream baos
         1: .line 2106
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* miBytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 5 /* is */
        start local 5 // java.io.InputStream is
         2: .line 2107
            aload 5 /* is */
            invokestatic jdk.internal.module.ModuleInfoExtender.newExtender:(Ljava/io/InputStream;)Ljdk/internal/module/ModuleInfoExtender;
            astore 6 /* extender */
        start local 6 // jdk.internal.module.ModuleInfoExtender extender
         3: .line 2110
            aload 6 /* extender */
            aload 3 /* packages */
            invokevirtual jdk.internal.module.ModuleInfoExtender.packages:(Ljava/util/Set;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         4: .line 2113
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 6
         5: .line 2114
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual jdk.internal.module.ModuleInfoExtender.mainClass:(Ljava/lang/String;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         6: .line 2117
      StackMap locals: java.io.ByteArrayOutputStream java.io.InputStream jdk.internal.module.ModuleInfoExtender
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnull 8
         7: .line 2118
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            invokevirtual jdk.internal.module.ModuleInfoExtender.version:(Ljava/lang/module/ModuleDescriptor$Version;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         8: .line 2121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 16
         9: .line 2122
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 7 /* mn */
        start local 7 // java.lang.String mn
        10: .line 2123
            new sun.tools.jar.Main$Hasher
            dup
            aload 0 /* this */
            aload 1 /* md */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial sun.tools.jar.Main$Hasher.<init>:(Lsun/tools/jar/Main;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
            astore 8 /* hasher */
        start local 8 // sun.tools.jar.Main$Hasher hasher
        11: .line 2124
            aload 8 /* hasher */
            aload 7 /* mn */
            invokevirtual sun.tools.jar.Main$Hasher.computeHashes:(Ljava/lang/String;)Ljdk/internal/module/ModuleHashes;
            astore 9 /* moduleHashes */
        start local 9 // jdk.internal.module.ModuleHashes moduleHashes
        12: .line 2125
            aload 9 /* moduleHashes */
            ifnull 15
        13: .line 2126
            aload 6 /* extender */
            aload 9 /* moduleHashes */
            invokevirtual jdk.internal.module.ModuleInfoExtender.hashes:(Ljdk/internal/module/ModuleHashes;)Ljdk/internal/module/ModuleInfoExtender;
            pop
        14: .line 2127
            goto 16
        15: .line 2128
      StackMap locals: java.lang.String sun.tools.jar.Main$Hasher jdk.internal.module.ModuleHashes
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "warning: no module is recorded in hash in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
        end local 9 // jdk.internal.module.ModuleHashes moduleHashes
        end local 8 // sun.tools.jar.Main$Hasher hasher
        end local 7 // java.lang.String mn
        16: .line 2132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
            invokevirtual jdk.internal.module.ModuleResolution.value:()I
            ifeq 18
        17: .line 2133
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
            invokevirtual jdk.internal.module.ModuleInfoExtender.moduleResolution:(Ljdk/internal/module/ModuleResolution;)Ljdk/internal/module/ModuleInfoExtender;
            pop
        18: .line 2136
      StackMap locals:
      StackMap stack:
            aload 6 /* extender */
            aload 4 /* baos */
            invokevirtual jdk.internal.module.ModuleInfoExtender.write:(Ljava/io/OutputStream;)V
        19: .line 2137
            aload 4 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 6 // jdk.internal.module.ModuleInfoExtender extender
        end local 5 // java.io.InputStream is
        end local 4 // java.io.ByteArrayOutputStream baos
        end local 3 // java.util.Set packages
        end local 2 // byte[] miBytes
        end local 1 // java.lang.module.ModuleDescriptor md
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lsun/tools/jar/Main;
            0   20     1            md  Ljava/lang/module/ModuleDescriptor;
            0   20     2       miBytes  [B
            0   20     3      packages  Ljava/util/Set<Ljava/lang/String;>;
            1   20     4          baos  Ljava/io/ByteArrayOutputStream;
            2   20     5            is  Ljava/io/InputStream;
            3   20     6      extender  Ljdk/internal/module/ModuleInfoExtender;
           10   16     7            mn  Ljava/lang/String;
           11   16     8        hasher  Lsun/tools/jar/Main$Hasher;
           12   16     9  moduleHashes  Ljdk/internal/module/ModuleHashes;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set<Ljava/lang/String;>;)[B
    MethodParameters:
          Name  Flags
      md        
      miBytes   
      packages  

  private static int lambda$0(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // java.lang.String s1
        start local 1 // java.lang.String s2
         0: .line 2224
            aload 0 /* s1 */
            aload 1 /* s2 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 2225
      StackMap locals:
      StackMap stack:
            aload 0 /* s1 */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 2 /* b1 */
        start local 2 // boolean b1
         2: .line 2226
            aload 1 /* s2 */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 3 /* b2 */
        start local 3 // boolean b2
         3: .line 2227
            iload 2 /* b1 */
            ifeq 4
            iload 3 /* b2 */
            ifne 4
            iconst_1
            ireturn
         4: .line 2228
      StackMap locals: int int
      StackMap stack:
            iload 2 /* b1 */
            ifne 5
            iload 3 /* b2 */
            ifeq 5
            iconst_m1
            ireturn
         5: .line 2229
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         6: .line 2230
            iload 2 /* b1 */
            ifeq 13
            iload 3 /* b2 */
            ifeq 13
         7: .line 2233
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.length:()I
            istore 4 /* n */
         8: .line 2234
            aload 0 /* s1 */
            bipush 47
            iload 4 /* n */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* i1 */
        start local 5 // int i1
         9: .line 2235
            aload 1 /* s2 */
            bipush 47
            iload 4 /* n */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* i2 */
        start local 6 // int i2
        10: .line 2236
            iload 5 /* i1 */
            iconst_m1
            if_icmpne 11
            new sun.tools.jar.Validator$InvalidJarException
            dup
            aload 0 /* s1 */
            invokespecial sun.tools.jar.Validator$InvalidJarException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 2237
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* i2 */
            iconst_m1
            if_icmpne 12
            new sun.tools.jar.Validator$InvalidJarException
            dup
            aload 1 /* s2 */
            invokespecial sun.tools.jar.Validator$InvalidJarException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 2239
      StackMap locals:
      StackMap stack:
            iload 5 /* i1 */
            iload 6 /* i2 */
            if_icmpeq 13
            iload 5 /* i1 */
            iload 6 /* i2 */
            isub
            ireturn
        end local 6 // int i2
        end local 5 // int i1
        13: .line 2242
      StackMap locals:
      StackMap stack:
            aload 0 /* s1 */
            invokevirtual java.lang.String.length:()I
            istore 5 /* l1 */
        start local 5 // int l1
        14: .line 2243
            aload 1 /* s2 */
            invokevirtual java.lang.String.length:()I
            istore 6 /* l2 */
        start local 6 // int l2
        15: .line 2244
            iload 5 /* l1 */
            iload 6 /* l2 */
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* lim */
        start local 7 // int lim
        16: .line 2245
            iload 4 /* n */
            istore 8 /* k */
        start local 8 // int k
        17: goto 25
        18: .line 2246
      StackMap locals: java.lang.String java.lang.String int int int int int int int
      StackMap stack:
            aload 0 /* s1 */
            iload 8 /* k */
            invokevirtual java.lang.String.charAt:(I)C
            istore 9 /* c1 */
        start local 9 // char c1
        19: .line 2247
            aload 1 /* s2 */
            iload 8 /* k */
            invokevirtual java.lang.String.charAt:(I)C
            istore 10 /* c2 */
        start local 10 // char c2
        20: .line 2248
            iload 9 /* c1 */
            iload 10 /* c2 */
            if_icmpeq 24
        21: .line 2251
            iload 9 /* c1 */
            bipush 36
            if_icmpne 22
            iload 10 /* c2 */
            bipush 46
            if_icmpne 22
            iconst_1
            ireturn
        22: .line 2252
      StackMap locals: int int
      StackMap stack:
            iload 9 /* c1 */
            bipush 46
            if_icmpne 23
            iload 10 /* c2 */
            bipush 36
            if_icmpne 23
            iconst_m1
            ireturn
        23: .line 2253
      StackMap locals:
      StackMap stack:
            iload 9 /* c1 */
            iload 10 /* c2 */
            isub
            ireturn
        end local 10 // char c2
        end local 9 // char c1
        24: .line 2245
      StackMap locals:
      StackMap stack:
            iinc 8 /* k */ 1
      StackMap locals:
      StackMap stack:
        25: iload 8 /* k */
            iload 7 /* lim */
            if_icmplt 18
        end local 8 // int k
        26: .line 2256
            iload 5 /* l1 */
            iload 6 /* l2 */
            isub
            ireturn
        end local 7 // int lim
        end local 6 // int l2
        end local 5 // int l1
        end local 4 // int n
        end local 3 // boolean b2
        end local 2 // boolean b1
        end local 1 // java.lang.String s2
        end local 0 // java.lang.String s1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0    s1  Ljava/lang/String;
            0   27     1    s2  Ljava/lang/String;
            2   27     2    b1  Z
            3   27     3    b2  Z
            6   27     4     n  I
            9   13     5    i1  I
           10   13     6    i2  I
           14   27     5    l1  I
           15   27     6    l2  I
           16   27     7   lim  I
           17   26     8     k  I
           19   24     9    c1  C
           20   24    10    c2  C

  private static boolean lambda$2(sun.tools.jar.Main$Entry);
    descriptor: (Lsun/tools/jar/Main$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main$Entry e
         0: .line 288
            aload 0 /* e */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.jar.Main$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Lsun/tools/jar/Main$Entry;

  private void lambda$3(java.util.Set, java.util.Set, sun.tools.jar.Main$Entry);
    descriptor: (Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 3 // sun.tools.jar.Main$Entry e
         0: .line 290
            aload 0 /* this */
            aload 1
            aload 3 /* e */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
         1: .line 291
            aload 2
            aload 3 /* e */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 292
            return
        end local 3 // sun.tools.jar.Main$Entry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/jar/Main;
            0    3     3     e  Lsun/tools/jar/Main$Entry;

  private static java.lang.String[] lambda$5(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray java.lang.String
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private java.lang.String lambda$6(java.util.Set, int, java.lang.String);
    descriptor: (Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 3 // java.lang.String f
         0: .line 481
            aload 0 /* this */
            aload 3 /* f */
            aload 1
            iconst_0
            invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
            iload 2
            invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String f
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     3     f  Ljava/lang/String;

  private void lambda$7(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 2 // java.lang.String je
         0: .line 1005
            aload 0 /* this */
            aload 1
            aload 2 /* je */
            invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
            return
        end local 2 // java.lang.String je
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     2    je  Ljava/lang/String;

  private static void lambda$8(java.util.Map, java.lang.Integer);
    descriptor: (Ljava/util/Map;Ljava/lang/Integer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // java.lang.Integer version
         0: .line 1306
            aload 0
            aload 1 /* version */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 2 /* files */
        start local 2 // java.lang.String[] files
         1: .line 1307
            aload 2 /* files */
            ifnull 7
         2: .line 1308
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 1309
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* files */
            iload 3 /* i */
            aload 2 /* files */
            iload 3 /* i */
            aaload
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            aastore
         5: .line 1308
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 3 // int i
        end local 2 // java.lang.String[] files
         7: .line 1312
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Integer version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     1  version  Ljava/lang/Integer;
            1    7     2    files  [Ljava/lang/String;
            3    7     3        i  I

  private static boolean lambda$9(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.zip.ZipEntry e
         0: .line 1785
            aload 0 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.util.zip.ZipEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/zip/ZipEntry;

  private static sun.tools.jar.Main$ZipFileModuleInfoEntry lambda$10(java.util.zip.ZipFile, java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // java.util.zip.ZipEntry e
         0: .line 1787
            new sun.tools.jar.Main$ZipFileModuleInfoEntry
            dup
            aload 0
            aload 1 /* e */
            invokespecial sun.tools.jar.Main$ZipFileModuleInfoEntry.<init>:(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)V
            areturn
        end local 1 // java.util.zip.ZipEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     e  Ljava/util/zip/ZipEntry;

  private static sun.tools.jar.Main$ZipFileModuleInfoEntry[] lambda$11(int);
    descriptor: (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray sun.tools.jar.Main$ZipFileModuleInfoEntry
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static sun.tools.jar.Main$ModuleInfoEntry[] lambda$13(int);
    descriptor: (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray sun.tools.jar.Main$ModuleInfoEntry
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$14(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main$ModuleInfoEntry e
         0: .line 1873
            aload 0 /* e */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.jar.Main$ModuleInfoEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Lsun/tools/jar/Main$ModuleInfoEntry;

  private static java.lang.String lambda$17(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object e
         0: .line 1916
            aload 0 /* e */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  TT;

  private static boolean lambda$19(java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Exports;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1953
            aload 0 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.isQualified:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static void lambda$20(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1954
            aload 0
            ldc "exports "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1955
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static void lambda$21(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Requires);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Requires r
         0: .line 1959
            aload 0
            ldc "requires "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1960
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Requires r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     r  Ljava/lang/module/ModuleDescriptor$Requires;

  private static void lambda$22(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String s
         0: .line 1964
            aload 0
            ldc "uses "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     s  Ljava/lang/String;

  private static void lambda$24(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 1968
            aload 0
            ldc "provides "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1969
            ldc " with"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1970
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.providers:()Ljava/util/List;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1971
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$27(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1977
            aload 0
            ldc "qualified exports "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1978
            ldc " to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.targets:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1979
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static boolean lambda$29(java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Opens;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 1984
            aload 0 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.isQualified:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$30(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 1985
            aload 0
            ldc "opens "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1986
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1987
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$33(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 1992
            aload 0
            ldc "qualified opens "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1993
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1994
            ldc " to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.targets:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1995
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$38(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String p
         0: .line 2001
            aload 0
            ldc "contains "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/String;

  private static void lambda$39(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String v
         0: .line 2003
            aload 0
            ldc "main-class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* v */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/lang/String;

  private static void lambda$40(java.lang.StringBuilder, jdk.internal.module.ModuleHashes, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String mod
         0: .line 2013
            aload 0
            ldc "hashes "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* mod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 2014
            aload 1
            invokevirtual jdk.internal.module.ModuleHashes.algorithm:()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;
         2: .line 2015
            aload 1
            aload 2 /* mod */
            invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
            invokestatic sun.tools.jar.Main.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 2016
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 2 // java.lang.String mod
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2   mod  Ljava/lang/String;

  private static boolean lambda$43(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String p
         0: .line 2044
            aload 0
            aload 1 /* p */
            invokestatic sun.tools.jar.Main.toBinaryName:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     p  Ljava/lang/String;

  private void lambda$44(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String p
         0: .line 2045
            aload 0 /* this */
            ldc "error.missing.provider"
            aload 1 /* p */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
            return
        end local 1 // java.lang.String p
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     1     p  Ljava/lang/String;
}
SourceFile: "Main.java"
NestMembers:
  sun.tools.jar.Main$1  sun.tools.jar.Main$CRC32OutputStream  sun.tools.jar.Main$Entry  sun.tools.jar.Main$Hasher  sun.tools.jar.Main$Hasher$1  sun.tools.jar.Main$Hasher$2  sun.tools.jar.Main$ModuleInfoEntry  sun.tools.jar.Main$StreamedModuleInfoEntry  sun.tools.jar.Main$ZipFileModuleInfoEntry
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Exports$Modifier of java.lang.module.ModuleDescriptor$Exports
  public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Opens$Modifier of java.lang.module.ModuleDescriptor$Opens
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
  public abstract Packer = java.util.jar.Pack200$Packer of java.util.jar.Pack200
  public abstract Unpacker = java.util.jar.Pack200$Unpacker of java.util.jar.Pack200
  public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
  BadArgs = sun.tools.jar.GNUStyleOptions$BadArgs of sun.tools.jar.GNUStyleOptions
  sun.tools.jar.Main$1
  private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main
  private Entry = sun.tools.jar.Main$Entry of sun.tools.jar.Main
  private Hasher = sun.tools.jar.Main$Hasher of sun.tools.jar.Main
  abstract ModuleInfoEntry = sun.tools.jar.Main$ModuleInfoEntry of sun.tools.jar.Main
  StreamedModuleInfoEntry = sun.tools.jar.Main$StreamedModuleInfoEntry of sun.tools.jar.Main
  ZipFileModuleInfoEntry = sun.tools.jar.Main$ZipFileModuleInfoEntry of sun.tools.jar.Main
  InvalidJarException = sun.tools.jar.Validator$InvalidJarException of sun.tools.jar.Validator