public class com.sun.tools.sjavac.Source implements java.lang.Comparable<com.sun.tools.sjavac.Source>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.sjavac.Source
  super_class: java.lang.Object
{
  private com.sun.tools.sjavac.Package pkg;
    descriptor: Lcom/sun/tools/sjavac/Package;
    flags: (0x0002) ACC_PRIVATE

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

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

  private long lastModified;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.io.File file;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

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

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

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.sjavac.Source this
        start local 1 // java.lang.Object o
         0: .line 75
            aload 1 /* o */
            instanceof com.sun.tools.sjavac.Source
            ifeq 1
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            aload 1 /* o */
            checkcast com.sun.tools.sjavac.Source
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/sjavac/Source;
            0    2     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public int compareTo(com.sun.tools.sjavac.Source);
    descriptor: (Lcom/sun/tools/sjavac/Source;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.sjavac.Source this
        start local 1 // com.sun.tools.sjavac.Source o
         0: .line 80
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            aload 1 /* o */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // com.sun.tools.sjavac.Source o
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;
            0    1     1     o  Lcom/sun/tools/sjavac/Source;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 85
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public void <init>(com.sun.tools.sjavac.Module, java.lang.String, java.io.File);
    descriptor: (Lcom/sun/tools/sjavac/Module;Ljava/lang/String;Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.sun.tools.sjavac.Source this
        start local 1 // com.sun.tools.sjavac.Module m
        start local 2 // java.lang.String n
        start local 3 // java.io.File f
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 89
            aload 0 /* this */
            aload 2 /* n */
            putfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
         2: .line 90
            aload 2 /* n */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 4 /* dp */
        start local 4 // int dp
         3: .line 91
            iload 4 /* dp */
            iconst_m1
            if_icmpeq 6
         4: .line 92
            aload 0 /* this */
            aload 2 /* n */
            iload 4 /* dp */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield com.sun.tools.sjavac.Source.suffix:Ljava/lang/String;
         5: .line 93
            goto 7
         6: .line 94
      StackMap locals: com.sun.tools.sjavac.Source com.sun.tools.sjavac.Module java.lang.String java.io.File int
      StackMap stack:
            aload 0 /* this */
            ldc ""
            putfield com.sun.tools.sjavac.Source.suffix:Ljava/lang/String;
         7: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* f */
            putfield com.sun.tools.sjavac.Source.file:Ljava/io/File;
         8: .line 97
            aload 0 /* this */
            aload 3 /* f */
            invokevirtual java.io.File.lastModified:()J
            putfield com.sun.tools.sjavac.Source.lastModified:J
         9: .line 98
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.sjavac.Source.linkedOnly:Z
        10: .line 99
            return
        end local 4 // int dp
        end local 3 // java.io.File f
        end local 2 // java.lang.String n
        end local 1 // com.sun.tools.sjavac.Module m
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/tools/sjavac/Source;
            0   11     1     m  Lcom/sun/tools/sjavac/Module;
            0   11     2     n  Ljava/lang/String;
            0   11     3     f  Ljava/io/File;
            3   11     4    dp  I
    MethodParameters:
      Name  Flags
      m     
      n     
      f     

  public void <init>(com.sun.tools.sjavac.Package, java.lang.String, long);
    descriptor: (Lcom/sun/tools/sjavac/Package;Ljava/lang/String;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.sun.tools.sjavac.Source this
        start local 1 // com.sun.tools.sjavac.Package p
        start local 2 // java.lang.String n
        start local 3 // long lm
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 102
            aload 0 /* this */
            aload 1 /* p */
            putfield com.sun.tools.sjavac.Source.pkg:Lcom/sun/tools/sjavac/Package;
         2: .line 103
            aload 0 /* this */
            aload 2 /* n */
            putfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
         3: .line 104
            aload 2 /* n */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 5 /* dp */
        start local 5 // int dp
         4: .line 105
            iload 5 /* dp */
            iconst_m1
            if_icmpeq 7
         5: .line 106
            aload 0 /* this */
            aload 2 /* n */
            iload 5 /* dp */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield com.sun.tools.sjavac.Source.suffix:Ljava/lang/String;
         6: .line 107
            goto 8
         7: .line 108
      StackMap locals: com.sun.tools.sjavac.Source com.sun.tools.sjavac.Package java.lang.String long int
      StackMap stack:
            aload 0 /* this */
            ldc ""
            putfield com.sun.tools.sjavac.Source.suffix:Ljava/lang/String;
         8: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.sjavac.Source.file:Ljava/io/File;
         9: .line 111
            aload 0 /* this */
            lload 3 /* lm */
            putfield com.sun.tools.sjavac.Source.lastModified:J
        10: .line 112
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.sjavac.Source.linkedOnly:Z
        11: .line 113
            aload 2 /* n */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            pop
        12: .line 114
            return
        end local 5 // int dp
        end local 3 // long lm
        end local 2 // java.lang.String n
        end local 1 // com.sun.tools.sjavac.Package p
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/sun/tools/sjavac/Source;
            0   13     1     p  Lcom/sun/tools/sjavac/Package;
            0   13     2     n  Ljava/lang/String;
            0   13     3    lm  J
            4   13     5    dp  I
    MethodParameters:
      Name  Flags
      p     
      n     
      lm    

  public java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 116
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public java.lang.String suffix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 117
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.suffix:Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public com.sun.tools.sjavac.Package pkg();
    descriptor: ()Lcom/sun/tools/sjavac/Package;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 118
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.pkg:Lcom/sun/tools/sjavac/Package;
            areturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public java.io.File file();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 119
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.file:Ljava/io/File;
            areturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public long lastModified();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 121
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.lastModified:J
            lreturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public void setPackage(com.sun.tools.sjavac.Package);
    descriptor: (Lcom/sun/tools/sjavac/Package;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.sjavac.Source this
        start local 1 // com.sun.tools.sjavac.Package p
         0: .line 125
            aload 0 /* this */
            aload 1 /* p */
            putfield com.sun.tools.sjavac.Source.pkg:Lcom/sun/tools/sjavac/Package;
         1: .line 126
            return
        end local 1 // com.sun.tools.sjavac.Package p
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/sjavac/Source;
            0    2     1     p  Lcom/sun/tools/sjavac/Package;
    MethodParameters:
      Name  Flags
      p     

  public void markAsGenerated();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 129
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.sjavac.Source.isGenerated:Z
         1: .line 130
            return
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/sjavac/Source;

  public boolean isGenerated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 133
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.isGenerated:Z
            ireturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  public void markAsLinkedOnly();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 137
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.sjavac.Source.linkedOnly:Z
         1: .line 138
            return
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/sjavac/Source;

  public boolean isLinkedOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 141
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.linkedOnly:Z
            ireturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/sjavac/Source;

  private void save(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.tools.sjavac.Source this
        start local 1 // java.lang.StringBuilder b
         0: .line 145
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.linkedOnly:Z
            ifeq 1
            ldc "L"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "C"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 2 /* CL */
        start local 2 // java.lang.String CL
         3: .line 146
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.isGenerated:Z
            ifeq 4
            ldc "G"
            goto 5
      StackMap locals: java.lang.String
      StackMap stack:
         4: ldc "S"
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 3 /* GS */
        start local 3 // java.lang.String GS
         6: .line 147
            aload 1 /* b */
            new java.lang.StringBuilder
            dup
            aload 3 /* GS */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* CL */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.file:Ljava/io/File;
            invokevirtual java.io.File.lastModified:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 148
            return
        end local 3 // java.lang.String GS
        end local 2 // java.lang.String CL
        end local 1 // java.lang.StringBuilder b
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/sjavac/Source;
            0    8     1     b  Ljava/lang/StringBuilder;
            3    8     2    CL  Ljava/lang/String;
            6    8     3    GS  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      b     

  public static com.sun.tools.sjavac.Source load(com.sun.tools.sjavac.Package, java.lang.String, boolean);
    descriptor: (Lcom/sun/tools/sjavac/Package;Ljava/lang/String;Z)Lcom/sun/tools/sjavac/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.sun.tools.sjavac.Package lastPackage
        start local 1 // java.lang.String l
        start local 2 // boolean isGenerated
         0: .line 152
            aload 1 /* l */
            bipush 32
            iconst_4
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* sp */
        start local 3 // int sp
         1: .line 153
            iload 3 /* sp */
            iconst_m1
            if_icmpne 2
            aconst_null
            areturn
         2: .line 154
      StackMap locals: int
      StackMap stack:
            aload 1 /* l */
            iconst_4
            iload 3 /* sp */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         3: .line 155
            aload 1 /* l */
            iload 3 /* sp */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 5 /* last_modified */
        start local 5 // long last_modified
         4: .line 157
            iconst_0
            istore 7 /* isLinkedOnly */
        start local 7 // boolean isLinkedOnly
         5: .line 158
            aload 1 /* l */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 76
            if_icmpne 8
         6: .line 159
            iconst_1
            istore 7 /* isLinkedOnly */
         7: .line 160
            goto 12
      StackMap locals: java.lang.String long int
      StackMap stack:
         8: aload 1 /* l */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 67
            if_icmpne 11
         9: .line 161
            iconst_0
            istore 7 /* isLinkedOnly */
        10: .line 162
            goto 12
      StackMap locals:
      StackMap stack:
        11: aconst_null
            areturn
        12: .line 164
      StackMap locals:
      StackMap stack:
            new com.sun.tools.sjavac.Source
            dup
            aload 0 /* lastPackage */
            aload 4 /* name */
            lload 5 /* last_modified */
            invokespecial com.sun.tools.sjavac.Source.<init>:(Lcom/sun/tools/sjavac/Package;Ljava/lang/String;J)V
            astore 8 /* s */
        start local 8 // com.sun.tools.sjavac.Source s
        13: .line 165
            aload 8 /* s */
            new java.io.File
            dup
            aload 4 /* name */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            putfield com.sun.tools.sjavac.Source.file:Ljava/io/File;
        14: .line 166
            iload 2 /* isGenerated */
            ifeq 15
            aload 8 /* s */
            invokevirtual com.sun.tools.sjavac.Source.markAsGenerated:()V
        15: .line 167
      StackMap locals: com.sun.tools.sjavac.Source
      StackMap stack:
            iload 7 /* isLinkedOnly */
            ifeq 16
            aload 8 /* s */
            invokevirtual com.sun.tools.sjavac.Source.markAsLinkedOnly:()V
        16: .line 168
      StackMap locals:
      StackMap stack:
            aload 8 /* s */
            areturn
        end local 8 // com.sun.tools.sjavac.Source s
        end local 7 // boolean isLinkedOnly
        end local 5 // long last_modified
        end local 4 // java.lang.String name
        end local 3 // int sp
        end local 2 // boolean isGenerated
        end local 1 // java.lang.String l
        end local 0 // com.sun.tools.sjavac.Package lastPackage
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0    lastPackage  Lcom/sun/tools/sjavac/Package;
            0   17     1              l  Ljava/lang/String;
            0   17     2    isGenerated  Z
            1   17     3             sp  I
            3   17     4           name  Ljava/lang/String;
            4   17     5  last_modified  J
            5   17     7   isLinkedOnly  Z
           13   17     8              s  Lcom/sun/tools/sjavac/Source;
    MethodParameters:
             Name  Flags
      lastPackage  
      l            
      isGenerated  

  public static void saveSources(java.util.Map<java.lang.String, com.sun.tools.sjavac.Source>, java.lang.StringBuilder);
    descriptor: (Ljava/util/Map;Ljava/lang/StringBuilder;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.util.Map sources
        start local 1 // java.lang.StringBuilder b
         0: .line 172
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* sorted_sources */
        start local 2 // java.util.List sorted_sources
         1: .line 173
            aload 0 /* sources */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.util.Map java.lang.StringBuilder java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* key */
        start local 3 // java.lang.String key
         3: .line 174
            aload 2 /* sorted_sources */
            aload 3 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String key
         4: .line 173
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 176
            aload 2 /* sorted_sources */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         6: .line 177
            aload 2 /* sorted_sources */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals:
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* key */
        start local 3 // java.lang.String key
         8: .line 178
            aload 0 /* sources */
            aload 3 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.sjavac.Source
            astore 5 /* s */
        start local 5 // com.sun.tools.sjavac.Source s
         9: .line 179
            aload 5 /* s */
            aload 1 /* b */
            invokevirtual com.sun.tools.sjavac.Source.save:(Ljava/lang/StringBuilder;)V
        end local 5 // com.sun.tools.sjavac.Source s
        end local 3 // java.lang.String key
        10: .line 177
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 181
            return
        end local 2 // java.util.List sorted_sources
        end local 1 // java.lang.StringBuilder b
        end local 0 // java.util.Map sources
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0         sources  Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/sjavac/Source;>;
            0   12     1               b  Ljava/lang/StringBuilder;
            1   12     2  sorted_sources  Ljava/util/List<Ljava/lang/String;>;
            3    4     3             key  Ljava/lang/String;
            8   10     3             key  Ljava/lang/String;
            9   10     5               s  Lcom/sun/tools/sjavac/Source;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/sjavac/Source;>;Ljava/lang/StringBuilder;)V
    MethodParameters:
         Name  Flags
      sources  
      b        

  public static void scanRoot(java.io.File, java.util.Set<java.lang.String>, java.util.List<java.lang.String>, java.util.List<java.lang.String>, java.util.Map<java.lang.String, com.sun.tools.sjavac.Source>, java.util.Map<java.lang.String, com.sun.tools.sjavac.Module>, com.sun.tools.sjavac.Module, boolean, boolean, );
    descriptor: (Ljava/io/File;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lcom/sun/tools/sjavac/Module;ZZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=13, args_size=10
        start local 0 // java.io.File root
        start local 1 // java.util.Set suffixes
        start local 2 // java.util.List excludes
        start local 3 // java.util.List includes
        start local 4 // java.util.Map foundFiles
        start local 5 // java.util.Map foundModules
        start local 6 // com.sun.tools.sjavac.Module currentModule
        start local 7 // boolean permitSourcesWithoutPackage
        start local 8 // boolean inGensrc
        start local 9 // boolean inLinksrc
         0: .line 200
            aload 0 /* root */
            ifnonnull 2
         1: .line 201
            return
         2: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* root */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
            astore 10 /* fs */
        start local 10 // java.nio.file.FileSystem fs
         3: .line 205
            aload 3 /* includes */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 5
         4: .line 206
            ldc "**"
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 3 /* includes */
         5: .line 209
      StackMap locals: java.nio.file.FileSystem
      StackMap stack:
            aload 10 /* fs */
            aload 3 /* includes */
            invokestatic com.sun.tools.sjavac.Source.createPathMatchers:(Ljava/nio/file/FileSystem;Ljava/util/List;)Ljava/util/List;
            astore 11 /* includeMatchers */
        start local 11 // java.util.List includeMatchers
         6: .line 210
            aload 10 /* fs */
            aload 2 /* excludes */
            invokestatic com.sun.tools.sjavac.Source.createPathMatchers:(Ljava/nio/file/FileSystem;Ljava/util/List;)Ljava/util/List;
            astore 12 /* excludeMatchers */
        start local 12 // java.util.List excludeMatchers
         7: .line 212
            aload 0 /* root */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            new com.sun.tools.sjavac.Source$1
            dup
            aload 0 /* root */
            aload 11 /* includeMatchers */
            aload 12 /* excludeMatchers */
            aload 1 /* suffixes */
            aload 4 /* foundFiles */
            aload 6 /* currentModule */
            iload 9 /* inLinksrc */
            iload 8 /* inGensrc */
            invokespecial com.sun.tools.sjavac.Source$1.<init>:(Ljava/io/File;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Ljava/util/Map;Lcom/sun/tools/sjavac/Module;ZZ)V
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
         8: .line 272
            return
        end local 12 // java.util.List excludeMatchers
        end local 11 // java.util.List includeMatchers
        end local 10 // java.nio.file.FileSystem fs
        end local 9 // boolean inLinksrc
        end local 8 // boolean inGensrc
        end local 7 // boolean permitSourcesWithoutPackage
        end local 6 // com.sun.tools.sjavac.Module currentModule
        end local 5 // java.util.Map foundModules
        end local 4 // java.util.Map foundFiles
        end local 3 // java.util.List includes
        end local 2 // java.util.List excludes
        end local 1 // java.util.Set suffixes
        end local 0 // java.io.File root
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    9     0                         root  Ljava/io/File;
            0    9     1                     suffixes  Ljava/util/Set<Ljava/lang/String;>;
            0    9     2                     excludes  Ljava/util/List<Ljava/lang/String;>;
            0    9     3                     includes  Ljava/util/List<Ljava/lang/String;>;
            0    9     4                   foundFiles  Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/sjavac/Source;>;
            0    9     5                 foundModules  Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/sjavac/Module;>;
            0    9     6                currentModule  Lcom/sun/tools/sjavac/Module;
            0    9     7  permitSourcesWithoutPackage  Z
            0    9     8                     inGensrc  Z
            0    9     9                    inLinksrc  Z
            3    9    10                           fs  Ljava/nio/file/FileSystem;
            6    9    11              includeMatchers  Ljava/util/List<Ljava/nio/file/PathMatcher;>;
            7    9    12              excludeMatchers  Ljava/util/List<Ljava/nio/file/PathMatcher;>;
    Exceptions:
      throws java.io.IOException, com.sun.tools.sjavac.ProblemException
    Signature: (Ljava/io/File;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/sjavac/Source;>;Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/sjavac/Module;>;Lcom/sun/tools/sjavac/Module;ZZZ)V
    MethodParameters:
                             Name  Flags
      root                         
      suffixes                     
      excludes                     
      includes                     
      foundFiles                   
      foundModules                 
      currentModule                final
      permitSourcesWithoutPackage  
      inGensrc                     
      inLinksrc                    

  private static java.util.List<java.nio.file.PathMatcher> createPathMatchers(java.nio.file.FileSystem, java.util.List<java.lang.String>);
    descriptor: (Ljava/nio/file/FileSystem;Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.nio.file.FileSystem fs
        start local 1 // java.util.List patterns
         0: .line 275
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* matchers */
        start local 2 // java.util.List matchers
         1: .line 276
            aload 1 /* patterns */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: java.nio.file.FileSystem java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* pattern */
        start local 3 // java.lang.String pattern
         3: .line 278
            aload 2 /* matchers */
            aload 0 /* fs */
            new java.lang.StringBuilder
            dup
            ldc "glob:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* pattern */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.nio.file.FileSystem.getPathMatcher:(Ljava/lang/String;)Ljava/nio/file/PathMatcher;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 279
            goto 8
      StackMap locals: java.nio.file.FileSystem java.util.List java.util.List java.lang.String java.util.Iterator
      StackMap stack: java.util.regex.PatternSyntaxException
         5: astore 5 /* e */
        start local 5 // java.util.regex.PatternSyntaxException e
         6: .line 280
            new java.lang.StringBuilder
            dup
            ldc "Invalid pattern: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* pattern */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.tools.sjavac.Log.error:(Ljava/lang/String;)V
         7: .line 281
            aload 5 /* e */
            athrow
        end local 5 // java.util.regex.PatternSyntaxException e
        end local 3 // java.lang.String pattern
         8: .line 276
      StackMap locals: java.nio.file.FileSystem java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 284
            aload 2 /* matchers */
            areturn
        end local 2 // java.util.List matchers
        end local 1 // java.util.List patterns
        end local 0 // java.nio.file.FileSystem fs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0        fs  Ljava/nio/file/FileSystem;
            0   10     1  patterns  Ljava/util/List<Ljava/lang/String;>;
            1   10     2  matchers  Ljava/util/List<Ljava/nio/file/PathMatcher;>;
            3    8     3   pattern  Ljava/lang/String;
            6    8     5         e  Ljava/util/regex/PatternSyntaxException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.util.regex.PatternSyntaxException
    Signature: (Ljava/nio/file/FileSystem;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/nio/file/PathMatcher;>;
    MethodParameters:
          Name  Flags
      fs        
      patterns  

  private static java.lang.String packageOfJavaFile(java.nio.file.Path, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.nio.file.Path sourceRoot
        start local 1 // java.nio.file.Path javaFile
         0: .line 288
            aload 1 /* javaFile */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 2 /* javaFileDir */
        start local 2 // java.nio.file.Path javaFileDir
         1: .line 289
            aload 0 /* sourceRoot */
            aload 2 /* javaFileDir */
            invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 3 /* packageDir */
        start local 3 // java.nio.file.Path packageDir
         2: .line 290
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* separateDirs */
        start local 4 // java.util.List separateDirs
         3: .line 291
            aload 3 /* packageDir */
            invokeinterface java.nio.file.Path.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: java.nio.file.Path java.nio.file.Path java.nio.file.Path java.nio.file.Path java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 5 /* pathElement */
        start local 5 // java.nio.file.Path pathElement
         5: .line 292
            aload 4 /* separateDirs */
            aload 5 /* pathElement */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.nio.file.Path pathElement
         6: .line 291
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 294
            ldc "."
            aload 4 /* separateDirs */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            areturn
        end local 4 // java.util.List separateDirs
        end local 3 // java.nio.file.Path packageDir
        end local 2 // java.nio.file.Path javaFileDir
        end local 1 // java.nio.file.Path javaFile
        end local 0 // java.nio.file.Path sourceRoot
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0    sourceRoot  Ljava/nio/file/Path;
            0    8     1      javaFile  Ljava/nio/file/Path;
            1    8     2   javaFileDir  Ljava/nio/file/Path;
            2    8     3    packageDir  Ljava/nio/file/Path;
            3    8     4  separateDirs  Ljava/util/List<Ljava/lang/String;>;
            5    6     5   pathElement  Ljava/nio/file/Path;
    MethodParameters:
            Name  Flags
      sourceRoot  
      javaFile    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Source this
         0: .line 299
            ldc "%s[pkg: %s, name: %s, suffix: %s, file: %s, isGenerated: %b, linkedOnly: %b]"
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 300
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 301
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.pkg:Lcom/sun/tools/sjavac/Package;
            aastore
            dup
            iconst_2
         3: .line 302
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.name:Ljava/lang/String;
            aastore
            dup
            iconst_3
         4: .line 303
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.suffix:Ljava/lang/String;
            aastore
            dup
            iconst_4
         5: .line 304
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.file:Ljava/io/File;
            aastore
            dup
            iconst_5
         6: .line 305
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.isGenerated:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            bipush 6
         7: .line 306
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Source.linkedOnly:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
         8: .line 299
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.sjavac.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/sjavac/Source;

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.sun.tools.sjavac.Source
            invokevirtual com.sun.tools.sjavac.Source.compareTo:(Lcom/sun/tools/sjavac/Source;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Lcom/sun/tools/sjavac/Source;>;
SourceFile: "Source.java"
NestMembers:
  com.sun.tools.sjavac.Source$1
InnerClasses:
  com.sun.tools.sjavac.Source$1