class jdk.internal.loader.URLClassPath$JarLoader extends jdk.internal.loader.URLClassPath$Loader
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.loader.URLClassPath$JarLoader
  super_class: jdk.internal.loader.URLClassPath$Loader
{
  private java.util.jar.JarFile jar;
    descriptor: Ljava/util/jar/JarFile;
    flags: (0x0002) ACC_PRIVATE

  private final java.net.URL csu;
    descriptor: Ljava/net/URL;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private jdk.internal.util.jar.JarIndex index;
    descriptor: Ljdk/internal/util/jar/JarIndex;
    flags: (0x0002) ACC_PRIVATE

  private java.net.URLStreamHandler handler;
    descriptor: Ljava/net/URLStreamHandler;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.HashMap<java.lang.String, jdk.internal.loader.URLClassPath$Loader> lmap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljdk/internal/loader/URLClassPath$Loader;>;

  private final java.security.AccessControlContext acc;
    descriptor: Ljava/security/AccessControlContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private static final jdk.internal.misc.JavaUtilZipFileAccess zipAccess;
    descriptor: Ljdk/internal/misc/JavaUtilZipFileAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 708
            invokestatic jdk.internal.misc.SharedSecrets.getJavaUtilZipFileAccess:()Ljdk/internal/misc/JavaUtilZipFileAccess;
         1: .line 707
            putstatic jdk.internal.loader.URLClassPath$JarLoader.zipAccess:Ljdk/internal/misc/JavaUtilZipFileAccess;
         2: .line 708
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.net.URL, java.net.URLStreamHandler, java.util.HashMap<java.lang.String, jdk.internal.loader.URLClassPath$Loader>, java.security.AccessControlContext);
    descriptor: (Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap;Ljava/security/AccessControlContext;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.net.URL url
        start local 2 // java.net.URLStreamHandler jarHandler
        start local 3 // java.util.HashMap loaderMap
        start local 4 // java.security.AccessControlContext acc
         0: .line 719
            aload 0 /* this */
            new java.net.URL
            dup
            ldc "jar"
            ldc ""
            iconst_m1
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "!/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* jarHandler */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V
            invokespecial jdk.internal.loader.URLClassPath$Loader.<init>:(Ljava/net/URL;)V
         1: .line 706
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.loader.URLClassPath$JarLoader.closed:Z
         2: .line 720
            aload 0 /* this */
            aload 1 /* url */
            putfield jdk.internal.loader.URLClassPath$JarLoader.csu:Ljava/net/URL;
         3: .line 721
            aload 0 /* this */
            aload 2 /* jarHandler */
            putfield jdk.internal.loader.URLClassPath$JarLoader.handler:Ljava/net/URLStreamHandler;
         4: .line 722
            aload 0 /* this */
            aload 3 /* loaderMap */
            putfield jdk.internal.loader.URLClassPath$JarLoader.lmap:Ljava/util/HashMap;
         5: .line 723
            aload 0 /* this */
            aload 4 /* acc */
            putfield jdk.internal.loader.URLClassPath$JarLoader.acc:Ljava/security/AccessControlContext;
         6: .line 725
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.ensureOpen:()V
         7: .line 726
            return
        end local 4 // java.security.AccessControlContext acc
        end local 3 // java.util.HashMap loaderMap
        end local 2 // java.net.URLStreamHandler jarHandler
        end local 1 // java.net.URL url
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0    8     1         url  Ljava/net/URL;
            0    8     2  jarHandler  Ljava/net/URLStreamHandler;
            0    8     3   loaderMap  Ljava/util/HashMap<Ljava/lang/String;Ljdk/internal/loader/URLClassPath$Loader;>;
            0    8     4         acc  Ljava/security/AccessControlContext;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap<Ljava/lang/String;Ljdk/internal/loader/URLClassPath$Loader;>;Ljava/security/AccessControlContext;)V
    MethodParameters:
            Name  Flags
      url         
      jarHandler  
      loaderMap   
      acc         

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
         0: .line 731
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.closed:Z
            ifne 4
         1: .line 732
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.loader.URLClassPath$JarLoader.closed:Z
         2: .line 734
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.ensureOpen:()V
         3: .line 735
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.close:()V
         4: .line 737
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/internal/loader/URLClassPath$JarLoader;
    Exceptions:
      throws java.io.IOException

  java.util.jar.JarFile getJarFile();
    descriptor: ()Ljava/util/jar/JarFile;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
         0: .line 740
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            areturn
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/loader/URLClassPath$JarLoader;

  private boolean isOptimizable(java.net.URL);
    descriptor: (Ljava/net/URL;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.net.URL url
         0: .line 744
            ldc "file"
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.net.URL url
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0    1     1   url  Ljava/net/URL;
    MethodParameters:
      Name  Flags
      url   

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
         0: .line 748
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            ifnonnull 7
         1: .line 751
            new jdk.internal.loader.URLClassPath$JarLoader$1
            dup
            aload 0 /* this */
            invokespecial jdk.internal.loader.URLClassPath$JarLoader$1.<init>:(Ljdk/internal/loader/URLClassPath$JarLoader;)V
         2: .line 782
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.acc:Ljava/security/AccessControlContext;
         3: .line 750
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
            pop
         4: .line 783
            goto 7
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         5: astore 1 /* pae */
        start local 1 // java.security.PrivilegedActionException pae
         6: .line 784
            aload 1 /* pae */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 1 // java.security.PrivilegedActionException pae
         7: .line 787
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/internal/loader/URLClassPath$JarLoader;
            6    7     1   pae  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           1     4       5  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException

  static java.util.jar.JarFile checkJar(java.util.jar.JarFile);
    descriptor: (Ljava/util/jar/JarFile;)Ljava/util/jar/JarFile;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.jar.JarFile jar
         0: .line 791
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 8
            getstatic jdk.internal.loader.URLClassPath.DISABLE_JAR_CHECKING:Z
            ifne 8
         1: .line 792
            getstatic jdk.internal.loader.URLClassPath$JarLoader.zipAccess:Ljdk/internal/misc/JavaUtilZipFileAccess;
            aload 0 /* jar */
            invokeinterface jdk.internal.misc.JavaUtilZipFileAccess.startsWithLocHeader:(Ljava/util/zip/ZipFile;)Z
            ifne 8
         2: .line 793
            new java.io.IOException
            dup
            ldc "Invalid Jar file"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 1 /* x */
        start local 1 // java.io.IOException x
         3: .line 795
            aload 0 /* jar */
            invokevirtual java.util.jar.JarFile.close:()V
         4: .line 796
            goto 7
      StackMap locals: java.util.jar.JarFile java.io.IOException
      StackMap stack: java.io.IOException
         5: astore 2 /* ex */
        start local 2 // java.io.IOException ex
         6: .line 797
            aload 1 /* x */
            aload 2 /* ex */
            invokevirtual java.io.IOException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 2 // java.io.IOException ex
         7: .line 799
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            athrow
        end local 1 // java.io.IOException x
         8: .line 802
      StackMap locals:
      StackMap stack:
            aload 0 /* jar */
            areturn
        end local 0 // java.util.jar.JarFile jar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   jar  Ljava/util/jar/JarFile;
            3    8     1     x  Ljava/io/IOException;
            6    7     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      jar   

  private java.util.jar.JarFile getJarFile(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/util/jar/JarFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.net.URL url
         0: .line 807
            aload 0 /* this */
            aload 1 /* url */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.isOptimizable:(Ljava/net/URL;)Z
            ifeq 7
         1: .line 808
            new jdk.internal.loader.FileURLMapper
            dup
            aload 1 /* url */
            invokespecial jdk.internal.loader.FileURLMapper.<init>:(Ljava/net/URL;)V
            astore 2 /* p */
        start local 2 // jdk.internal.loader.FileURLMapper p
         2: .line 809
            aload 2 /* p */
            invokevirtual jdk.internal.loader.FileURLMapper.exists:()Z
            ifne 4
         3: .line 810
            new java.io.FileNotFoundException
            dup
            aload 2 /* p */
            invokevirtual jdk.internal.loader.FileURLMapper.getPath:()Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 812
      StackMap locals: jdk.internal.loader.FileURLMapper
      StackMap stack:
            new java.util.jar.JarFile
            dup
            new java.io.File
            dup
            aload 2 /* p */
            invokevirtual jdk.internal.loader.FileURLMapper.getPath:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            iconst_1
            iconst_1
         5: .line 813
            invokestatic java.util.jar.JarFile.runtimeVersion:()Ljava/lang/Runtime$Version;
         6: .line 812
            invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;ZILjava/lang/Runtime$Version;)V
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.checkJar:(Ljava/util/jar/JarFile;)Ljava/util/jar/JarFile;
            areturn
        end local 2 // jdk.internal.loader.FileURLMapper p
         7: .line 815
      StackMap locals:
      StackMap stack:
            new java.net.URL
            dup
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getBaseURL:()Ljava/net/URL;
            ldc "#runtime"
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 2 /* uc */
        start local 2 // java.net.URLConnection uc
         8: .line 816
            aload 2 /* uc */
            ldc "UA-Java-Version"
            getstatic jdk.internal.loader.URLClassPath.JAVA_VERSION:Ljava/lang/String;
            invokevirtual java.net.URLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 817
            aload 2 /* uc */
            checkcast java.net.JarURLConnection
            invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
            astore 3 /* jarFile */
        start local 3 // java.util.jar.JarFile jarFile
        10: .line 818
            aload 3 /* jarFile */
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.checkJar:(Ljava/util/jar/JarFile;)Ljava/util/jar/JarFile;
            areturn
        end local 3 // java.util.jar.JarFile jarFile
        end local 2 // java.net.URLConnection uc
        end local 1 // java.net.URL url
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0   11     1      url  Ljava/net/URL;
            2    7     2        p  Ljdk/internal/loader/FileURLMapper;
            8   11     2       uc  Ljava/net/URLConnection;
           10   11     3  jarFile  Ljava/util/jar/JarFile;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      url   

  jdk.internal.util.jar.JarIndex getIndex();
    descriptor: ()Ljdk/internal/util/jar/JarIndex;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
         0: .line 826
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.ensureOpen:()V
         1: .line 827
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 828
            new java.lang.InternalError
            dup
            aload 1 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
         4: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.index:Ljdk/internal/util/jar/JarIndex;
            areturn
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/internal/loader/URLClassPath$JarLoader;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  jdk.internal.loader.Resource checkResource(java.lang.String, boolean, java.util.jar.JarEntry);
    descriptor: (Ljava/lang/String;ZLjava/util/jar/JarEntry;)Ljdk/internal/loader/Resource;
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean check
        start local 3 // java.util.jar.JarEntry entry
         0: .line 843
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.isMultiRelease:()Z
            ifeq 3
         1: .line 844
            aload 3 /* entry */
            invokevirtual java.util.jar.JarEntry.getRealName:()Ljava/lang/String;
            astore 5 /* nm */
        start local 5 // java.lang.String nm
         2: .line 845
            goto 4
        end local 5 // java.lang.String nm
         3: .line 846
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            astore 5 /* nm */
        start local 5 // java.lang.String nm
         4: .line 848
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.jar.JarEntry top java.lang.String
      StackMap stack:
            new java.net.URL
            dup
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getBaseURL:()Ljava/net/URL;
            aload 5 /* nm */
            iconst_0
            invokestatic sun.net.www.ParseUtil.encodePath:(Ljava/lang/String;Z)Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            astore 4 /* url */
        start local 4 // java.net.URL url
         5: .line 849
            iload 2 /* check */
            ifeq 14
         6: .line 850
            aload 4 /* url */
            invokestatic jdk.internal.loader.URLClassPath.check:(Ljava/net/URL;)V
        end local 5 // java.lang.String nm
         7: .line 852
            goto 14
        end local 4 // java.net.URL url
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.jar.JarEntry
      StackMap stack: java.net.MalformedURLException
         8: pop
         9: .line 853
            aconst_null
            areturn
        10: .line 855
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        11: .line 856
            aconst_null
            areturn
        12: .line 857
      StackMap locals:
      StackMap stack: java.security.AccessControlException
            pop
        13: .line 858
            aconst_null
            areturn
        start local 4 // java.net.URL url
        14: .line 861
      StackMap locals: java.net.URL
      StackMap stack:
            new jdk.internal.loader.URLClassPath$JarLoader$2
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 4 /* url */
            aload 3 /* entry */
            invokespecial jdk.internal.loader.URLClassPath$JarLoader$2.<init>:(Ljdk/internal/loader/URLClassPath$JarLoader;Ljava/lang/String;Ljava/net/URL;Ljava/util/jar/JarEntry;)V
            areturn
        end local 4 // java.net.URL url
        end local 3 // java.util.jar.JarEntry entry
        end local 2 // boolean check
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0   15     1   name  Ljava/lang/String;
            0   15     2  check  Z
            0   15     3  entry  Ljava/util/jar/JarEntry;
            5    8     4    url  Ljava/net/URL;
           14   15     4    url  Ljava/net/URL;
            2    3     5     nm  Ljava/lang/String;
            4    7     5     nm  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     7       8  Class java.net.MalformedURLException
           0     7      10  Class java.io.IOException
           0     7      12  Class java.security.AccessControlException
    MethodParameters:
       Name  Flags
      name   final
      check  
      entry  final

  boolean validIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.lang.String name
         0: .line 886
            aload 1 /* name */
            astore 2 /* packageName */
        start local 2 // java.lang.String packageName
         1: .line 888
            aload 1 /* name */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            dup
            istore 3 /* pos */
        start local 3 // int pos
         2: iconst_m1
            if_icmpeq 4
         3: .line 889
            aload 1 /* name */
            iconst_0
            iload 3 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* packageName */
         4: .line 894
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
            astore 6 /* enum_ */
        start local 6 // java.util.Enumeration enum_
         5: .line 895
            goto 12
         6: .line 896
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String java.lang.String int top top java.util.Enumeration
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 5 /* entry */
        start local 5 // java.util.zip.ZipEntry entry
         7: .line 897
            aload 5 /* entry */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 4 /* entryName */
        start local 4 // java.lang.String entryName
         8: .line 898
            aload 4 /* entryName */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            dup
            istore 3 /* pos */
            iconst_m1
            if_icmpeq 10
         9: .line 899
            aload 4 /* entryName */
            iconst_0
            iload 3 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* entryName */
        10: .line 900
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String java.lang.String int java.lang.String java.util.zip.ZipEntry java.util.Enumeration
      StackMap stack:
            aload 4 /* entryName */
            aload 2 /* packageName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 901
            iconst_1
            ireturn
        end local 5 // java.util.zip.ZipEntry entry
        end local 4 // java.lang.String entryName
        12: .line 895
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String java.lang.String int top top java.util.Enumeration
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 6
        13: .line 904
            iconst_0
            ireturn
        end local 6 // java.util.Enumeration enum_
        end local 3 // int pos
        end local 2 // java.lang.String packageName
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0   14     1         name  Ljava/lang/String;
            1   14     2  packageName  Ljava/lang/String;
            2   14     3          pos  I
            8   12     4    entryName  Ljava/lang/String;
            7   12     5        entry  Ljava/util/zip/ZipEntry;
            5   14     6        enum_  Ljava/util/Enumeration<Ljava/util/jar/JarEntry;>;
    MethodParameters:
      Name  Flags
      name  final

  java.net.URL findResource(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/net/URL;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean check
         0: .line 912
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* check */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getResource:(Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
            astore 3 /* rsc */
        start local 3 // jdk.internal.loader.Resource rsc
         1: .line 913
            aload 3 /* rsc */
            ifnull 3
         2: .line 914
            aload 3 /* rsc */
            invokevirtual jdk.internal.loader.Resource.getURL:()Ljava/net/URL;
            areturn
         3: .line 916
      StackMap locals: jdk.internal.loader.Resource
      StackMap stack:
            aconst_null
            areturn
        end local 3 // jdk.internal.loader.Resource rsc
        end local 2 // boolean check
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0    4     1   name  Ljava/lang/String;
            0    4     2  check  Z
            1    4     3    rsc  Ljdk/internal/loader/Resource;
    MethodParameters:
       Name  Flags
      name   final
      check  

  jdk.internal.loader.Resource getResource(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean check
         0: .line 925
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.ensureOpen:()V
         1: .line 926
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 3 /* e */
        start local 3 // java.io.IOException e
         3: .line 927
            new java.lang.InternalError
            dup
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
         4: .line 929
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            aload 1 /* name */
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 3 /* entry */
        start local 3 // java.util.jar.JarEntry entry
         5: .line 930
            aload 3 /* entry */
            ifnull 7
         6: .line 931
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* check */
            aload 3 /* entry */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.checkResource:(Ljava/lang/String;ZLjava/util/jar/JarEntry;)Ljdk/internal/loader/Resource;
            areturn
         7: .line 933
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.index:Ljdk/internal/util/jar/JarIndex;
            ifnonnull 9
         8: .line 934
            aconst_null
            areturn
         9: .line 936
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* visited */
        start local 4 // java.util.HashSet visited
        10: .line 937
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* check */
            aload 4 /* visited */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getResource:(Ljava/lang/String;ZLjava/util/Set;)Ljdk/internal/loader/Resource;
            areturn
        end local 4 // java.util.HashSet visited
        end local 3 // java.util.jar.JarEntry entry
        end local 2 // boolean check
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0   11     1     name  Ljava/lang/String;
            0   11     2    check  Z
            3    4     3        e  Ljava/io/IOException;
            5   11     3    entry  Ljava/util/jar/JarEntry;
           10   11     4  visited  Ljava/util/HashSet<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
       Name  Flags
      name   final
      check  

  jdk.internal.loader.Resource getResource(java.lang.String, boolean, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;ZLjava/util/Set;)Ljdk/internal/loader/Resource;
    flags: (0x0000) 
    Code:
      stack=6, locals=15, args_size=4
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean check
        start local 3 // java.util.Set visited
         0: .line 951
            iconst_0
            istore 6 /* count */
        start local 6 // int count
         1: .line 952
            aconst_null
            astore 7 /* jarFilesList */
        start local 7 // java.util.LinkedList jarFilesList
         2: .line 957
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.index:Ljdk/internal/util/jar/JarIndex;
            aload 1 /* name */
            invokevirtual jdk.internal.util.jar.JarIndex.get:(Ljava/lang/String;)Ljava/util/LinkedList;
            dup
            astore 7 /* jarFilesList */
            ifnonnull 4
         3: .line 958
            aconst_null
            areturn
         4: .line 961
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top top int java.util.LinkedList
      StackMap stack:
            aload 7 /* jarFilesList */
            invokevirtual java.util.LinkedList.size:()I
            istore 8 /* size */
        start local 8 // int size
         5: .line 962
            aload 7 /* jarFilesList */
            iload 8 /* size */
            anewarray java.lang.String
            invokevirtual java.util.LinkedList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 5 /* jarFiles */
        start local 5 // java.lang.String[] jarFiles
         6: .line 964
            goto 47
         7: .line 965
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top java.lang.String[] int java.util.LinkedList int
      StackMap stack:
            aload 5 /* jarFiles */
            iload 6 /* count */
            iinc 6 /* count */ 1
            aaload
            astore 9 /* jarName */
        start local 9 // java.lang.String jarName
         8: .line 970
            new java.net.URL
            dup
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.csu:Ljava/net/URL;
            aload 9 /* jarName */
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            astore 11 /* url */
        start local 11 // java.net.URL url
         9: .line 971
            aload 11 /* url */
            invokestatic sun.net.util.URLUtil.urlNoFragString:(Ljava/net/URL;)Ljava/lang/String;
            astore 12 /* urlNoFragString */
        start local 12 // java.lang.String urlNoFragString
        10: .line 972
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.lmap:Ljava/util/HashMap;
            aload 12 /* urlNoFragString */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.internal.loader.URLClassPath$JarLoader
            dup
            astore 10 /* newLoader */
        start local 10 // jdk.internal.loader.URLClassPath$JarLoader newLoader
        11: ifnonnull 28
        12: .line 977
            new jdk.internal.loader.URLClassPath$JarLoader$3
            dup
            aload 0 /* this */
            aload 11 /* url */
            invokespecial jdk.internal.loader.URLClassPath$JarLoader$3.<init>:(Ljdk/internal/loader/URLClassPath$JarLoader;Ljava/net/URL;)V
        13: .line 982
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.acc:Ljava/security/AccessControlContext;
        14: .line 976
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
            checkcast jdk.internal.loader.URLClassPath$JarLoader
            astore 10 /* newLoader */
        15: .line 988
            aload 10 /* newLoader */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getIndex:()Ljdk/internal/util/jar/JarIndex;
            astore 13 /* newIndex */
        start local 13 // jdk.internal.util.jar.JarIndex newIndex
        16: .line 989
            aload 13 /* newIndex */
            ifnull 22
        17: .line 990
            aload 9 /* jarName */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 14 /* pos */
        start local 14 // int pos
        18: .line 991
            aload 13 /* newIndex */
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.index:Ljdk/internal/util/jar/JarIndex;
            iload 14 /* pos */
            iconst_m1
            if_icmpne 20
        19: .line 992
            aconst_null
            goto 21
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top java.lang.String[] int java.util.LinkedList int java.lang.String jdk.internal.loader.URLClassPath$JarLoader java.net.URL java.lang.String jdk.internal.util.jar.JarIndex int
      StackMap stack: jdk.internal.util.jar.JarIndex jdk.internal.util.jar.JarIndex
        20: aload 9 /* jarName */
            iconst_0
            iload 14 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        21: .line 991
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top java.lang.String[] int java.util.LinkedList int java.lang.String jdk.internal.loader.URLClassPath$JarLoader java.net.URL java.lang.String jdk.internal.util.jar.JarIndex int
      StackMap stack: jdk.internal.util.jar.JarIndex jdk.internal.util.jar.JarIndex java.lang.String
            invokevirtual jdk.internal.util.jar.JarIndex.merge:(Ljdk/internal/util/jar/JarIndex;Ljava/lang/String;)V
        end local 14 // int pos
        22: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.lmap:Ljava/util/HashMap;
            aload 12 /* urlNoFragString */
            aload 10 /* newLoader */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // jdk.internal.util.jar.JarIndex newIndex
        end local 12 // java.lang.String urlNoFragString
        23: .line 998
            goto 28
        end local 11 // java.net.URL url
        end local 10 // jdk.internal.loader.URLClassPath$JarLoader newLoader
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top java.lang.String[] int java.util.LinkedList int java.lang.String
      StackMap stack: java.security.PrivilegedActionException
        24: pop
        25: .line 999
            goto 47
        26: .line 1000
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
        27: .line 1001
            goto 47
        start local 10 // jdk.internal.loader.URLClassPath$JarLoader newLoader
        start local 11 // java.net.URL url
        28: .line 1007
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.net.URL
      StackMap stack:
            aload 3 /* visited */
            aload 11 /* url */
            invokestatic sun.net.util.URLUtil.urlNoFragString:(Ljava/net/URL;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 29
            iconst_0
            goto 30
      StackMap locals:
      StackMap stack:
        29: iconst_1
      StackMap locals:
      StackMap stack: int
        30: istore 12 /* visitedURL */
        start local 12 // boolean visitedURL
        31: .line 1008
            iload 12 /* visitedURL */
            ifne 41
        32: .line 1010
            aload 10 /* newLoader */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.ensureOpen:()V
        33: .line 1011
            goto 36
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top java.lang.String[] int java.util.LinkedList int java.lang.String jdk.internal.loader.URLClassPath$JarLoader java.net.URL int
      StackMap stack: java.io.IOException
        34: astore 13 /* e */
        start local 13 // java.io.IOException e
        35: .line 1012
            new java.lang.InternalError
            dup
            aload 13 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 13 // java.io.IOException e
        36: .line 1014
      StackMap locals:
      StackMap stack:
            aload 10 /* newLoader */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            aload 1 /* name */
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 13 /* entry */
        start local 13 // java.util.jar.JarEntry entry
        37: .line 1015
            aload 13 /* entry */
            ifnull 39
        38: .line 1016
            aload 10 /* newLoader */
            aload 1 /* name */
            iload 2 /* check */
            aload 13 /* entry */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.checkResource:(Ljava/lang/String;ZLjava/util/jar/JarEntry;)Ljdk/internal/loader/Resource;
            areturn
        39: .line 1023
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aload 10 /* newLoader */
            aload 1 /* name */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.validIndex:(Ljava/lang/String;)Z
            ifne 41
        40: .line 1025
            new jdk.internal.util.jar.InvalidJarIndexError
            dup
            ldc "Invalid index"
            invokespecial jdk.internal.util.jar.InvalidJarIndexError.<init>:(Ljava/lang/String;)V
            athrow
        end local 13 // java.util.jar.JarEntry entry
        41: .line 1034
      StackMap locals:
      StackMap stack:
            iload 12 /* visitedURL */
            ifne 47
            aload 10 /* newLoader */
            aload 0 /* this */
            if_acmpeq 47
        42: .line 1035
            aload 10 /* newLoader */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getIndex:()Ljdk/internal/util/jar/JarIndex;
            ifnonnull 44
        43: .line 1036
            goto 47
        44: .line 1041
      StackMap locals:
      StackMap stack:
            aload 10 /* newLoader */
            aload 1 /* name */
            iload 2 /* check */
            aload 3 /* visited */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.getResource:(Ljava/lang/String;ZLjava/util/Set;)Ljdk/internal/loader/Resource;
            dup
            astore 4 /* res */
        start local 4 // jdk.internal.loader.Resource res
        45: ifnull 47
        46: .line 1043
            aload 4 /* res */
            areturn
        end local 12 // boolean visitedURL
        end local 11 // java.net.URL url
        end local 10 // jdk.internal.loader.URLClassPath$JarLoader newLoader
        end local 9 // java.lang.String jarName
        end local 4 // jdk.internal.loader.Resource res
        47: .line 964
      StackMap locals: jdk.internal.loader.URLClassPath$JarLoader java.lang.String int java.util.Set top java.lang.String[] int java.util.LinkedList int
      StackMap stack:
            iload 6 /* count */
            iload 8 /* size */
            if_icmplt 7
        48: .line 1048
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.index:Ljdk/internal/util/jar/JarIndex;
            aload 1 /* name */
            invokevirtual jdk.internal.util.jar.JarIndex.get:(Ljava/lang/String;)Ljava/util/LinkedList;
            astore 7 /* jarFilesList */
        end local 8 // int size
        49: .line 1051
            iload 6 /* count */
            aload 7 /* jarFilesList */
            invokevirtual java.util.LinkedList.size:()I
        50: .line 960
            if_icmplt 4
        51: .line 1052
            aconst_null
            areturn
        end local 7 // java.util.LinkedList jarFilesList
        end local 6 // int count
        end local 5 // java.lang.String[] jarFiles
        end local 3 // java.util.Set visited
        end local 2 // boolean check
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   52     0             this  Ljdk/internal/loader/URLClassPath$JarLoader;
            0   52     1             name  Ljava/lang/String;
            0   52     2            check  Z
            0   52     3          visited  Ljava/util/Set<Ljava/lang/String;>;
           45   47     4              res  Ljdk/internal/loader/Resource;
            6   52     5         jarFiles  [Ljava/lang/String;
            1   52     6            count  I
            2   52     7     jarFilesList  Ljava/util/LinkedList<Ljava/lang/String;>;
            5   49     8             size  I
            8   47     9          jarName  Ljava/lang/String;
           11   24    10        newLoader  Ljdk/internal/loader/URLClassPath$JarLoader;
           28   47    10        newLoader  Ljdk/internal/loader/URLClassPath$JarLoader;
            9   24    11              url  Ljava/net/URL;
           28   47    11              url  Ljava/net/URL;
           10   23    12  urlNoFragString  Ljava/lang/String;
           16   23    13         newIndex  Ljdk/internal/util/jar/JarIndex;
           18   22    14              pos  I
           31   47    12       visitedURL  Z
           35   36    13                e  Ljava/io/IOException;
           37   41    13            entry  Ljava/util/jar/JarEntry;
      Exception table:
        from    to  target  type
           8    23      24  Class java.security.PrivilegedActionException
           8    23      26  Class java.net.MalformedURLException
          32    33      34  Class java.io.IOException
    Signature: (Ljava/lang/String;ZLjava/util/Set<Ljava/lang/String;>;)Ljdk/internal/loader/Resource;
    MethodParameters:
         Name  Flags
      name     final
      check    
      visited  

  java.net.URL[] getClassPath();
    descriptor: ()[Ljava/net/URL;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // jdk.internal.loader.URLClassPath$JarLoader this
         0: .line 1061
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.index:Ljdk/internal/util/jar/JarIndex;
            ifnull 2
         1: .line 1062
            aconst_null
            areturn
         2: .line 1065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$JarLoader.ensureOpen:()V
         3: .line 1068
            invokestatic jdk.internal.misc.SharedSecrets.javaUtilJarAccess:()Ljdk/internal/misc/JavaUtilJarAccess;
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            invokeinterface jdk.internal.misc.JavaUtilJarAccess.jarFileHasClassPathAttribute:(Ljava/util/jar/JarFile;)Z
            ifeq 11
         4: .line 1069
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.jar:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
            astore 1 /* man */
        start local 1 // java.util.jar.Manifest man
         5: .line 1070
            aload 1 /* man */
            ifnull 11
         6: .line 1071
            aload 1 /* man */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* attr */
        start local 2 // java.util.jar.Attributes attr
         7: .line 1072
            aload 2 /* attr */
            ifnull 11
         8: .line 1073
            aload 2 /* 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 3 /* value */
        start local 3 // java.lang.String value
         9: .line 1074
            aload 3 /* value */
            ifnull 11
        10: .line 1075
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$JarLoader.csu:Ljava/net/URL;
            aload 3 /* value */
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.parseClassPath:(Ljava/net/URL;Ljava/lang/String;)[Ljava/net/URL;
            areturn
        end local 3 // java.lang.String value
        end local 2 // java.util.jar.Attributes attr
        end local 1 // java.util.jar.Manifest man
        11: .line 1080
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // jdk.internal.loader.URLClassPath$JarLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljdk/internal/loader/URLClassPath$JarLoader;
            5   11     1    man  Ljava/util/jar/Manifest;
            7   11     2   attr  Ljava/util/jar/Attributes;
            9   11     3  value  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private static java.net.URL[] parseClassPath(java.net.URL, java.lang.String);
    descriptor: (Ljava/net/URL;Ljava/lang/String;)[Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.net.URL base
        start local 1 // java.lang.String value
         0: .line 1090
            new java.util.StringTokenizer
            dup
            aload 1 /* value */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 2 /* st */
        start local 2 // java.util.StringTokenizer st
         1: .line 1091
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            anewarray java.net.URL
            astore 3 /* urls */
        start local 3 // java.net.URL[] urls
         2: .line 1092
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: .line 1093
            goto 16
         4: .line 1094
      StackMap locals: java.util.StringTokenizer java.net.URL[] int
      StackMap stack:
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
         5: .line 1095
            getstatic jdk.internal.loader.URLClassPath.DISABLE_CP_URL_CHECK:Z
            ifeq 6
            new java.net.URL
            dup
            aload 0 /* base */
            aload 5 /* path */
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            goto 7
      StackMap locals: java.lang.String
      StackMap stack:
         6: aload 0 /* base */
            aload 5 /* path */
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.tryResolve:(Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;
      StackMap locals:
      StackMap stack: java.net.URL
         7: astore 6 /* url */
        start local 6 // java.net.URL url
         8: .line 1096
            aload 6 /* url */
            ifnull 12
         9: .line 1097
            aload 3 /* urls */
            iload 4 /* i */
            aload 6 /* url */
            aastore
        10: .line 1098
            iinc 4 /* i */ 1
        11: .line 1099
            goto 16
        12: .line 1100
      StackMap locals: java.net.URL
      StackMap stack:
            getstatic jdk.internal.loader.URLClassPath.DEBUG_CP_URL_CHECK:Z
            ifeq 16
        13: .line 1101
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Class-Path entry: \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 1102
            ldc "\" ignored in JAR file "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* base */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 1101
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 6 // java.net.URL url
        end local 5 // java.lang.String path
        16: .line 1093
      StackMap locals:
      StackMap stack:
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 4
        17: .line 1106
            iload 4 /* i */
            ifne 20
        18: .line 1107
            aconst_null
            astore 3 /* urls */
        19: .line 1108
            goto 22
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 3 /* urls */
            arraylength
            if_icmpeq 22
        21: .line 1110
            aload 3 /* urls */
            iload 4 /* i */
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.net.URL[]
            astore 3 /* urls */
        22: .line 1112
      StackMap locals:
      StackMap stack:
            aload 3 /* urls */
            areturn
        end local 4 // int i
        end local 3 // java.net.URL[] urls
        end local 2 // java.util.StringTokenizer st
        end local 1 // java.lang.String value
        end local 0 // java.net.URL base
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   23     0   base  Ljava/net/URL;
            0   23     1  value  Ljava/lang/String;
            1   23     2     st  Ljava/util/StringTokenizer;
            2   23     3   urls  [Ljava/net/URL;
            3   23     4      i  I
            5   16     5   path  Ljava/lang/String;
            8   16     6    url  Ljava/net/URL;
    Exceptions:
      throws java.net.MalformedURLException
    MethodParameters:
       Name  Flags
      base   
      value  

  static java.net.URL tryResolve(java.net.URL, java.lang.String);
    descriptor: (Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.URL base
        start local 1 // java.lang.String input
         0: .line 1116
            ldc "file"
            aload 0 /* base */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1117
            aload 0 /* base */
            aload 1 /* input */
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.tryResolveFile:(Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;
            areturn
         2: .line 1119
      StackMap locals:
      StackMap stack:
            aload 0 /* base */
            aload 1 /* input */
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.tryResolveNonFile:(Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;
            areturn
        end local 1 // java.lang.String input
        end local 0 // java.net.URL base
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   base  Ljava/net/URL;
            0    3     1  input  Ljava/lang/String;
    Exceptions:
      throws java.net.MalformedURLException
    MethodParameters:
       Name  Flags
      base   
      input  

  static java.net.URL tryResolveFile(java.net.URL, java.lang.String);
    descriptor: (Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.net.URL base
        start local 1 // java.lang.String input
         0: .line 1137
            aload 1 /* input */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* index */
        start local 2 // int index
         1: .line 1139
            iload 2 /* index */
            iflt 5
         2: .line 1140
            aload 1 /* input */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* scheme */
        start local 4 // java.lang.String scheme
         3: .line 1141
            ldc "file"
            aload 4 /* scheme */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            istore 3 /* isFile */
        end local 4 // java.lang.String scheme
        start local 3 // boolean isFile
         4: .line 1142
            goto 6
        end local 3 // boolean isFile
         5: .line 1143
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 3 /* isFile */
        start local 3 // boolean isFile
         6: .line 1145
      StackMap locals: int
      StackMap stack:
            iload 3 /* isFile */
            ifeq 7
            new java.net.URL
            dup
            aload 0 /* base */
            aload 1 /* input */
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            goto 8
      StackMap locals:
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: java.net.URL
         8: areturn
        end local 3 // boolean isFile
        end local 2 // int index
        end local 1 // java.lang.String input
        end local 0 // java.net.URL base
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    base  Ljava/net/URL;
            0    9     1   input  Ljava/lang/String;
            1    9     2   index  I
            4    5     3  isFile  Z
            6    9     3  isFile  Z
            3    4     4  scheme  Ljava/lang/String;
    Exceptions:
      throws java.net.MalformedURLException
    MethodParameters:
       Name  Flags
      base   
      input  

  static java.net.URL tryResolveNonFile(java.net.URL, java.lang.String);
    descriptor: (Ljava/net/URL;Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // java.net.URL base
        start local 1 // java.lang.String input
         0: .line 1156
            aload 1 /* input */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 2 /* child */
        start local 2 // java.lang.String child
         1: .line 1157
            aload 2 /* child */
            invokestatic jdk.internal.loader.URLClassPath$JarLoader.isRelative:(Ljava/lang/String;)Z
            ifeq 11
         2: .line 1158
            new java.net.URL
            dup
            aload 0 /* base */
            aload 2 /* child */
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            astore 3 /* url */
        start local 3 // java.net.URL url
         3: .line 1159
            aload 0 /* base */
            invokevirtual java.net.URL.getPath:()Ljava/lang/String;
            astore 4 /* bp */
        start local 4 // java.lang.String bp
         4: .line 1160
            aload 3 /* url */
            invokevirtual java.net.URL.getPath:()Ljava/lang/String;
            astore 5 /* urlp */
        start local 5 // java.lang.String urlp
         5: .line 1161
            aload 4 /* bp */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 6 /* pos */
        start local 6 // int pos
         6: .line 1162
            iload 6 /* pos */
            iconst_m1
            if_icmpne 8
         7: .line 1163
            aload 4 /* bp */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            istore 6 /* pos */
         8: .line 1165
      StackMap locals: java.net.URL java.lang.String java.lang.String java.net.URL java.lang.String java.lang.String int
      StackMap stack:
            aload 5 /* urlp */
            iconst_0
            aload 4 /* bp */
            iconst_0
            iload 6 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
            ifeq 11
         9: .line 1166
            aload 5 /* urlp */
            ldc ".."
            iload 6 /* pos */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            iconst_m1
            if_icmpne 11
        10: .line 1167
            aload 3 /* url */
            areturn
        end local 6 // int pos
        end local 5 // java.lang.String urlp
        end local 4 // java.lang.String bp
        end local 3 // java.net.URL url
        11: .line 1170
      StackMap locals: java.net.URL java.lang.String java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String child
        end local 1 // java.lang.String input
        end local 0 // java.net.URL base
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   base  Ljava/net/URL;
            0   12     1  input  Ljava/lang/String;
            1   12     2  child  Ljava/lang/String;
            3   11     3    url  Ljava/net/URL;
            4   11     4     bp  Ljava/lang/String;
            5   11     5   urlp  Ljava/lang/String;
            6   11     6    pos  I
    Exceptions:
      throws java.net.MalformedURLException
    MethodParameters:
       Name  Flags
      base   
      input  

  static boolean isRelative(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String child
         0: .line 1178
            aload 0 /* child */
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
            invokevirtual java.net.URI.isAbsolute:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
         3: .line 1179
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
         4: .line 1180
            iconst_0
            ireturn
        end local 0 // java.lang.String child
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  child  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.IllegalArgumentException
    MethodParameters:
       Name  Flags
      child  
}
SourceFile: "URLClassPath.java"
NestHost: jdk.internal.loader.URLClassPath
InnerClasses:
  public final Version = java.lang.Runtime$Version of java.lang.Runtime
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
  JarLoader = jdk.internal.loader.URLClassPath$JarLoader of jdk.internal.loader.URLClassPath
  jdk.internal.loader.URLClassPath$JarLoader$1
  jdk.internal.loader.URLClassPath$JarLoader$2
  jdk.internal.loader.URLClassPath$JarLoader$3
  private Loader = jdk.internal.loader.URLClassPath$Loader of jdk.internal.loader.URLClassPath