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.PrintStream out;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0000) 

  java.io.PrintStream err;
    descriptor: Ljava/io/PrintStream;
    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[] files;
    descriptor: [Ljava/lang/String;
    flags: (0x0000) 

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

  java.util.Map<java.lang.String, java.io.File> entryMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/io/File;>;

  java.util.Set<java.io.File> entries;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/io/File;>;

  java.util.Set<java.lang.String> paths;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  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) 

  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 VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.0"

  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 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 48
            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 93
            ldc "sun.tools.jar.useExtractionTime"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         4: .line 92
            putstatic sun.tools.jar.Main.useExtractionTime:Z
         5: .line 100
            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;
         6: .line 101
            goto 9
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
         7: pop
         8: .line 102
            new java.lang.Error
            dup
            ldc "Fatal: Resource for jar is missing"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 104
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           5     6       7  Class java.util.MissingResourceException

  private java.lang.String getMsg(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String key
         0: .line 108
            getstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
            aload 1 /* key */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 109
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         3: .line 110
            new java.lang.Error
            dup
            ldc "Error in message file"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String key
        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   key  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.MissingResourceException
    MethodParameters:
      Name  Flags
      key   

  private java.lang.String formatMsg(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String arg
         0: .line 115
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         1: .line 116
            iconst_1
            anewarray java.lang.String
            astore 4 /* args */
        start local 4 // java.lang.String[] args
         2: .line 117
            aload 4 /* args */
            iconst_0
            aload 2 /* arg */
            aastore
         3: .line 118
            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 arg
        end local 1 // java.lang.String key
        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   key  Ljava/lang/String;
            0    4     2   arg  Ljava/lang/String;
            1    4     3   msg  Ljava/lang/String;
            2    4     4  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   

  private 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: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String arg
        start local 3 // java.lang.String arg1
         0: .line 122
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         1: .line 123
            iconst_2
            anewarray java.lang.String
            astore 5 /* args */
        start local 5 // java.lang.String[] args
         2: .line 124
            aload 5 /* args */
            iconst_0
            aload 2 /* arg */
            aastore
         3: .line 125
            aload 5 /* args */
            iconst_1
            aload 3 /* arg1 */
            aastore
         4: .line 126
            aload 4 /* msg */
            aload 5 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 5 // java.lang.String[] args
        end local 4 // java.lang.String msg
        end local 3 // java.lang.String arg1
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String key
        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   key  Ljava/lang/String;
            0    5     2   arg  Ljava/lang/String;
            0    5     3  arg1  Ljava/lang/String;
            1    5     4   msg  Ljava/lang/String;
            2    5     5  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=3, 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 129
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 54
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 59
            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 62
            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 65
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.paths:Ljava/util/Set;
         6: .line 867
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
         7: .line 1146
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
         8: .line 130
            aload 0 /* this */
            aload 1 /* out */
            putfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
         9: .line 131
            aload 0 /* this */
            aload 2 /* err */
            putfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
        10: .line 132
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        11: .line 133
            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   12     0     this  Lsun/tools/jar/Main;
            0   12     1      out  Ljava/io/PrintStream;
            0   12     2      err  Ljava/io/PrintStream;
            0   12     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 141
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 1 /* dir */
        start local 1 // java.io.File dir
         1: .line 142
            aload 1 /* dir */
            ifnonnull 3
         2: .line 143
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* dir */
         3: .line 144
      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=5, locals=15, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 153
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.ok:Z
         1: .line 154
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
            ifne 3
         2: .line 155
            iconst_0
            ireturn
         3: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 4
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 8
         4: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 8
         5: .line 163
            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;
         6: .line 164
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 165
            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;
         8: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 95
         9: .line 170
            aconst_null
            astore 2 /* manifest */
        start local 2 // java.util.jar.Manifest manifest
        10: .line 171
            aconst_null
            astore 3 /* in */
        start local 3 // java.io.InputStream in
        11: .line 173
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 25
        12: .line 174
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 16
        13: .line 175
            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 3 /* in */
        14: .line 176
            new java.util.jar.Manifest
            dup
            new java.io.BufferedInputStream
            dup
            aload 3 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 2 /* manifest */
        15: .line 177
            goto 17
        16: .line 178
      StackMap locals: java.util.jar.Manifest java.io.InputStream
      StackMap stack:
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            astore 2 /* manifest */
        17: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
        18: .line 181
            aload 0 /* this */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
        19: .line 182
            aload 0 /* this */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 23
        20: .line 183
            aload 3 /* in */
            ifnull 22
        21: .line 184
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
        22: .line 186
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        23: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 25
        24: .line 189
            aload 0 /* this */
            aload 2 /* 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
        25: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            iconst_0
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
        26: .line 194
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 29
        27: .line 195
            new java.io.FileOutputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 4 /* out */
        start local 4 // java.io.OutputStream out
        28: .line 196
            goto 32
        end local 4 // java.io.OutputStream out
        29: .line 197
      StackMap locals:
      StackMap stack:
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 4 /* out */
        start local 4 // java.io.OutputStream out
        30: .line 198
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 32
        31: .line 202
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
        32: .line 205
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aconst_null
            astore 5 /* tmpfile */
        start local 5 // java.io.File tmpfile
        33: .line 206
            aload 4 /* out */
            astore 6 /* finalout */
        start local 6 // java.io.OutputStream finalout
        34: .line 207
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 36
        35: .line 208
            ldc "tmpjar"
            goto 37
        36: .line 209
      StackMap locals: java.io.File java.io.OutputStream
      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;
        37: .line 207
      StackMap locals:
      StackMap stack: java.lang.String
            astore 7 /* tmpbase */
        start local 7 // java.lang.String tmpbase
        38: .line 210
            aload 0 /* this */
            getfield sun.tools.jar.Main.nflag:Z
            ifeq 41
        39: .line 211
            aload 0 /* this */
            aload 7 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 5 /* tmpfile */
        40: .line 212
            new java.io.FileOutputStream
            dup
            aload 5 /* tmpfile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 4 /* out */
        41: .line 214
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.io.BufferedOutputStream
            dup
            aload 4 /* out */
            sipush 4096
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
        42: .line 215
            aload 3 /* in */
            ifnull 44
        43: .line 216
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
        44: .line 218
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            invokevirtual java.io.OutputStream.close:()V
        45: .line 219
            aload 0 /* this */
            getfield sun.tools.jar.Main.nflag:Z
            ifeq 171
        46: .line 220
            aconst_null
            astore 8 /* jarFile */
        start local 8 // java.util.jar.JarFile jarFile
        47: .line 221
            aconst_null
            astore 9 /* packFile */
        start local 9 // java.io.File packFile
        48: .line 222
            aconst_null
            astore 10 /* jos */
        start local 10 // java.util.jar.JarOutputStream jos
        49: .line 224
            invokestatic java.util.jar.Pack200.newPacker:()Ljava/util/jar/Pack200$Packer;
            astore 11 /* packer */
        start local 11 // java.util.jar.Pack200$Packer packer
        50: .line 225
            aload 11 /* packer */
            invokeinterface java.util.jar.Pack200$Packer.properties:()Ljava/util/SortedMap;
            astore 12 /* p */
        start local 12 // java.util.Map p
        51: .line 226
            aload 12 /* p */
            ldc "pack.effort"
            ldc "1"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        52: .line 227
            new java.util.jar.JarFile
            dup
            aload 5 /* tmpfile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 8 /* jarFile */
        53: .line 228
            aload 0 /* this */
            aload 7 /* tmpbase */
            ldc ".pack"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 9 /* packFile */
        54: .line 229
            new java.io.FileOutputStream
            dup
            aload 9 /* packFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 4 /* out */
        55: .line 230
            aload 11 /* packer */
            aload 8 /* jarFile */
            aload 4 /* out */
            invokeinterface java.util.jar.Pack200$Packer.pack:(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
        56: .line 231
            new java.util.jar.JarOutputStream
            dup
            aload 6 /* finalout */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 10 /* jos */
        57: .line 232
            invokestatic java.util.jar.Pack200.newUnpacker:()Ljava/util/jar/Pack200$Unpacker;
            astore 13 /* unpacker */
        start local 13 // java.util.jar.Pack200$Unpacker unpacker
        58: .line 233
            aload 13 /* unpacker */
            aload 9 /* packFile */
            aload 10 /* jos */
            invokeinterface java.util.jar.Pack200$Unpacker.unpack:(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
        end local 13 // java.util.jar.Pack200$Unpacker unpacker
        end local 12 // java.util.Map p
        end local 11 // java.util.jar.Pack200$Packer packer
        59: .line 234
            goto 84
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.util.jar.Manifest java.io.InputStream java.io.OutputStream java.io.File java.io.OutputStream java.lang.String java.util.jar.JarFile java.io.File java.util.jar.JarOutputStream
      StackMap stack: java.io.IOException
        60: astore 11 /* ioe */
        start local 11 // java.io.IOException ioe
        61: .line 235
            aload 0 /* this */
            aload 11 /* ioe */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        end local 11 // java.io.IOException ioe
        62: .line 237
            aload 8 /* jarFile */
            ifnull 64
        63: .line 238
            aload 8 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        64: .line 240
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            ifnull 66
        65: .line 241
            aload 4 /* out */
            invokevirtual java.io.OutputStream.close:()V
        66: .line 243
      StackMap locals:
      StackMap stack:
            aload 10 /* jos */
            ifnull 68
        67: .line 244
            aload 10 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        68: .line 246
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpfile */
            ifnull 70
            aload 5 /* tmpfile */
            invokevirtual java.io.File.exists:()Z
            ifeq 70
        69: .line 247
            aload 5 /* tmpfile */
            invokevirtual java.io.File.delete:()Z
            pop
        70: .line 249
      StackMap locals:
      StackMap stack:
            aload 9 /* packFile */
            ifnull 171
            aload 9 /* packFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 171
        71: .line 250
            aload 9 /* packFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 171
        72: .line 236
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        73: .line 237
            aload 8 /* jarFile */
            ifnull 75
        74: .line 238
            aload 8 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        75: .line 240
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.util.jar.Manifest java.io.InputStream java.io.OutputStream java.io.File java.io.OutputStream java.lang.String java.util.jar.JarFile java.io.File java.util.jar.JarOutputStream top top top java.lang.Throwable
      StackMap stack:
            aload 4 /* out */
            ifnull 77
        76: .line 241
            aload 4 /* out */
            invokevirtual java.io.OutputStream.close:()V
        77: .line 243
      StackMap locals:
      StackMap stack:
            aload 10 /* jos */
            ifnull 79
        78: .line 244
            aload 10 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        79: .line 246
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpfile */
            ifnull 81
            aload 5 /* tmpfile */
            invokevirtual java.io.File.exists:()Z
            ifeq 81
        80: .line 247
            aload 5 /* tmpfile */
            invokevirtual java.io.File.delete:()Z
            pop
        81: .line 249
      StackMap locals:
      StackMap stack:
            aload 9 /* packFile */
            ifnull 83
            aload 9 /* packFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 83
        82: .line 250
            aload 9 /* packFile */
            invokevirtual java.io.File.delete:()Z
            pop
        83: .line 252
      StackMap locals:
      StackMap stack:
            aload 14
            athrow
        84: .line 237
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.util.jar.Manifest java.io.InputStream java.io.OutputStream java.io.File java.io.OutputStream java.lang.String java.util.jar.JarFile java.io.File java.util.jar.JarOutputStream
      StackMap stack:
            aload 8 /* jarFile */
            ifnull 86
        85: .line 238
            aload 8 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        86: .line 240
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            ifnull 88
        87: .line 241
            aload 4 /* out */
            invokevirtual java.io.OutputStream.close:()V
        88: .line 243
      StackMap locals:
      StackMap stack:
            aload 10 /* jos */
            ifnull 90
        89: .line 244
            aload 10 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        90: .line 246
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpfile */
            ifnull 92
            aload 5 /* tmpfile */
            invokevirtual java.io.File.exists:()Z
            ifeq 92
        91: .line 247
            aload 5 /* tmpfile */
            invokevirtual java.io.File.delete:()Z
            pop
        92: .line 249
      StackMap locals:
      StackMap stack:
            aload 9 /* packFile */
            ifnull 171
            aload 9 /* packFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 171
        93: .line 250
            aload 9 /* packFile */
            invokevirtual java.io.File.delete:()Z
            pop
        end local 10 // java.util.jar.JarOutputStream jos
        end local 9 // java.io.File packFile
        end local 8 // java.util.jar.JarFile jarFile
        end local 7 // java.lang.String tmpbase
        end local 6 // java.io.OutputStream finalout
        end local 5 // java.io.File tmpfile
        end local 4 // java.io.OutputStream out
        end local 3 // java.io.InputStream in
        end local 2 // java.util.jar.Manifest manifest
        94: .line 254
            goto 171
      StackMap locals: sun.tools.jar.Main java.lang.String[]
      StackMap stack:
        95: aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 128
        96: .line 255
            aconst_null
            astore 2 /* inputFile */
        start local 2 // java.io.File inputFile
        97: aconst_null
            astore 3 /* tmpFile */
        start local 3 // java.io.File tmpFile
        98: .line 258
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 104
        99: .line 259
            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 2 /* inputFile */
       100: .line 260
            aload 2 /* inputFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            astore 3 /* tmpFile */
       101: .line 261
            new java.io.FileInputStream
            dup
            aload 2 /* inputFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 4 /* in */
        start local 4 // java.io.FileInputStream in
       102: .line 262
            new java.io.FileOutputStream
            dup
            aload 3 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 5 /* out */
        start local 5 // java.io.FileOutputStream out
       103: .line 263
            goto 107
        end local 5 // java.io.FileOutputStream out
        end local 4 // java.io.FileInputStream in
       104: .line 264
      StackMap locals: java.io.File java.io.File
      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.FileInputStream in
       105: .line 265
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 5 /* out */
        start local 5 // java.io.FileOutputStream out
       106: .line 266
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
       107: .line 268
      StackMap locals: java.io.FileInputStream java.io.FileOutputStream
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 109
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 109
       108: .line 269
            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 110
      StackMap locals:
      StackMap stack:
       109: aconst_null
       110: .line 268
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 6 /* manifest */
        start local 6 // java.io.InputStream manifest
       111: .line 270
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            iconst_1
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
       112: .line 271
            aload 0 /* this */
            aload 4 /* in */
            new java.io.BufferedOutputStream
            dup
            aload 5 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
       113: .line 272
            aload 6 /* manifest */
            aconst_null
       114: .line 271
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
            istore 7 /* updateOk */
        start local 7 // boolean updateOk
       115: .line 273
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 117
       116: .line 274
            aload 0 /* this */
            iload 7 /* updateOk */
            putfield sun.tools.jar.Main.ok:Z
       117: .line 276
      StackMap locals: java.io.InputStream int
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.FileInputStream.close:()V
       118: .line 277
            aload 5 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
       119: .line 278
            aload 6 /* manifest */
            ifnull 121
       120: .line 279
            aload 6 /* manifest */
            invokevirtual java.io.InputStream.close:()V
       121: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 171
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 171
       122: .line 283
            aload 2 /* inputFile */
            invokevirtual java.io.File.delete:()Z
            pop
       123: .line 284
            aload 3 /* tmpFile */
            aload 2 /* inputFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 126
       124: .line 285
            aload 3 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       125: .line 286
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.write.file"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
       126: .line 288
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        end local 7 // boolean updateOk
        end local 6 // java.io.InputStream manifest
        end local 5 // java.io.FileOutputStream out
        end local 4 // java.io.FileInputStream in
        end local 3 // java.io.File tmpFile
        end local 2 // java.io.File inputFile
       127: .line 290
            goto 171
      StackMap locals: sun.tools.jar.Main java.lang.String[]
      StackMap stack:
       128: aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 141
       129: .line 291
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
       130: .line 292
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 133
       131: .line 293
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
       132: .line 294
            goto 171
       133: .line 295
      StackMap locals:
      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 2 /* in */
        start local 2 // java.io.InputStream in
       134: .line 297
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 2 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
       135: .line 298
            goto 139
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       136: astore 3
       137: .line 299
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
       138: .line 300
            aload 3
            athrow
       139: .line 299
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 2 // java.io.InputStream in
       140: .line 302
            goto 171
      StackMap locals:
      StackMap stack:
       141: aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifeq 157
       142: .line 303
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
       143: .line 304
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 146
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            ifnull 146
       144: .line 305
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       145: .line 306
            goto 171
       146: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 148
       147: .line 308
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            goto 149
       148: .line 309
      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
       149: .line 307
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 2 /* in */
        start local 2 // java.io.InputStream in
       150: .line 311
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 2 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)V
       151: .line 312
            goto 155
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       152: astore 3
       153: .line 313
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
       154: .line 314
            aload 3
            athrow
       155: .line 313
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 2 // java.io.InputStream in
       156: .line 316
            goto 171
      StackMap locals:
      StackMap stack:
       157: aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 171
       158: .line 317
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
       159: .line 319
            goto 171
      StackMap locals:
      StackMap stack: java.io.IOException
       160: astore 2 /* e */
        start local 2 // java.io.IOException e
       161: .line 320
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
       162: .line 321
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 2 // java.io.IOException e
       163: goto 171
       164: .line 322
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 2 /* ee */
        start local 2 // java.lang.Error ee
       165: .line 323
            aload 2 /* ee */
            invokevirtual java.lang.Error.printStackTrace:()V
       166: .line 324
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 2 // java.lang.Error ee
       167: goto 171
       168: .line 325
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
       169: .line 326
            aload 2 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
       170: .line 327
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 2 // java.lang.Throwable t
       171: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
       172: .line 330
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
       173: .line 331
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ireturn
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  174     0       this  Lsun/tools/jar/Main;
            0  174     1       args  [Ljava/lang/String;
           10   94     2   manifest  Ljava/util/jar/Manifest;
           11   94     3         in  Ljava/io/InputStream;
           28   29     4        out  Ljava/io/OutputStream;
           30   94     4        out  Ljava/io/OutputStream;
           33   94     5    tmpfile  Ljava/io/File;
           34   94     6   finalout  Ljava/io/OutputStream;
           38   94     7    tmpbase  Ljava/lang/String;
           47   94     8    jarFile  Ljava/util/jar/JarFile;
           48   94     9   packFile  Ljava/io/File;
           49   94    10        jos  Ljava/util/jar/JarOutputStream;
           50   59    11     packer  Ljava/util/jar/Pack200$Packer;
           51   59    12          p  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           58   59    13   unpacker  Ljava/util/jar/Pack200$Unpacker;
           61   62    11        ioe  Ljava/io/IOException;
           97  127     2  inputFile  Ljava/io/File;
           98  127     3    tmpFile  Ljava/io/File;
          102  104     4         in  Ljava/io/FileInputStream;
          105  127     4         in  Ljava/io/FileInputStream;
          103  104     5        out  Ljava/io/FileOutputStream;
          106  127     5        out  Ljava/io/FileOutputStream;
          111  127     6   manifest  Ljava/io/InputStream;
          115  127     7   updateOk  Z
          134  140     2         in  Ljava/io/InputStream;
          150  156     2         in  Ljava/io/InputStream;
          161  163     2          e  Ljava/io/IOException;
          165  167     2         ee  Ljava/lang/Error;
          169  171     2          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          49    59      60  Class java.io.IOException
          49    62      72  any
         134   136     136  any
         150   152     152  any
           3    22     160  Class java.io.IOException
          23   159     160  Class java.io.IOException
           3    22     164  Class java.lang.Error
          23   159     164  Class java.lang.Error
           3    22     168  Class java.lang.Throwable
          23   159     168  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      args  

  boolean parseArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 340
            aload 1 /* args */
            invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* args */
         1: .line 341
            goto 8
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
         2: astore 2 /* e */
        start local 2 // java.io.FileNotFoundException e
         3: .line 342
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.cant.open"
            aload 2 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual 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 343
            iconst_0
            ireturn
        end local 2 // java.io.FileNotFoundException e
         5: .line 344
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 345
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
         7: .line 346
            iconst_0
            ireturn
        end local 2 // java.io.IOException e
         8: .line 349
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* count */
        start local 2 // int count
         9: .line 351
            aload 1 /* args */
            iconst_0
            aaload
            astore 3 /* flags */
        start local 3 // java.lang.String flags
        10: .line 352
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 353
            aload 3 /* flags */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* flags */
        12: .line 355
      StackMap locals: int java.lang.String
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        13: goto 63
        14: .line 356
      StackMap locals: int
      StackMap stack:
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 13
                   48: 43
                   77: 35
                   80: 55
                   99: 15
                  101: 53
                  102: 39
                  105: 45
                  109: 41
                  110: 51
                  116: 30
                  117: 20
                  118: 37
                  120: 25
              default: 57
          }
        15: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 16
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 16
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 16
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 18
        16: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        17: .line 360
            iconst_0
            ireturn
        18: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.cflag:Z
        19: .line 363
            goto 62
        20: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 21
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 21
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 21
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 23
        21: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        22: .line 367
            iconst_0
            ireturn
        23: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.uflag:Z
        24: .line 370
            goto 62
        25: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 26
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 26
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 26
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 28
        26: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        27: .line 374
            iconst_0
            ireturn
        28: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.xflag:Z
        29: .line 377
            goto 62
        30: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 31
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 31
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 31
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 33
        31: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        32: .line 381
            iconst_0
            ireturn
        33: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.tflag:Z
        34: .line 384
            goto 62
        35: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.Mflag:Z
        36: .line 387
            goto 62
        37: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.vflag:Z
        38: .line 390
            goto 62
        39: .line 392
      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;
        40: .line 393
            goto 62
        41: .line 395
      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;
        42: .line 396
            goto 62
        43: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.flag0:Z
        44: .line 399
            goto 62
        45: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 46
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 46
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 46
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 48
        46: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        47: .line 403
            iconst_0
            ireturn
        48: .line 406
      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;
        49: .line 407
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.iflag:Z
        50: .line 408
            goto 62
        51: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.nflag:Z
        52: .line 411
            goto 62
        53: .line 413
      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;
        54: .line 414
            goto 62
        55: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.pflag:Z
        56: .line 417
            goto 62
        57: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.illegal.option"
        58: .line 420
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
        59: .line 419
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        60: .line 421
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        61: .line 422
            iconst_0
            ireturn
        62: .line 355
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        63: iload 4 /* i */
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            if_icmplt 14
        end local 4 // int i
        end local 3 // java.lang.String flags
        64: .line 425
            goto 68
      StackMap locals: sun.tools.jar.Main java.lang.String[] int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        65: pop
        66: .line 426
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        67: .line 427
            iconst_0
            ireturn
        68: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 72
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 72
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 72
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 72
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifne 72
        69: .line 430
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.option"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        70: .line 431
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        71: .line 432
            iconst_0
            ireturn
        72: .line 435
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            arraylength
            iload 2 /* count */
            isub
            istore 3 /* n */
        start local 3 // int n
        73: .line 436
            iload 3 /* n */
            ifle 101
        74: .line 437
            iconst_0
            istore 4 /* k */
        start local 4 // int k
        75: .line 438
            iload 3 /* n */
            anewarray java.lang.String
            astore 5 /* nameBuf */
        start local 5 // java.lang.String[] nameBuf
        76: .line 440
            iload 2 /* count */
            istore 6 /* i */
        start local 6 // int i
        77: goto 93
        78: .line 441
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[] int
      StackMap stack:
            aload 1 /* args */
            iload 6 /* i */
            aaload
            ldc "-C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 91
        79: .line 443
            aload 1 /* args */
            iinc 6 /* i */ 1
            iload 6 /* i */
            aaload
            astore 7 /* dir */
        start local 7 // java.lang.String dir
        80: .line 444
            aload 7 /* dir */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 82
        81: .line 445
            aload 7 /* dir */
            goto 83
      StackMap locals: java.lang.String
      StackMap stack:
        82: new java.lang.StringBuilder
            dup
            aload 7 /* 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;
        83: .line 444
      StackMap locals:
      StackMap stack: java.lang.String
            astore 7 /* dir */
        84: .line 446
            aload 7 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 7 /* dir */
        85: .line 447
            goto 87
        86: .line 448
      StackMap locals:
      StackMap stack:
            aload 7 /* dir */
            ldc "//"
            ldc "/"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 7 /* dir */
        87: .line 447
      StackMap locals:
      StackMap stack:
            aload 7 /* dir */
            ldc "//"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpgt 86
        88: .line 450
            aload 0 /* this */
            getfield sun.tools.jar.Main.paths:Ljava/util/Set;
            aload 7 /* 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
        89: .line 451
            aload 5 /* nameBuf */
            iload 4 /* k */
            iinc 4 /* k */ 1
            new java.lang.StringBuilder
            dup
            aload 7 /* 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 6 /* i */ 1
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        end local 7 // java.lang.String dir
        90: .line 452
            goto 92
        91: .line 453
      StackMap locals:
      StackMap stack:
            aload 5 /* nameBuf */
            iload 4 /* k */
            iinc 4 /* k */ 1
            aload 1 /* args */
            iload 6 /* i */
            aaload
            aastore
        92: .line 440
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        93: iload 6 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 78
        end local 6 // int i
        94: .line 456
            goto 98
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        95: pop
        96: .line 457
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        97: .line 458
            iconst_0
            ireturn
        98: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* k */
            anewarray java.lang.String
            putfield sun.tools.jar.Main.files:[Ljava/lang/String;
        99: .line 461
            aload 5 /* nameBuf */
            iconst_0
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            iconst_0
            iload 4 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 5 // java.lang.String[] nameBuf
        end local 4 // int k
       100: .line 462
            goto 111
      StackMap locals:
      StackMap stack:
       101: aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 105
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 105
       102: .line 463
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.cflag"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
       103: .line 464
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
       104: .line 465
            iconst_0
            ireturn
       105: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 111
       106: .line 467
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 107
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 108
       107: .line 469
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
       108: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.uflag"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
       109: .line 472
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
       110: .line 473
            iconst_0
            ireturn
       111: .line 476
      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  112     0     this  Lsun/tools/jar/Main;
            0  112     1     args  [Ljava/lang/String;
            3    5     2        e  Ljava/io/FileNotFoundException;
            6    8     2        e  Ljava/io/IOException;
            9  112     2    count  I
           10   64     3    flags  Ljava/lang/String;
           13   64     4        i  I
           73  112     3        n  I
           75  100     4        k  I
           76  100     5  nameBuf  [Ljava/lang/String;
           77   94     6        i  I
           80   90     7      dir  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.FileNotFoundException
           0     1       5  Class java.io.IOException
           9    17      65  Class java.lang.ArrayIndexOutOfBoundsException
          18    22      65  Class java.lang.ArrayIndexOutOfBoundsException
          23    27      65  Class java.lang.ArrayIndexOutOfBoundsException
          28    32      65  Class java.lang.ArrayIndexOutOfBoundsException
          33    47      65  Class java.lang.ArrayIndexOutOfBoundsException
          48    61      65  Class java.lang.ArrayIndexOutOfBoundsException
          62    64      65  Class java.lang.ArrayIndexOutOfBoundsException
          76    94      95  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      args  

  void expand(java.io.File, java.lang.String[], boolean);
    descriptor: (Ljava/io/File;[Ljava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=4
        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 // boolean isUpdate
         0: .line 484
            aload 2 /* files */
            ifnonnull 2
         1: .line 485
            return
         2: .line 487
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 26
         4: .line 489
      StackMap locals: int
      StackMap stack:
            aload 1 /* dir */
            ifnonnull 7
         5: .line 490
            new java.io.File
            dup
            aload 2 /* files */
            iload 4 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         6: .line 491
            goto 8
        end local 5 // java.io.File f
         7: .line 492
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* dir */
            aload 2 /* files */
            iload 4 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         8: .line 494
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.isFile:()Z
            ifeq 13
         9: .line 495
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 5 /* f */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 25
        10: .line 496
            iload 3 /* isUpdate */
            ifeq 25
        11: .line 497
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 0 /* this */
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* f */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 499
            goto 25
      StackMap locals:
      StackMap stack:
        13: aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 23
        14: .line 500
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 5 /* f */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 25
        15: .line 501
            iload 3 /* isUpdate */
            ifeq 21
        16: .line 502
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 6 /* dirPath */
        start local 6 // java.lang.String dirPath
        17: .line 503
            aload 6 /* dirPath */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 18
            aload 6 /* dirPath */
            goto 19
        18: .line 504
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* dirPath */
            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;
        19: .line 503
      StackMap locals:
      StackMap stack: java.lang.String
            astore 6 /* dirPath */
        20: .line 505
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 0 /* this */
            aload 6 /* dirPath */
            invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* f */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String dirPath
        21: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* f */
            aload 5 /* f */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            iload 3 /* isUpdate */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
        22: .line 509
            goto 25
        23: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.nosuch.fileordir"
            aload 5 /* f */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        24: .line 511
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 5 // java.io.File f
        25: .line 487
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 4 // int i
        27: .line 514
            return
        end local 3 // boolean isUpdate
        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   28     0      this  Lsun/tools/jar/Main;
            0   28     1       dir  Ljava/io/File;
            0   28     2     files  [Ljava/lang/String;
            0   28     3  isUpdate  Z
            3   27     4         i  I
            6    7     5         f  Ljava/io/File;
            8   25     5         f  Ljava/io/File;
           17   21     6   dirPath  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      dir       
      files     
      isUpdate  

  void create(java.io.OutputStream, java.util.jar.Manifest);
    descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, 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 522
            new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* zos */
        start local 3 // java.util.zip.ZipOutputStream zos
         1: .line 523
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 3
         2: .line 524
            aload 3 /* zos */
            iconst_0
            invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
         3: .line 526
      StackMap locals: java.util.zip.ZipOutputStream
      StackMap stack:
            aload 2 /* manifest */
            ifnull 18
         4: .line 527
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 6
         5: .line 528
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.added.manifest"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         6: .line 530
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
         7: .line 531
            aload 4 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         8: .line 532
            aload 4 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
         9: .line 533
            aload 4 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        10: .line 534
            aload 3 /* zos */
            aload 4 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        11: .line 535
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 4 /* e */
        12: .line 536
            aload 4 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        13: .line 537
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 15
        14: .line 538
            aload 0 /* this */
            aload 4 /* e */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        15: .line 540
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zos */
            aload 4 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        16: .line 541
            aload 2 /* manifest */
            aload 3 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        17: .line 542
            aload 3 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        end local 4 // java.util.zip.ZipEntry e
        18: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 21
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.util.zip.ZipOutputStream top java.util.Iterator
      StackMap stack:
        19: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 4 /* file */
        start local 4 // java.io.File file
        20: .line 545
            aload 0 /* this */
            aload 3 /* zos */
            aload 4 /* file */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
        end local 4 // java.io.File file
        21: .line 544
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        22: .line 547
            aload 3 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        23: .line 548
            return
        end local 3 // java.util.zip.ZipOutputStream zos
        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   24     0      this  Lsun/tools/jar/Main;
            0   24     1       out  Ljava/io/OutputStream;
            0   24     2  manifest  Ljava/util/jar/Manifest;
            1   24     3       zos  Ljava/util/zip/ZipOutputStream;
            7   18     4         e  Ljava/util/zip/ZipEntry;
           20   21     4      file  Ljava/io/File;
    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 551
            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 561
            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 563
      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 564
            iconst_0
            ireturn
         4: .line 565
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 11
         6: .line 566
      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 567
            aload 2 /* upper */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c2 */
        start local 6 // char c2
         8: .line 568
            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 569
            iconst_0
            ireturn
        end local 6 // char c2
        end local 5 // char c1
        10: .line 565
      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 571
            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, sun.misc.JarIndex);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=14, args_size=5
        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 // sun.misc.JarIndex jarIndex
         0: .line 581
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* zis */
        start local 5 // java.util.zip.ZipInputStream zis
         1: .line 582
            new java.util.jar.JarOutputStream
            dup
            aload 2 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* zos */
        start local 6 // java.util.zip.ZipOutputStream zos
         2: .line 583
            aconst_null
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
         3: .line 584
            iconst_0
            istore 8 /* foundManifest */
        start local 8 // boolean foundManifest
         4: .line 585
            iconst_1
            istore 9 /* updateOk */
        start local 9 // boolean updateOk
         5: .line 587
            aload 4 /* jarIndex */
            ifnull 43
         6: .line 588
            aload 0 /* this */
            aload 4 /* jarIndex */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.addIndex:(Lsun/misc/JarIndex;Ljava/util/zip/ZipOutputStream;)V
         7: .line 592
            goto 43
         8: .line 593
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int
      StackMap stack:
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 10 /* name */
        start local 10 // java.lang.String name
         9: .line 595
            aload 0 /* this */
            aload 10 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            istore 11 /* isManifestEntry */
        start local 11 // boolean isManifestEntry
        10: .line 597
            aload 4 /* jarIndex */
            ifnull 11
            aload 0 /* this */
            aload 10 /* name */
            ldc "META-INF/INDEX.LIST"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 43
        11: .line 598
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifeq 13
            iload 11 /* isManifestEntry */
            ifeq 13
        12: .line 599
            goto 43
        13: .line 600
      StackMap locals:
      StackMap stack:
            iload 11 /* isManifestEntry */
            ifeq 27
            aload 3 /* newManifest */
            ifnonnull 15
        14: .line 601
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 27
        15: .line 602
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* foundManifest */
        16: .line 603
            aload 3 /* newManifest */
            ifnull 22
        17: .line 607
            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 12 /* fis */
        start local 12 // java.io.FileInputStream fis
        18: .line 608
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            aload 12 /* fis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            istore 13 /* ambiguous */
        start local 13 // boolean ambiguous
        19: .line 609
            aload 12 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        20: .line 610
            iload 13 /* ambiguous */
            ifeq 22
        21: .line 611
            iconst_0
            ireturn
        end local 13 // boolean ambiguous
        end local 12 // java.io.FileInputStream fis
        22: .line 616
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            aload 5 /* zis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 12 /* old */
        start local 12 // java.util.jar.Manifest old
        23: .line 617
            aload 3 /* newManifest */
            ifnull 25
        24: .line 618
            aload 12 /* old */
            aload 3 /* newManifest */
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
        25: .line 620
      StackMap locals: java.util.jar.Manifest
      StackMap stack:
            aload 0 /* this */
            aload 12 /* old */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 43
        26: .line 621
            iconst_0
            ireturn
        end local 12 // java.util.jar.Manifest old
        27: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 10 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 39
        28: .line 626
            new java.util.zip.ZipEntry
            dup
            aload 10 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 12 /* e2 */
        start local 12 // java.util.zip.ZipEntry e2
        29: .line 627
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        30: .line 628
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        31: .line 629
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
            invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
        32: .line 630
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getExtra:()[B
            invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
        33: .line 631
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            ifne 36
        34: .line 632
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        35: .line 633
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getCrc:()J
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        36: .line 635
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 6 /* zos */
            aload 12 /* e2 */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        37: .line 636
            aload 0 /* this */
            aload 5 /* zis */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
        end local 12 // java.util.zip.ZipEntry e2
        38: .line 637
            goto 43
        39: .line 638
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 10 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.File
            astore 12 /* f */
        start local 12 // java.io.File f
        40: .line 639
            aload 0 /* this */
            aload 6 /* zos */
            aload 12 /* f */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
        41: .line 640
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 10 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 641
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 12 /* f */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.io.File f
        end local 11 // boolean isManifestEntry
        end local 10 // java.lang.String name
        43: .line 592
      StackMap locals:
      StackMap stack:
            aload 5 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 7 /* e */
            ifnonnull 8
        44: .line 647
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 47
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int top java.util.Iterator
      StackMap stack:
        45: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 10 /* f */
        start local 10 // java.io.File f
        46: .line 648
            aload 0 /* this */
            aload 6 /* zos */
            aload 10 /* f */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
        end local 10 // java.io.File f
        47: .line 647
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 45
        48: .line 650
            iload 8 /* foundManifest */
            ifne 61
        49: .line 651
            aload 3 /* newManifest */
            ifnull 58
        50: .line 652
            new java.util.jar.Manifest
            dup
            aload 3 /* newManifest */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 10 /* m */
        start local 10 // java.util.jar.Manifest m
        51: .line 653
            aload 0 /* this */
            aload 10 /* m */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 52
            iconst_0
            goto 53
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.jar.Manifest
      StackMap stack:
        52: iconst_1
      StackMap locals:
      StackMap stack: int
        53: istore 9 /* updateOk */
        54: .line 654
            iload 9 /* updateOk */
            ifeq 61
        55: .line 655
            aload 0 /* this */
            aload 10 /* m */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 61
        56: .line 656
            iconst_0
            istore 9 /* updateOk */
        end local 10 // java.util.jar.Manifest m
        57: .line 659
            goto 61
      StackMap locals:
      StackMap stack:
        58: aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 61
        59: .line 660
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 61
        60: .line 661
            iconst_0
            istore 9 /* updateOk */
        61: .line 665
      StackMap locals:
      StackMap stack:
            aload 5 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        62: .line 666
            aload 6 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        63: .line 667
            iload 9 /* updateOk */
            ireturn
        end local 9 // boolean updateOk
        end local 8 // boolean foundManifest
        end local 7 // java.util.zip.ZipEntry e
        end local 6 // java.util.zip.ZipOutputStream zos
        end local 5 // java.util.zip.ZipInputStream zis
        end local 4 // sun.misc.JarIndex jarIndex
        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   64     0             this  Lsun/tools/jar/Main;
            0   64     1               in  Ljava/io/InputStream;
            0   64     2              out  Ljava/io/OutputStream;
            0   64     3      newManifest  Ljava/io/InputStream;
            0   64     4         jarIndex  Lsun/misc/JarIndex;
            1   64     5              zis  Ljava/util/zip/ZipInputStream;
            2   64     6              zos  Ljava/util/zip/ZipOutputStream;
            3   64     7                e  Ljava/util/zip/ZipEntry;
            4   64     8    foundManifest  Z
            5   64     9         updateOk  Z
            9   43    10             name  Ljava/lang/String;
           10   43    11  isManifestEntry  Z
           18   22    12              fis  Ljava/io/FileInputStream;
           19   22    13        ambiguous  Z
           23   27    12              old  Ljava/util/jar/Manifest;
           29   38    12               e2  Ljava/util/zip/ZipEntry;
           40   43    12                f  Ljava/io/File;
           46   47    10                f  Ljava/io/File;
           51   57    10                m  Ljava/util/jar/Manifest;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      in           
      out          
      newManifest  
      jarIndex     

  private void addIndex(sun.misc.JarIndex, java.util.zip.ZipOutputStream);
    descriptor: (Lsun/misc/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 // sun.misc.JarIndex index
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 673
            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 674
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         2: .line 675
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 6
         3: .line 676
            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 677
            aload 1 /* index */
            aload 4 /* os */
            invokevirtual sun.misc.JarIndex.write:(Ljava/io/OutputStream;)V
         5: .line 678
            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 680
      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 681
            aload 1 /* index */
            aload 2 /* zos */
            invokevirtual sun.misc.JarIndex.write:(Ljava/io/OutputStream;)V
         8: .line 682
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
         9: .line 683
            return
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // sun.misc.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  Lsun/misc/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 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 688
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
         1: .line 689
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
         2: .line 690
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 4
         3: .line 691
            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 693
      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
         5: .line 694
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         6: .line 695
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 8
         7: .line 696
            aload 0 /* this */
            aload 3 /* e */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
         8: .line 698
      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
         9: .line 699
            aload 1 /* m */
            aload 2 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        10: .line 700
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
        11: .line 701
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.update.manifest"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        12: .line 703
      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   13     0  this  Lsun/tools/jar/Main;
            0   13     1     m  Ljava/util/jar/Manifest;
            0   13     2   zos  Ljava/util/zip/ZipOutputStream;
            5   13     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 707
            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 711
            aload 0 /* this */
            getfield sun.tools.jar.Main.pflag:Z
            ifne 25
         1: .line 712
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 713
            aload 1 /* name */
            ldc "../"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* i */
        start local 3 // int i
         3: .line 714
            iload 3 /* i */
            iconst_m1
            if_icmpne 6
         4: .line 715
            iconst_0
            istore 3 /* i */
         5: .line 716
            goto 7
         6: .line 717
      StackMap locals: int int
      StackMap stack:
            iinc 3 /* i */ 3
         7: .line 719
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 22
         8: .line 722
            goto 19
         9: .line 723
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            istore 4 /* off */
        start local 4 // int off
        10: .line 724
            iload 3 /* i */
            iconst_1
            iadd
            iload 2 /* len */
            if_icmpge 16
        11: .line 725
            aload 1 /* name */
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 16
        12: .line 726
            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 727
            iinc 3 /* i */ 2
        14: .line 729
            goto 16
        15: .line 730
      StackMap locals: int
      StackMap stack:
            iinc 3 /* i */ 1
        16: .line 729
      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 732
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 4 /* off */
            if_icmpne 19
        18: .line 733
            goto 23
        end local 4 // int off
        19: .line 722
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmplt 9
        20: .line 736
            goto 23
        21: .line 738
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        22: .line 737
      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 741
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            ifeq 25
        24: .line 742
            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 745
      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 java.lang.String entryName(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 749
            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 750
            ldc ""
            astore 2 /* matchPath */
        start local 2 // java.lang.String matchPath
         2: .line 751
            aload 0 /* this */
            getfield sun.tools.jar.Main.paths:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 752
            aload 1 /* name */
            aload 3 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 753
            aload 3 /* path */
            invokevirtual java.lang.String.length:()I
            aload 2 /* matchPath */
            invokevirtual java.lang.String.length:()I
            if_icmple 7
         6: .line 754
            aload 3 /* path */
            astore 2 /* matchPath */
        end local 3 // java.lang.String path
         7: .line 751
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 757
            aload 1 /* name */
            aload 2 /* matchPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
         9: .line 758
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
        10: .line 761
            aload 1 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 762
            aload 1 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        12: .line 764
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 2 // java.lang.String matchPath
        end local 1 // java.lang.String name
        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       name  Ljava/lang/String;
            2   13     2  matchPath  Ljava/lang/String;
            4    7     3       path  Ljava/lang/String;
    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 768
            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 769
            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 770
            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 772
      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 775
            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 776
            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 777
            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 778
            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 779
            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 780
            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 779
            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 782
      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 785
            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 788
            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 789
            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 boolean isAmbiguousMainClass(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)Z
    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 792
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 6
         1: .line 793
            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 794
            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 6
         3: .line 795
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.eflag"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         4: .line 796
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
         5: .line 797
            iconst_1
            ireturn
        end local 2 // java.util.jar.Attributes global
         6: .line 800
      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    7     0    this  Lsun/tools/jar/Main;
            0    7     1       m  Ljava/util/jar/Manifest;
            2    6     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  void addFile(java.util.zip.ZipOutputStream, java.io.File);
    descriptor: (Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipOutputStream zos
        start local 2 // java.io.File file
         0: .line 807
            aload 2 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 808
            aload 2 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            istore 4 /* isDir */
        start local 4 // boolean isDir
         2: .line 809
            iload 4 /* isDir */
            ifeq 6
         3: .line 810
            aload 3 /* name */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
            aload 3 /* name */
            goto 5
         4: .line 811
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* name */
            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;
         5: .line 810
      StackMap locals:
      StackMap stack: java.lang.String
            astore 3 /* name */
         6: .line 813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
         7: .line 815
            aload 3 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 3 /* name */
            ldc "."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 3 /* name */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 816
      StackMap locals:
      StackMap stack:
            return
         9: .line 817
      StackMap locals:
      StackMap stack:
            aload 3 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            aload 3 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        10: .line 818
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 14
        11: .line 819
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 13
        12: .line 820
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.ignore.entry"
            aload 3 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        13: .line 822
      StackMap locals:
      StackMap stack:
            return
        14: .line 825
      StackMap locals:
      StackMap stack:
            iload 4 /* isDir */
            ifeq 15
            lconst_0
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2 /* file */
            invokevirtual java.io.File.length:()J
      StackMap locals:
      StackMap stack: long
        16: lstore 5 /* size */
        start local 5 // long size
        17: .line 827
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 19
        18: .line 828
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            aload 0 /* this */
            ldc "out.adding"
            aload 3 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        19: .line 830
      StackMap locals: long
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            aload 3 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
        20: .line 831
            aload 7 /* e */
            aload 2 /* file */
            invokevirtual java.io.File.lastModified:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        21: .line 832
            lload 5 /* size */
            lconst_0
            lcmp
            ifne 26
        22: .line 833
            aload 7 /* e */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        23: .line 834
            aload 7 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        24: .line 835
            aload 7 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        25: .line 836
            goto 28
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
        26: aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 28
        27: .line 837
            aload 0 /* this */
            aload 7 /* e */
            aload 2 /* file */
            invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
        28: .line 839
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        29: .line 840
            iload 4 /* isDir */
            ifne 31
        30: .line 841
            aload 0 /* this */
            aload 2 /* file */
            aload 1 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
        31: .line 843
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        32: .line 845
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 45
        33: .line 846
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            lstore 5 /* size */
        34: .line 847
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            lstore 8 /* csize */
        start local 8 // long csize
        35: .line 848
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            aload 0 /* this */
            ldc "out.size"
            lload 5 /* size */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        36: .line 849
            lload 8 /* csize */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        37: .line 848
            invokevirtual sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        38: .line 850
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 44
        39: .line 851
            lconst_0
            lstore 10 /* ratio */
        start local 10 // long ratio
        40: .line 852
            lload 5 /* size */
            lconst_0
            lcmp
            ifeq 42
        41: .line 853
            lload 5 /* size */
            lload 8 /* csize */
            lsub
            ldc 100
            lmul
            lload 5 /* size */
            ldiv
            lstore 10 /* ratio */
        42: .line 855
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.deflated"
            lload 10 /* ratio */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokevirtual 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 10 // long ratio
        43: .line 856
            goto 45
        44: .line 857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.stored"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 8 // long csize
        45: .line 860
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.util.zip.ZipEntry e
        end local 5 // long size
        end local 4 // boolean isDir
        end local 3 // java.lang.String name
        end local 2 // java.io.File file
        end local 1 // java.util.zip.ZipOutputStream zos
        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    zos  Ljava/util/zip/ZipOutputStream;
            0   46     2   file  Ljava/io/File;
            1   46     3   name  Ljava/lang/String;
            2   46     4  isDir  Z
           17   46     5   size  J
           20   46     7      e  Ljava/util/zip/ZipEntry;
           35   45     8  csize  J
           40   43    10  ratio  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      zos   
      file  

  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 879
            goto 2
        start local 3 // int n
         1: .line 880
      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 879
      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 881
            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=5, 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 892
            new java.io.FileInputStream
            dup
            aload 1 /* from */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 3 /* in */
        start local 3 // java.io.InputStream in
         1: .line 894
            aload 0 /* this */
            aload 3 /* in */
            aload 2 /* to */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         2: .line 895
            goto 6
      StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.io.InputStream
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 896
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
         5: .line 897
            aload 4
            athrow
         6: .line 896
      StackMap locals:
      StackMap stack:
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
         7: .line 898
            return
        end local 3 // java.io.InputStream in
        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    8     0  this  Lsun/tools/jar/Main;
            0    8     1  from  Ljava/io/File;
            0    8     2    to  Ljava/io/OutputStream;
            1    8     3    in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           1     3       3  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=5, 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 909
            new java.io.FileOutputStream
            dup
            aload 2 /* to */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 3 /* out */
        start local 3 // java.io.OutputStream out
         1: .line 911
            aload 0 /* this */
            aload 1 /* from */
            aload 3 /* out */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         2: .line 912
            goto 6
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.io.OutputStream
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 913
            aload 3 /* out */
            invokevirtual java.io.OutputStream.close:()V
         5: .line 914
            aload 4
            athrow
         6: .line 913
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            invokevirtual java.io.OutputStream.close:()V
         7: .line 915
            return
        end local 3 // java.io.OutputStream out
        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    8     0  this  Lsun/tools/jar/Main;
            0    8     1  from  Ljava/io/InputStream;
            0    8     2    to  Ljava/io/File;
            1    8     3   out  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  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 922
            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 923
            aload 2 /* m */
            aload 3 /* os */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
         2: .line 924
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         3: .line 925
            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=5, 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 932
            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 933
            aload 0 /* this */
            aload 2 /* f */
            aload 3 /* os */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
         2: .line 934
            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 935
            new sun.tools.jar.JarException
            dup
            aload 0 /* this */
         4: .line 936
            ldc "error.incorrect.length"
            aload 2 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
         5: .line 935
            invokevirtual 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 938
      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 939
            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.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] files
         0: .line 942
            aload 1 /* files */
            ifnull 6
         1: .line 943
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 944
      StackMap locals: int
      StackMap stack:
            aload 1 /* files */
            iload 2 /* i */
            aload 1 /* files */
            iload 2 /* i */
            aaload
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            aastore
         4: .line 943
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* files */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 947
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] files
        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  files  [Ljava/lang/String;
            2    6     2      i  I
    MethodParameters:
       Name  Flags
      files  

  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 951
            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 958
            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 959
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 4 /* lastModified */
        start local 4 // long lastModified
         3: .line 960
            lload 4 /* lastModified */
            ldc -1
            lcmp
            ifeq 8
         4: .line 961
            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 962
            aload 6 /* name */
            invokevirtual java.lang.String.length:()I
            ifeq 8
         6: .line 963
            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 964
            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 958
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 968
            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   

  void extract(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=11, 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 974
            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 978
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 5 /* dirs */
        start local 5 // java.util.Set dirs
         2: .line 979
            goto 14
        start local 4 // java.util.zip.ZipEntry e
         3: .line 980
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry java.util.Set
      StackMap stack:
            aload 2 /* files */
            ifnonnull 6
         4: .line 981
            aload 5 /* 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
         5: .line 982
            goto 14
         6: .line 983
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         7: .line 984
            aload 2 /* files */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 13
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry java.util.Set java.lang.String top int int java.lang.String[]
      StackMap stack:
         8: aload 10
            iload 8
            aaload
            astore 7 /* file */
        start local 7 // java.lang.String file
         9: .line 985
            aload 6 /* name */
            aload 7 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 986
            aload 5 /* 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
        11: .line 987
            goto 14
        end local 7 // java.lang.String file
        12: .line 984
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        13: iload 8
            iload 9
            if_icmplt 8
        end local 6 // java.lang.String name
        end local 4 // java.util.zip.ZipEntry e
        14: .line 979
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top 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
        15: ifnonnull 3
        16: .line 997
            aload 0 /* this */
            aload 5 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        17: .line 998
            return
        end local 5 // java.util.Set dirs
        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   18     0   this  Lsun/tools/jar/Main;
            0   18     1     in  Ljava/io/InputStream;
            0   18     2  files  [Ljava/lang/String;
            1   18     3    zis  Ljava/util/zip/ZipInputStream;
            3   14     4      e  Ljava/util/zip/ZipEntry;
           15   18     4      e  Ljava/util/zip/ZipEntry;
            2   18     5   dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            7   14     6   name  Ljava/lang/String;
            9   12     7   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 1004
            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 1005
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 4 /* dirs */
        start local 4 // java.util.Set dirs
         2: .line 1006
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 5 /* zes */
        start local 5 // java.util.Enumeration zes
         3: .line 1007
            goto 16
         4: .line 1008
      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 1009
            aload 2 /* files */
            ifnonnull 8
         6: .line 1010
            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 1011
            goto 16
         8: .line 1012
      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 1013
            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 1014
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1015
            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 1016
            goto 16
        end local 8 // java.lang.String file
        14: .line 1013
      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 1007
      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 1021
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        18: .line 1022
            aload 0 /* this */
            aload 4 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1023
            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 1031
            aconst_null
            astore 3 /* rc */
        start local 3 // java.util.zip.ZipEntry rc
         1: .line 1037
            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 1038
            aload 4 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 1039
            aload 3 /* rc */
            areturn
         4: .line 1041
      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 1042
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifeq 19
         6: .line 1043
            aload 5 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         7: .line 1044
            aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 16
         8: .line 1045
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.create.dir"
         9: .line 1046
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        10: .line 1045
            invokevirtual 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 1049
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 15
        12: .line 1050
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.create.dir"
        13: .line 1051
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        14: .line 1050
            invokevirtual 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 1053
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            astore 3 /* rc */
        16: .line 1057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        17: .line 1058
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.create"
            aload 4 /* name */
            invokevirtual 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 1060
            goto 41
        19: .line 1061
      StackMap locals:
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            ifnull 26
        20: .line 1062
            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 1063
            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 1064
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 0 /* this */
        24: .line 1065
            ldc "error.create.dir"
            aload 6 /* d */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        25: .line 1064
            invokevirtual 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 1069
      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 1070
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
        29: .line 1071
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 31
        30: .line 1072
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 32
        31: .line 1074
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        32: .line 1075
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        33: .line 1071
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 35
        34: .line 1072
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 36
        35: .line 1074
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        36: .line 1076
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        37: .line 1077
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 40
        38: .line 1078
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.inflated"
            aload 4 /* name */
            invokevirtual 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 1079
            goto 41
        40: .line 1080
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.extracted"
            aload 4 /* name */
            invokevirtual 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 1084
      StackMap locals:
      StackMap stack:
            getstatic sun.tools.jar.Main.useExtractionTime:Z
            ifne 45
        42: .line 1085
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 6 /* lastModified */
        start local 6 // long lastModified
        43: .line 1086
            lload 6 /* lastModified */
            ldc -1
            lcmp
            ifeq 45
        44: .line 1087
            aload 5 /* f */
            lload 6 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 6 // long lastModified
        45: .line 1090
      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 1097
            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 1099
            goto 4
        start local 4 // java.util.zip.ZipEntry e
         2: .line 1106
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
         3: .line 1107
            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 1099
      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 1109
            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 1115
            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 1116
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 4 /* zes */
        start local 4 // java.util.Enumeration zes
         2: .line 1117
            goto 4
         3: .line 1118
      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 1117
      StackMap locals:
      StackMap stack:
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 1120
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
         6: .line 1121
            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, sun.misc.JarIndex);
    descriptor: (Ljava/lang/String;Lsun/misc/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 // sun.misc.JarIndex index
         0: .line 1128
            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 1129
            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 1130
            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 1132
            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 1133
            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 1134
            aconst_null
            aload 2 /* index */
         6: .line 1132
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
         7: .line 1134
            ifeq 15
         8: .line 1136
            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 1137
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String sun.misc.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 1138
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.write.file"
            invokevirtual 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 1141
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        13: .line 1142
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        14: .line 1143
            aload 7
            athrow
        15: .line 1142
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        16: .line 1144
            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 // sun.misc.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  Lsun/misc/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 1153
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.List files
         1: .line 1154
            aload 2 /* files */
            aload 1 /* jar */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1155
            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 1158
            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 1163
            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 1165
            aload 4 /* rf */
            ifnull 20
         6: .line 1166
            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 1167
            aload 5 /* man */
            ifnull 20
         8: .line 1168
            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 1169
            aload 6 /* attr */
            ifnull 20
        10: .line 1170
            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 1171
            aload 7 /* value */
            ifnull 20
        12: .line 1172
            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 1173
            goto 19
        14: .line 1174
      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 1175
            aload 9 /* ajar */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 19
        16: .line 1176
            aload 3 /* path */
            aload 9 /* ajar */
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* ajar */
        17: .line 1178
            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 1179
            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 1173
      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 1187
      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 1188
            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 1195
            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 1196
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
        start local 4 // int njars
         2: .line 1199
            iload 4 /* njars */
            iconst_1
            if_icmpne 9
            aload 2 /* files */
            ifnull 9
         3: .line 1202
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 7
         5: .line 1203
      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 1202
            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 1205
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
         9: .line 1207
      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 1208
            new sun.misc.JarIndex
            dup
            aload 5 /* jarfiles */
            invokespecial sun.misc.JarIndex.<init>:([Ljava/lang/String;)V
            astore 6 /* index */
        start local 6 // sun.misc.JarIndex index
        11: .line 1209
            aload 0 /* this */
            aload 1 /* rootjar */
            aload 6 /* index */
            invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Lsun/misc/JarIndex;)V
        12: .line 1210
            return
        end local 6 // sun.misc.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  Lsun/misc/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 1216
            aload 2 /* files */
            ifnonnull 3
         1: .line 1217
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         2: .line 1218
            goto 11
         3: .line 1219
      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 1220
            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 1221
            aload 3 /* name */
            aload 4 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 1222
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         8: .line 1223
            return
        end local 4 // java.lang.String file
         9: .line 1220
      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 1227
      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 1233
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
         1: .line 1234
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 1235
            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 1236
            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 1237
      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 1236
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            ifgt 5
        end local 4 // int i
         8: .line 1239
            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 1240
            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 1241
            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 1242
            goto 13
        12: .line 1243
      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 1245
      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();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 1251
            aload 0 /* this */
            aload 0 /* this */
            ldc "usage"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         1: .line 1252
            return
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;

  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 1258
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         1: .line 1259
            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 1266
            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 1267
            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 1273
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            aload 1 /* s */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 1274
            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 error(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 1280
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
            aload 1 /* s */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 1281
            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 1287
            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 1288
            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 1289
            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=5, 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 1328
            aconst_null
            astore 3 /* tmpfile */
        start local 3 // java.io.File tmpfile
         1: .line 1331
            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 1332
            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 1335
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            ifnonnull 13
         5: .line 1337
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 12
         6: .line 1339
            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 1340
            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 1341
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         9: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        10: .line 1343
            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 1345
            goto 13
        12: .line 1347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.create.tempfile"
            invokevirtual 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 1350
      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   
}
SourceFile: "Main.java"
NestMembers:
  sun.tools.jar.Main$1  sun.tools.jar.Main$CRC32OutputStream
InnerClasses:
  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
  sun.tools.jar.Main$1
  private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main