public class com.sun.tools.javac.platform.JDKPlatformProvider implements com.sun.tools.javac.platform.PlatformProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.platform.JDKPlatformProvider
  super_class: java.lang.Object
{
  private static final java.lang.String[] symbolFileLocation;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Set<java.lang.String> SUPPORTED_JAVA_PLATFORM_VERSIONS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=13, args_size=0
         0: .line 72
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "lib"
            aastore
            dup
            iconst_1
            ldc "ct.sym"
            aastore
            putstatic com.sun.tools.javac.platform.JDKPlatformProvider.symbolFileLocation:[Ljava/lang/String;
         1: .line 77
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
         2: .line 78
            invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.findCtSym:()Ljava/nio/file/Path;
            astore 0 /* ctSymFile */
        start local 0 // java.nio.file.Path ctSymFile
         3: .line 79
            aload 0 /* ctSymFile */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 31
         4: .line 80
            aconst_null
            astore 1
            aconst_null
            astore 2
         5: aload 0 /* ctSymFile */
            aconst_null
            invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/nio/file/Path;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
            astore 3 /* fs */
        start local 3 // java.nio.file.FileSystem fs
         6: .line 82
            aload 3 /* fs */
            invokevirtual java.nio.file.FileSystem.getRootDirectories:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
         7: .line 81
            astore 4 /* dir */
        start local 4 // java.nio.file.DirectoryStream dir
         8: .line 83
            aload 4 /* dir */
            invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 5 /* section */
        start local 5 // java.nio.file.Path section
        10: .line 84
            aload 5 /* section */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 17
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator top int int char[]
      StackMap stack:
        11: aload 10
            iload 8
            caload
            istore 7 /* ver */
        start local 7 // char ver
        12: .line 85
            iload 7 /* ver */
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            astore 11 /* verString */
        start local 11 // java.lang.String verString
        13: .line 86
            aload 11 /* verString */
            invokestatic com.sun.tools.javac.jvm.Target.lookup:(Ljava/lang/String;)Lcom/sun/tools/javac/jvm/Target;
            astore 12 /* t */
        start local 12 // com.sun.tools.javac.jvm.Target t
        14: .line 88
            aload 12 /* t */
            ifnull 16
        15: .line 89
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
            aload 12 /* t */
            invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.targetNumericVersion:(Lcom/sun/tools/javac/jvm/Target;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // com.sun.tools.javac.jvm.Target t
        end local 11 // java.lang.String verString
        end local 7 // char ver
        16: .line 84
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        17: iload 8
            iload 9
            if_icmplt 11
        end local 5 // java.nio.file.Path section
        18: .line 83
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        19: .line 93
            aload 4 /* dir */
            ifnull 22
            aload 4 /* dir */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 22
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream
      StackMap stack: java.lang.Throwable
        20: astore 1
            aload 4 /* dir */
            ifnull 21
            aload 4 /* dir */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 4 // java.nio.file.DirectoryStream dir
      StackMap locals:
      StackMap stack:
        21: aload 1
            athrow
      StackMap locals:
      StackMap stack:
        22: aload 3 /* fs */
            ifnull 31
            aload 3 /* fs */
            invokevirtual java.nio.file.FileSystem.close:()V
            goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 2
            aload 1
            ifnonnull 24
            aload 2
            astore 1
            goto 25
      StackMap locals:
      StackMap stack:
        24: aload 1
            aload 2
            if_acmpeq 25
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        25: aload 3 /* fs */
            ifnull 26
            aload 3 /* fs */
            invokevirtual java.nio.file.FileSystem.close:()V
        end local 3 // java.nio.file.FileSystem fs
      StackMap locals:
      StackMap stack:
        26: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 2
            aload 1
            ifnonnull 28
            aload 2
            astore 1
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 1
            aload 2
            if_acmpeq 29
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        29: aload 1
            athrow
      StackMap locals: java.nio.file.Path
      StackMap stack: java.lang.Exception
        30: pop
        end local 0 // java.nio.file.Path ctSymFile
        31: .line 96
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            3   31     0  ctSymFile  Ljava/nio/file/Path;
            6   26     3         fs  Ljava/nio/file/FileSystem;
            8   21     4        dir  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           10   18     5    section  Ljava/nio/file/Path;
           12   16     7        ver  C
           13   16    11  verString  Ljava/lang/String;
           14   16    12          t  Lcom/sun/tools/javac/jvm/Target;
      Exception table:
        from    to  target  type
           8    19      20  any
           6    22      23  any
           5    27      27  any
           4    30      30  Class java.io.IOException
           4    30      30  Class java.nio.file.ProviderNotFoundException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/platform/JDKPlatformProvider;

  public java.lang.Iterable<java.lang.String> getSupportedPlatformNames();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
         0: .line 64
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
            areturn
        end local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/platform/JDKPlatformProvider;
    Signature: ()Ljava/lang/Iterable<Ljava/lang/String;>;

  public com.sun.tools.javac.platform.PlatformDescription getPlatform(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/sun/tools/javac/platform/PlatformDescription;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
        start local 1 // java.lang.String platformName
        start local 2 // java.lang.String options
         0: .line 69
            new com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl
            dup
            aload 1 /* platformName */
            invokespecial com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String options
        end local 1 // java.lang.String platformName
        end local 0 // com.sun.tools.javac.platform.JDKPlatformProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/tools/javac/platform/JDKPlatformProvider;
            0    1     1  platformName  Ljava/lang/String;
            0    1     2       options  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      platformName  
      options       

  private static java.lang.String targetNumericVersion(com.sun.tools.javac.jvm.Target);
    descriptor: (Lcom/sun/tools/javac/jvm/Target;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.jvm.Target target
         0: .line 99
            aload 0 /* target */
            invokevirtual com.sun.tools.javac.jvm.Target.ordinal:()I
            getstatic com.sun.tools.javac.jvm.Target.JDK1_1:Lcom/sun/tools/javac/jvm/Target;
            invokevirtual com.sun.tools.javac.jvm.Target.ordinal:()I
            isub
            iconst_1
            iadd
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.jvm.Target target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Lcom/sun/tools/javac/jvm/Target;
    MethodParameters:
        Name  Flags
      target  

  static java.nio.file.Path findCtSym();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 191
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* javaHome */
        start local 0 // java.lang.String javaHome
         1: .line 192
            aload 0 /* javaHome */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* file */
        start local 1 // java.nio.file.Path file
         2: .line 194
            getstatic com.sun.tools.javac.platform.JDKPlatformProvider.symbolFileLocation:[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: java.lang.String java.nio.file.Path top int int java.lang.String[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* name */
        start local 2 // java.lang.String name
         4: .line 195
            aload 1 /* file */
            aload 2 /* name */
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* file */
        end local 2 // java.lang.String name
         5: .line 194
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 196
            aload 1 /* file */
            areturn
        end local 1 // java.nio.file.Path file
        end local 0 // java.lang.String javaHome
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1    8     0  javaHome  Ljava/lang/String;
            2    8     1      file  Ljava/nio/file/Path;
            4    5     2      name  Ljava/lang/String;
}
SourceFile: "JDKPlatformProvider.java"
NestMembers:
  com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl
InnerClasses:
  PlatformDescriptionImpl = com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl of com.sun.tools.javac.platform.JDKPlatformProvider