public class org.aspectj.apache.bcel.util.ClassPath implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.apache.bcel.util.ClassPath
  super_class: java.lang.Object
{
  private static final java.lang.String JRT_FS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jrt-fs.jar"

  private static org.aspectj.apache.bcel.util.ClassPath SYSTEM_CLASS_PATH;
    descriptor: Lorg/aspectj/apache/bcel/util/ClassPath;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private org.aspectj.apache.bcel.util.ClassPath$PathEntry[] paths;
    descriptor: [Lorg/aspectj/apache/bcel/util/ClassPath$PathEntry;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 91
            aconst_null
            putstatic org.aspectj.apache.bcel.util.ClassPath.SYSTEM_CLASS_PATH:Lorg/aspectj/apache/bcel/util/ClassPath;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.aspectj.apache.bcel.util.ClassPath getSystemClassPath();
    descriptor: ()Lorg/aspectj/apache/bcel/util/ClassPath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 97
            getstatic org.aspectj.apache.bcel.util.ClassPath.SYSTEM_CLASS_PATH:Lorg/aspectj/apache/bcel/util/ClassPath;
            ifnonnull 2
         1: .line 98
            new org.aspectj.apache.bcel.util.ClassPath
            dup
            invokespecial org.aspectj.apache.bcel.util.ClassPath.<init>:()V
            putstatic org.aspectj.apache.bcel.util.ClassPath.SYSTEM_CLASS_PATH:Lorg/aspectj/apache/bcel/util/ClassPath;
         2: .line 100
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.apache.bcel.util.ClassPath.SYSTEM_CLASS_PATH:Lorg/aspectj/apache/bcel/util/ClassPath;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String class_path
         0: .line 106
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 107
            aload 0 /* this */
            aload 1 /* class_path */
            putfield org.aspectj.apache.bcel.util.ClassPath.class_path:Ljava/lang/String;
         2: .line 109
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* vec */
        start local 2 // java.util.ArrayList vec
         3: .line 111
            new java.util.StringTokenizer
            dup
            aload 1 /* class_path */
            ldc "path.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* tok */
        start local 3 // java.util.StringTokenizer tok
         4: goto 19
         5: .line 113
      StackMap locals: org.aspectj.apache.bcel.util.ClassPath java.lang.String java.util.ArrayList java.util.StringTokenizer
      StackMap stack:
            aload 3 /* tok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
         6: .line 115
            aload 4 /* path */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
         7: .line 116
            new java.io.File
            dup
            aload 4 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* file */
        start local 5 // java.io.File file
         8: .line 119
            aload 5 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 19
         9: .line 120
            aload 5 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 12
        10: .line 121
            aload 2 /* vec */
            new org.aspectj.apache.bcel.util.ClassPath$Dir
            dup
            aload 4 /* path */
            invokespecial org.aspectj.apache.bcel.util.ClassPath$Dir.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 122
            goto 19
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
        12: aload 5 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            ldc "jrt-fs.jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 123
            aload 2 /* vec */
            new org.aspectj.apache.bcel.util.ClassPath$JImage
            dup
            invokespecial org.aspectj.apache.bcel.util.ClassPath$JImage.<init>:()V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        14: .line 124
            goto 19
        15: .line 125
      StackMap locals:
      StackMap stack:
            aload 2 /* vec */
            new org.aspectj.apache.bcel.util.ClassPath$Zip
            dup
            new java.util.zip.ZipFile
            dup
            aload 5 /* file */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            invokespecial org.aspectj.apache.bcel.util.ClassPath$Zip.<init>:(Ljava/util/zip/ZipFile;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 128
            goto 19
      StackMap locals:
      StackMap stack: java.io.IOException
        17: astore 6 /* e */
        start local 6 // java.io.IOException e
        18: .line 129
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "CLASSPATH component "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 6 // java.io.IOException e
        end local 5 // java.io.File file
        end local 4 // java.lang.String path
        19: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* tok */
        20: .line 112
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 5
        end local 3 // java.util.StringTokenizer tok
        21: .line 134
            aload 0 /* this */
            aload 2 /* vec */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.aspectj.apache.bcel.util.ClassPath$PathEntry
            putfield org.aspectj.apache.bcel.util.ClassPath.paths:[Lorg/aspectj/apache/bcel/util/ClassPath$PathEntry;
        22: .line 135
            aload 2 /* vec */
            aload 0 /* this */
            getfield org.aspectj.apache.bcel.util.ClassPath.paths:[Lorg/aspectj/apache/bcel/util/ClassPath$PathEntry;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        23: .line 136
            return
        end local 2 // java.util.ArrayList vec
        end local 1 // java.lang.String class_path
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0   24     1  class_path  Ljava/lang/String;
            3   24     2         vec  Ljava/util/ArrayList<Lorg/aspectj/apache/bcel/util/ClassPath$PathEntry;>;
            4   21     3         tok  Ljava/util/StringTokenizer;
            6   19     4        path  Ljava/lang/String;
            8   19     5        file  Ljava/io/File;
           18   19     6           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8    16      17  Class java.io.IOException
    MethodParameters:
            Name  Flags
      class_path  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
         0: .line 145
            aload 0 /* this */
            invokestatic org.aspectj.apache.bcel.util.ClassPath.getClassPath:()Ljava/lang/String;
            invokespecial org.aspectj.apache.bcel.util.ClassPath.<init>:(Ljava/lang/String;)V
         1: .line 146
            return
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
         0: .line 153
            aload 0 /* this */
            getfield org.aspectj.apache.bcel.util.ClassPath.class_path:Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
         0: .line 158
            aload 0 /* this */
            getfield org.aspectj.apache.bcel.util.ClassPath.class_path:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;

  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 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.Object o
         0: .line 163
            aload 1 /* o */
            instanceof org.aspectj.apache.bcel.util.ClassPath
            ifeq 2
         1: .line 164
            aload 0 /* this */
            getfield org.aspectj.apache.bcel.util.ClassPath.class_path:Ljava/lang/String;
            aload 1 /* o */
            checkcast org.aspectj.apache.bcel.util.ClassPath
            getfield org.aspectj.apache.bcel.util.ClassPath.class_path:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
         2: .line 167
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    3     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  private static final void getPathComponents(java.lang.String, java.util.ArrayList<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/ArrayList;)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.lang.String path
        start local 1 // java.util.ArrayList list
         0: .line 171
            aload 0 /* path */
            ifnull 8
         1: .line 172
            new java.util.StringTokenizer
            dup
            aload 0 /* path */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* tok */
        start local 2 // java.util.StringTokenizer tok
         2: .line 174
            goto 7
         3: .line 175
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 2 /* tok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         4: .line 176
            new java.io.File
            dup
            aload 3 /* name */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* file */
        start local 4 // java.io.File file
         5: .line 178
            aload 4 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 7
         6: .line 179
            aload 1 /* list */
            aload 3 /* name */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.io.File file
        end local 3 // java.lang.String name
         7: .line 174
      StackMap locals:
      StackMap stack:
            aload 2 /* tok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 3
        end local 2 // java.util.StringTokenizer tok
         8: .line 182
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.ArrayList list
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  path  Ljava/lang/String;
            0    9     1  list  Ljava/util/ArrayList<Ljava/lang/String;>;
            2    8     2   tok  Ljava/util/StringTokenizer;
            4    7     3  name  Ljava/lang/String;
            5    7     4  file  Ljava/io/File;
    Signature: (Ljava/lang/String;Ljava/util/ArrayList<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      path  
      list  

  public static final java.lang.String getClassPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=10, args_size=0
         0: .line 191
            ldc "java.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* class_path */
        start local 0 // java.lang.String class_path
         1: .line 192
            ldc "sun.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* boot_path */
        start local 1 // java.lang.String boot_path
         2: .line 193
            ldc "java.ext.dirs"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* ext_path */
        start local 2 // java.lang.String ext_path
         3: .line 194
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* vm_version */
        start local 3 // java.lang.String vm_version
         4: .line 196
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* list */
        start local 4 // java.util.ArrayList list
         5: .line 198
            aload 0 /* class_path */
            aload 4 /* list */
            invokestatic org.aspectj.apache.bcel.util.ClassPath.getPathComponents:(Ljava/lang/String;Ljava/util/ArrayList;)V
         6: .line 199
            aload 1 /* boot_path */
            aload 4 /* list */
            invokestatic org.aspectj.apache.bcel.util.ClassPath.getPathComponents:(Ljava/lang/String;Ljava/util/ArrayList;)V
         7: .line 201
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* dirs */
        start local 5 // java.util.ArrayList dirs
         8: .line 202
            aload 2 /* ext_path */
            aload 5 /* dirs */
            invokestatic org.aspectj.apache.bcel.util.ClassPath.getPathComponents:(Ljava/lang/String;Ljava/util/ArrayList;)V
         9: .line 204
            aload 5 /* dirs */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6 /* e */
        start local 6 // java.util.Iterator e
        10: goto 19
        11: .line 205
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.ArrayList java.util.ArrayList java.util.Iterator
      StackMap stack:
            new java.io.File
            dup
            aload 6 /* e */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* ext_dir */
        start local 7 // java.io.File ext_dir
        12: .line 206
            aload 7 /* ext_dir */
            new org.aspectj.apache.bcel.util.ClassPath$1
            dup
            invokespecial org.aspectj.apache.bcel.util.ClassPath$1.<init>:()V
            invokevirtual java.io.File.list:(Ljava/io/FilenameFilter;)[Ljava/lang/String;
            astore 8 /* extensions */
        start local 8 // java.lang.String[] extensions
        13: .line 214
            aload 8 /* extensions */
            ifnull 19
        14: .line 215
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        15: goto 18
        16: .line 216
      StackMap locals: java.io.File java.lang.String[] int
      StackMap stack:
            aload 4 /* list */
            new java.lang.StringBuilder
            dup
            aload 7 /* ext_dir */
            invokevirtual java.io.File.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 8 /* extensions */
            iload 9 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        17: .line 215
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 9 /* i */
            aload 8 /* extensions */
            arraylength
            if_icmplt 16
        end local 9 // int i
        end local 8 // java.lang.String[] extensions
        end local 7 // java.io.File ext_dir
        19: .line 204
      StackMap locals:
      StackMap stack:
            aload 6 /* e */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 6 // java.util.Iterator e
        20: .line 219
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 6 /* buf */
        start local 6 // java.lang.StringBuffer buf
        21: .line 221
            aload 4 /* list */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7 /* e */
        start local 7 // java.util.Iterator e
        22: goto 26
        23: .line 222
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.util.ArrayList java.util.ArrayList java.lang.StringBuffer java.util.Iterator
      StackMap stack:
            aload 6 /* buf */
            aload 7 /* e */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        24: .line 224
            aload 7 /* e */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 26
        25: .line 225
            aload 6 /* buf */
            getstatic java.io.File.pathSeparatorChar:C
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        26: .line 221
      StackMap locals:
      StackMap stack:
            aload 7 /* e */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        end local 7 // java.util.Iterator e
        27: .line 229
            aload 3 /* vm_version */
            ldc "9"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 31
            aload 3 /* vm_version */
            ldc "10"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 31
        28: .line 230
            aload 3 /* vm_version */
            ldc "11"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 31
        29: .line 231
            aload 3 /* vm_version */
            ldc "12"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 31
        30: .line 232
            aload 3 /* vm_version */
            ldc "13"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 33
        31: .line 233
      StackMap locals:
      StackMap stack:
            aload 6 /* buf */
            iconst_0
            getstatic java.io.File.pathSeparatorChar:C
            invokevirtual java.lang.StringBuffer.insert:(IC)Ljava/lang/StringBuffer;
            pop
        32: .line 234
            aload 6 /* buf */
            iconst_0
            new java.lang.StringBuilder
            dup
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "jrt-fs.jar"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.insert:(ILjava/lang/String;)Ljava/lang/StringBuffer;
            pop
        33: .line 237
      StackMap locals:
      StackMap stack:
            aload 6 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            areturn
        end local 6 // java.lang.StringBuffer buf
        end local 5 // java.util.ArrayList dirs
        end local 4 // java.util.ArrayList list
        end local 3 // java.lang.String vm_version
        end local 2 // java.lang.String ext_path
        end local 1 // java.lang.String boot_path
        end local 0 // java.lang.String class_path
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   34     0  class_path  Ljava/lang/String;
            2   34     1   boot_path  Ljava/lang/String;
            3   34     2    ext_path  Ljava/lang/String;
            4   34     3  vm_version  Ljava/lang/String;
            5   34     4        list  Ljava/util/ArrayList<Ljava/lang/String;>;
            8   34     5        dirs  Ljava/util/ArrayList<Ljava/lang/String;>;
           10   20     6           e  Ljava/util/Iterator<Ljava/lang/String;>;
           12   19     7     ext_dir  Ljava/io/File;
           13   19     8  extensions  [Ljava/lang/String;
           15   19     9           i  I
           21   34     6         buf  Ljava/lang/StringBuffer;
           22   27     7           e  Ljava/util/Iterator<Ljava/lang/String;>;

  public java.io.InputStream getInputStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 246
            aload 0 /* this */
            aload 1 /* name */
            ldc ".class"
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getInputStream:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public java.io.InputStream getInputStream(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 259
            aconst_null
            astore 3 /* is */
        start local 3 // java.io.InputStream is
         1: .line 262
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* is */
         2: .line 263
            goto 4
      StackMap locals: org.aspectj.apache.bcel.util.ClassPath java.lang.String java.lang.String java.io.InputStream
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 266
      StackMap locals:
      StackMap stack:
            aload 3 /* is */
            ifnull 6
         5: .line 267
            aload 3 /* is */
            areturn
         6: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
            invokeinterface org.aspectj.apache.bcel.util.ClassPath$ClassFile.getInputStream:()Ljava/io/InputStream;
            areturn
        end local 3 // java.io.InputStream is
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    7     1    name  Ljava/lang/String;
            0    7     2  suffix  Ljava/lang/String;
            1    7     3      is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    
      suffix  

  public org.aspectj.apache.bcel.util.ClassPath$ClassFile getClassFile(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 280
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 6
         2: .line 283
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.apache.bcel.util.ClassPath.paths:[Lorg/aspectj/apache/bcel/util/ClassPath$PathEntry;
            iload 3 /* i */
            aaload
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.aspectj.apache.bcel.util.ClassPath$PathEntry.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
            dup
            astore 4 /* cf */
        start local 4 // org.aspectj.apache.bcel.util.ClassPath$ClassFile cf
         3: ifnull 5
         4: .line 284
            aload 4 /* cf */
            areturn
        end local 4 // org.aspectj.apache.bcel.util.ClassPath$ClassFile cf
         5: .line 280
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            getfield org.aspectj.apache.bcel.util.ClassPath.paths:[Lorg/aspectj/apache/bcel/util/ClassPath$PathEntry;
            arraylength
            if_icmplt 2
        end local 3 // int i
         7: .line 287
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Couldn't find: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    8     1    name  Ljava/lang/String;
            0    8     2  suffix  Ljava/lang/String;
            1    7     3       i  I
            3    5     4      cf  Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    
      suffix  

  public org.aspectj.apache.bcel.util.ClassPath$ClassFile getClassFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 296
            aload 0 /* this */
            aload 1 /* name */
            ldc ".class"
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public byte[] getBytes(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 307
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getInputStream:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* is */
        start local 3 // java.io.InputStream is
         1: .line 309
            aload 3 /* is */
            ifnonnull 3
         2: .line 310
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Couldn't find: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 312
      StackMap locals: java.io.InputStream
      StackMap stack:
            new java.io.DataInputStream
            dup
            aload 3 /* is */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* dis */
        start local 4 // java.io.DataInputStream dis
         4: .line 313
            aload 3 /* is */
            invokevirtual java.io.InputStream.available:()I
            newarray 8
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         5: .line 314
            aload 4 /* dis */
            aload 5 /* bytes */
            invokevirtual java.io.DataInputStream.readFully:([B)V
         6: .line 315
            aload 4 /* dis */
            invokevirtual java.io.DataInputStream.close:()V
         7: .line 316
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
         8: .line 318
            aload 5 /* bytes */
            areturn
        end local 5 // byte[] bytes
        end local 4 // java.io.DataInputStream dis
        end local 3 // java.io.InputStream is
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    9     1    name  Ljava/lang/String;
            0    9     2  suffix  Ljava/lang/String;
            1    9     3      is  Ljava/io/InputStream;
            4    9     4     dis  Ljava/io/DataInputStream;
            5    9     5   bytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    
      suffix  

  public byte[] getBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 325
            aload 0 /* this */
            aload 1 /* name */
            ldc ".class"
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getBytes:(Ljava/lang/String;Ljava/lang/String;)[B
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    1     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String getPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
         0: .line 334
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* index */
        start local 2 // int index
         1: .line 335
            ldc ""
            astore 3 /* suffix */
        start local 3 // java.lang.String suffix
         2: .line 337
            iload 2 /* index */
            ifle 5
         3: .line 338
            aload 1 /* name */
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* suffix */
         4: .line 339
            aload 1 /* name */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* name */
         5: .line 342
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* suffix */
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getPath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String suffix
        end local 2 // int index
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    6     1    name  Ljava/lang/String;
            1    6     2   index  I
            2    6     3  suffix  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String getPath(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.aspectj.apache.bcel.util.ClassPath this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String suffix
         0: .line 353
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* suffix */
            invokevirtual org.aspectj.apache.bcel.util.ClassPath.getClassFile:(Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/apache/bcel/util/ClassPath$ClassFile;
            invokeinterface org.aspectj.apache.bcel.util.ClassPath$ClassFile.getPath:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.apache.bcel.util.ClassPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/aspectj/apache/bcel/util/ClassPath;
            0    1     1    name  Ljava/lang/String;
            0    1     2  suffix  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    
      suffix  
}
SourceFile: "ClassPath.java"
NestMembers:
  org.aspectj.apache.bcel.util.ClassPath$1  org.aspectj.apache.bcel.util.ClassPath$ClassFile  org.aspectj.apache.bcel.util.ClassPath$Dir  org.aspectj.apache.bcel.util.ClassPath$Dir$1  org.aspectj.apache.bcel.util.ClassPath$JImage  org.aspectj.apache.bcel.util.ClassPath$JImage$1  org.aspectj.apache.bcel.util.ClassPath$JImage$ByteBasedClassFile  org.aspectj.apache.bcel.util.ClassPath$PathEntry  org.aspectj.apache.bcel.util.ClassPath$Zip  org.aspectj.apache.bcel.util.ClassPath$Zip$1
InnerClasses:
  org.aspectj.apache.bcel.util.ClassPath$1
  public abstract ClassFile = org.aspectj.apache.bcel.util.ClassPath$ClassFile of org.aspectj.apache.bcel.util.ClassPath
  private Dir = org.aspectj.apache.bcel.util.ClassPath$Dir of org.aspectj.apache.bcel.util.ClassPath
  private JImage = org.aspectj.apache.bcel.util.ClassPath$JImage of org.aspectj.apache.bcel.util.ClassPath
  private abstract PathEntry = org.aspectj.apache.bcel.util.ClassPath$PathEntry of org.aspectj.apache.bcel.util.ClassPath
  private Zip = org.aspectj.apache.bcel.util.ClassPath$Zip of org.aspectj.apache.bcel.util.ClassPath