public class com.sun.tools.jdeps.ModuleDotGraph
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.jdeps.ModuleDotGraph
  super_class: java.lang.Object
{
  private final com.sun.tools.jdeps.JdepsConfiguration config;
    descriptor: Lcom/sun/tools/jdeps/JdepsConfiguration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, java.lang.module.Configuration> configurations;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/Configuration;>;

  private final boolean apiOnly;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(com.sun.tools.jdeps.JdepsConfiguration, boolean);
    descriptor: (Lcom/sun/tools/jdeps/JdepsConfiguration;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // com.sun.tools.jdeps.JdepsConfiguration config
        start local 2 // boolean apiOnly
         0: .line 65
            aload 0 /* this */
            aload 1 /* config */
         1: .line 66
            aload 1 /* config */
            invokevirtual com.sun.tools.jdeps.JdepsConfiguration.rootModules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 67
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/jdeps/Module.name()Ljava/lang/String; (5)
                  (Lcom/sun/tools/jdeps/Module;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 68
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
         4: .line 69
            invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
            aload 1 /* config */
            invokedynamic apply(Lcom/sun/tools/jdeps/JdepsConfiguration;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/jdeps/ModuleDotGraph.lambda$1(Lcom/sun/tools/jdeps/JdepsConfiguration;Ljava/lang/String;)Ljava/lang/module/Configuration; (6)
                  (Ljava/lang/String;)Ljava/lang/module/Configuration;
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
         5: .line 70
            iload 2 /* apiOnly */
            invokespecial com.sun.tools.jdeps.ModuleDotGraph.<init>:(Lcom/sun/tools/jdeps/JdepsConfiguration;Ljava/util/Map;Z)V
         6: .line 71
            return
        end local 2 // boolean apiOnly
        end local 1 // com.sun.tools.jdeps.JdepsConfiguration config
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    7     1   config  Lcom/sun/tools/jdeps/JdepsConfiguration;
            0    7     2  apiOnly  Z
    MethodParameters:
         Name  Flags
      config   
      apiOnly  

  public void <init>(java.util.Map<java.lang.String, java.lang.module.Configuration>, );
    descriptor: (Ljava/util/Map;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.util.Map configurations
        start local 2 // boolean apiOnly
         0: .line 74
            aload 0 /* this */
            aconst_null
            aload 1 /* configurations */
            iload 2 /* apiOnly */
            invokespecial com.sun.tools.jdeps.ModuleDotGraph.<init>:(Lcom/sun/tools/jdeps/JdepsConfiguration;Ljava/util/Map;Z)V
         1: .line 75
            return
        end local 2 // boolean apiOnly
        end local 1 // java.util.Map configurations
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    2     1  configurations  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/Configuration;>;
            0    2     2         apiOnly  Z
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/Configuration;>;Z)V
    MethodParameters:
                Name  Flags
      configurations  
      apiOnly         

  private void <init>(com.sun.tools.jdeps.JdepsConfiguration, java.util.Map<java.lang.String, java.lang.module.Configuration>, );
    descriptor: (Lcom/sun/tools/jdeps/JdepsConfiguration;Ljava/util/Map;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // com.sun.tools.jdeps.JdepsConfiguration config
        start local 2 // java.util.Map configurations
        start local 3 // boolean apiOnly
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            aload 0 /* this */
            aload 2 /* configurations */
            putfield com.sun.tools.jdeps.ModuleDotGraph.configurations:Ljava/util/Map;
         2: .line 81
            aload 0 /* this */
            iload 3 /* apiOnly */
            putfield com.sun.tools.jdeps.ModuleDotGraph.apiOnly:Z
         3: .line 82
            aload 0 /* this */
            aload 1 /* config */
            putfield com.sun.tools.jdeps.ModuleDotGraph.config:Lcom/sun/tools/jdeps/JdepsConfiguration;
         4: .line 83
            return
        end local 3 // boolean apiOnly
        end local 2 // java.util.Map configurations
        end local 1 // com.sun.tools.jdeps.JdepsConfiguration config
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    5     1          config  Lcom/sun/tools/jdeps/JdepsConfiguration;
            0    5     2  configurations  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/Configuration;>;
            0    5     3         apiOnly  Z
    Signature: (Lcom/sun/tools/jdeps/JdepsConfiguration;Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/Configuration;>;Z)V
    MethodParameters:
                Name  Flags
      config          
      configurations  
      apiOnly         

  public boolean genDotFiles(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.nio.file.Path dir
         0: .line 91
            aload 0 /* this */
            aload 1 /* dir */
            getstatic com.sun.tools.jdeps.ModuleDotGraph$DotGraphAttributes.DEFAULT:Lcom/sun/tools/jdeps/ModuleDotGraph$DotGraphAttributes;
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph.genDotFiles:(Ljava/nio/file/Path;Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;)Z
            ireturn
        end local 1 // java.nio.file.Path dir
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    1     1   dir  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dir   

  public boolean genDotFiles(java.nio.file.Path, com.sun.tools.jdeps.ModuleDotGraph$Attributes);
    descriptor: (Ljava/nio/file/Path;Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.nio.file.Path dir
        start local 2 // com.sun.tools.jdeps.ModuleDotGraph$Attributes attributes
         0: .line 97
            aload 1 /* dir */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         1: .line 98
            aload 0 /* this */
            getfield com.sun.tools.jdeps.ModuleDotGraph.configurations:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.sun.tools.jdeps.ModuleDotGraph java.nio.file.Path com.sun.tools.jdeps.ModuleDotGraph$Attributes top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* mn */
        start local 3 // java.lang.String mn
         3: .line 99
            aload 1 /* dir */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 3 /* mn */
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph.toDotFileBaseName:(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
            ldc ".dot"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* path */
        start local 5 // java.nio.file.Path path
         4: .line 100
            aload 0 /* this */
            aload 5 /* path */
            aload 3 /* mn */
            aload 0 /* this */
            getfield com.sun.tools.jdeps.ModuleDotGraph.configurations:Ljava/util/Map;
            aload 3 /* mn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.Configuration
            aload 2 /* attributes */
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph.genDotFile:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/module/Configuration;Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;)V
        end local 5 // java.nio.file.Path path
        end local 3 // java.lang.String mn
         5: .line 98
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 102
            iconst_1
            ireturn
        end local 2 // com.sun.tools.jdeps.ModuleDotGraph$Attributes attributes
        end local 1 // java.nio.file.Path dir
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    7     1         dir  Ljava/nio/file/Path;
            0    7     2  attributes  Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;
            3    5     3          mn  Ljava/lang/String;
            4    5     5        path  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      dir         
      attributes  

  private java.lang.String toDotFileBaseName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.lang.String mn
         0: .line 106
            aload 0 /* this */
            getfield com.sun.tools.jdeps.ModuleDotGraph.config:Lcom/sun/tools/jdeps/JdepsConfiguration;
            ifnonnull 2
         1: .line 107
            aload 1 /* mn */
            areturn
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdeps.ModuleDotGraph.config:Lcom/sun/tools/jdeps/JdepsConfiguration;
            aload 1 /* mn */
            invokevirtual com.sun.tools.jdeps.JdepsConfiguration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/jdeps/Archive.path()Ljava/util/Optional; (5)
                  (Lcom/sun/tools/jdeps/Module;)Ljava/util/Optional;
            invokevirtual java.util.Optional.flatMap:(Ljava/util/function/Function;)Ljava/util/Optional;
            astore 2 /* path */
        start local 2 // java.util.Optional path
         3: .line 110
            aload 2 /* path */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 5
         4: .line 111
            aload 2 /* path */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            areturn
         5: .line 113
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 1 /* mn */
            areturn
        end local 2 // java.util.Optional path
        end local 1 // java.lang.String mn
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    6     1    mn  Ljava/lang/String;
            3    6     2  path  Ljava/util/Optional<Ljava/nio/file/Path;>;
    MethodParameters:
      Name  Flags
      mn    

  public void genDotFile(java.nio.file.Path, java.lang.String, java.lang.module.Configuration, com.sun.tools.jdeps.ModuleDotGraph$Attributes);
    descriptor: (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/module/Configuration;Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.nio.file.Path path
        start local 2 // java.lang.String name
        start local 3 // java.lang.module.Configuration configuration
        start local 4 // com.sun.tools.jdeps.ModuleDotGraph$Attributes attributes
         0: .line 124
            aload 0 /* this */
            getfield com.sun.tools.jdeps.ModuleDotGraph.apiOnly:Z
            ifeq 2
         1: .line 125
            aload 0 /* this */
            aload 3 /* configuration */
            aload 2 /* name */
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph.requiresTransitiveGraph:(Ljava/lang/module/Configuration;Ljava/util/Set;)Lcom/sun/tools/jdeps/Graph;
            goto 3
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* configuration */
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph.gengraph:(Ljava/lang/module/Configuration;)Lcom/sun/tools/jdeps/Graph;
         3: .line 124
      StackMap locals:
      StackMap stack: com.sun.tools.jdeps.Graph
            astore 5 /* graph */
        start local 5 // com.sun.tools.jdeps.Graph graph
         4: .line 128
            new com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder
            dup
            aload 2 /* name */
            aload 5 /* graph */
            aload 4 /* attributes */
            invokespecial com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.<init>:(Ljava/lang/String;Lcom/sun/tools/jdeps/Graph;Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;)V
            astore 6 /* builder */
        start local 6 // com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder builder
         5: .line 129
            aload 6 /* builder */
            ldc "se"
            ldc "java"
            aload 4 /* attributes */
            invokeinterface com.sun.tools.jdeps.ModuleDotGraph$Attributes.javaSubgraphColor:()Ljava/lang/String;
         6: .line 130
            getstatic com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.JAVA_SE_SUBGRAPH:Ljava/util/Set;
         7: .line 129
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.subgraph:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lcom/sun/tools/jdeps/ModuleDotGraph$DotGraphBuilder;
         8: .line 131
            ldc "jdk"
            ldc "jdk"
            aload 4 /* attributes */
            invokeinterface com.sun.tools.jdeps.ModuleDotGraph$Attributes.jdkSubgraphColor:()Ljava/lang/String;
         9: .line 132
            getstatic com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.JDK_SUBGRAPH:Ljava/util/Set;
        10: .line 131
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.subgraph:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lcom/sun/tools/jdeps/ModuleDotGraph$DotGraphBuilder;
        11: .line 133
            aload 5 /* graph */
            invokevirtual com.sun.tools.jdeps.Graph.nodes:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        12: .line 134
            aload 3 /* configuration */
            invokedynamic apply(Ljava/lang/module/Configuration;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/jdeps/ModuleDotGraph.lambda$3(Ljava/lang/module/Configuration;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor; (6)
                  (Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        13: .line 133
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.modules:(Ljava/util/stream/Stream;)Lcom/sun/tools/jdeps/ModuleDotGraph$DotGraphBuilder;
            pop
        14: .line 137
            aload 6 /* builder */
            aload 1 /* path */
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder.build:(Ljava/nio/file/Path;)V
        15: .line 138
            return
        end local 6 // com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder builder
        end local 5 // com.sun.tools.jdeps.Graph graph
        end local 4 // com.sun.tools.jdeps.ModuleDotGraph$Attributes attributes
        end local 3 // java.lang.module.Configuration configuration
        end local 2 // java.lang.String name
        end local 1 // java.nio.file.Path path
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0   16     1           path  Ljava/nio/file/Path;
            0   16     2           name  Ljava/lang/String;
            0   16     3  configuration  Ljava/lang/module/Configuration;
            0   16     4     attributes  Lcom/sun/tools/jdeps/ModuleDotGraph$Attributes;
            4   16     5          graph  Lcom/sun/tools/jdeps/Graph<Ljava/lang/String;>;
            5   16     6        builder  Lcom/sun/tools/jdeps/ModuleDotGraph$DotGraphBuilder;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      path           
      name           
      configuration  
      attributes     

  private com.sun.tools.jdeps.Graph<java.lang.String> gengraph(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)Lcom/sun/tools/jdeps/Graph;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.lang.module.Configuration cf
         0: .line 149
            new com.sun.tools.jdeps.Graph$Builder
            dup
            invokespecial com.sun.tools.jdeps.Graph$Builder.<init>:()V
            astore 2 /* builder */
        start local 2 // com.sun.tools.jdeps.Graph$Builder builder
         1: .line 150
            aload 1 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 151
            aload 2 /* builder */
            invokedynamic accept(Lcom/sun/tools/jdeps/Graph$Builder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/sun/tools/jdeps/ModuleDotGraph.lambda$4(Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/module/ResolvedModule;)V (6)
                  (Ljava/lang/module/ResolvedModule;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 159
            aload 0 /* this */
            aload 1 /* cf */
            aload 2 /* builder */
            getfield com.sun.tools.jdeps.Graph$Builder.nodes:Ljava/util/Set;
            invokevirtual com.sun.tools.jdeps.ModuleDotGraph.requiresTransitiveGraph:(Ljava/lang/module/Configuration;Ljava/util/Set;)Lcom/sun/tools/jdeps/Graph;
            astore 3 /* rpg */
        start local 3 // com.sun.tools.jdeps.Graph rpg
         4: .line 160
            aload 2 /* builder */
            invokevirtual com.sun.tools.jdeps.Graph$Builder.build:()Lcom/sun/tools/jdeps/Graph;
            aload 3 /* rpg */
            invokevirtual com.sun.tools.jdeps.Graph.reduce:(Lcom/sun/tools/jdeps/Graph;)Lcom/sun/tools/jdeps/Graph;
            areturn
        end local 3 // com.sun.tools.jdeps.Graph rpg
        end local 2 // com.sun.tools.jdeps.Graph$Builder builder
        end local 1 // java.lang.module.Configuration cf
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0    5     1       cf  Ljava/lang/module/Configuration;
            1    5     2  builder  Lcom/sun/tools/jdeps/Graph$Builder<Ljava/lang/String;>;
            4    5     3      rpg  Lcom/sun/tools/jdeps/Graph<Ljava/lang/String;>;
    Signature: (Ljava/lang/module/Configuration;)Lcom/sun/tools/jdeps/Graph<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      cf    

  public com.sun.tools.jdeps.Graph<java.lang.String> requiresTransitiveGraph(java.lang.module.Configuration, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/Set;)Lcom/sun/tools/jdeps/Graph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.sun.tools.jdeps.ModuleDotGraph this
        start local 1 // java.lang.module.Configuration cf
        start local 2 // java.util.Set roots
         0: .line 171
            new java.util.ArrayDeque
            dup
            aload 2 /* roots */
            invokespecial java.util.ArrayDeque.<init>:(Ljava/util/Collection;)V
            astore 3 /* deque */
        start local 3 // java.util.Deque deque
         1: .line 172
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* visited */
        start local 4 // java.util.Set visited
         2: .line 173
            new com.sun.tools.jdeps.Graph$Builder
            dup
            invokespecial com.sun.tools.jdeps.Graph$Builder.<init>:()V
            astore 5 /* builder */
        start local 5 // com.sun.tools.jdeps.Graph$Builder builder
         3: .line 175
            goto 14
         4: .line 176
      StackMap locals: java.util.Deque java.util.Set com.sun.tools.jdeps.Graph$Builder
      StackMap stack:
            aload 3 /* deque */
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* mn */
        start local 6 // java.lang.String mn
         5: .line 177
            aload 4 /* visited */
            aload 6 /* mn */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 178
            goto 14
         7: .line 180
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* visited */
            aload 6 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 181
            aload 5 /* builder */
            aload 6 /* mn */
            invokevirtual com.sun.tools.jdeps.Graph$Builder.addNode:(Ljava/lang/Object;)V
         9: .line 182
            aload 1 /* cf */
            aload 6 /* mn */
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
        10: .line 183
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        11: .line 184
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/jdeps/ModuleDotGraph.lambda$7(Ljava/lang/module/ModuleDescriptor$Requires;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        12: .line 186
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Requires.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        13: .line 187
            aload 3 /* deque */
            aload 5 /* builder */
            aload 6 /* mn */
            invokedynamic accept(Ljava/util/Deque;Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/String;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/sun/tools/jdeps/ModuleDotGraph.lambda$9(Ljava/util/Deque;Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 6 // java.lang.String mn
        14: .line 175
      StackMap locals:
      StackMap stack:
            aload 3 /* deque */
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            ifnonnull 4
        15: .line 193
            aload 5 /* builder */
            invokevirtual com.sun.tools.jdeps.Graph$Builder.build:()Lcom/sun/tools/jdeps/Graph;
            invokevirtual com.sun.tools.jdeps.Graph.reduce:()Lcom/sun/tools/jdeps/Graph;
            areturn
        end local 5 // com.sun.tools.jdeps.Graph$Builder builder
        end local 4 // java.util.Set visited
        end local 3 // java.util.Deque deque
        end local 2 // java.util.Set roots
        end local 1 // java.lang.module.Configuration cf
        end local 0 // com.sun.tools.jdeps.ModuleDotGraph this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lcom/sun/tools/jdeps/ModuleDotGraph;
            0   16     1       cf  Ljava/lang/module/Configuration;
            0   16     2    roots  Ljava/util/Set<Ljava/lang/String;>;
            1   16     3    deque  Ljava/util/Deque<Ljava/lang/String;>;
            2   16     4  visited  Ljava/util/Set<Ljava/lang/String;>;
            3   16     5  builder  Lcom/sun/tools/jdeps/Graph$Builder<Ljava/lang/String;>;
            5   14     6       mn  Ljava/lang/String;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/Set<Ljava/lang/String;>;)Lcom/sun/tools/jdeps/Graph<Ljava/lang/String;>;
    MethodParameters:
       Name  Flags
      cf     
      roots  

  private static java.lang.module.Configuration lambda$1(com.sun.tools.jdeps.JdepsConfiguration, java.lang.String);
    descriptor: (Lcom/sun/tools/jdeps/JdepsConfiguration;Ljava/lang/String;)Ljava/lang/module/Configuration;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 69
            aload 0
            aload 1 /* mn */
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual com.sun.tools.jdeps.JdepsConfiguration.resolve:(Ljava/util/Set;)Ljava/lang/module/Configuration;
            areturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static java.lang.module.ModuleDescriptor lambda$3(java.lang.module.Configuration, java.lang.String);
    descriptor: (Ljava/lang/module/Configuration;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String mn
         0: .line 134
            aload 0
            aload 1 /* mn */
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
         1: .line 135
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1    mn  Ljava/lang/String;

  private static void lambda$4(com.sun.tools.jdeps.Graph$Builder, java.lang.module.ResolvedModule);
    descriptor: (Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/module/ResolvedModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 1 // java.lang.module.ResolvedModule rm
         0: .line 152
            aload 1 /* rm */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            astore 2 /* mn */
        start local 2 // java.lang.String mn
         1: .line 153
            aload 0
            aload 2 /* mn */
            invokevirtual com.sun.tools.jdeps.Graph$Builder.addNode:(Ljava/lang/Object;)V
         2: .line 154
            aload 1 /* rm */
            invokevirtual java.lang.module.ResolvedModule.reads:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 155
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ResolvedModule.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 156
            aload 0
            aload 2 /* mn */
            invokedynamic accept(Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/String;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  com/sun/tools/jdeps/ModuleDotGraph.lambda$6(Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/String;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 2 // java.lang.String mn
         5: .line 157
            return
        end local 1 // java.lang.module.ResolvedModule rm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     1    rm  Ljava/lang/module/ResolvedModule;
            1    5     2    mn  Ljava/lang/String;

  private static boolean lambda$7(java.lang.module.ModuleDescriptor$Requires);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Requires;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Requires d
         0: .line 184
            aload 0 /* d */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.TRANSITIVE:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 185
            aload 0 /* d */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            ldc "java.base"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Requires d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     d  Ljava/lang/module/ModuleDescriptor$Requires;

  private static void lambda$9(java.util.Deque, com.sun.tools.jdeps.Graph$Builder, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Deque;Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 3 // java.lang.String d
         0: .line 188
            aload 0
            aload 3 /* d */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
         1: .line 189
            aload 1
            aload 2
            aload 3 /* d */
            invokevirtual com.sun.tools.jdeps.Graph$Builder.addEdge:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 190
            return
        end local 3 // java.lang.String d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     3     d  Ljava/lang/String;

  private static void lambda$6(com.sun.tools.jdeps.Graph$Builder, java.lang.String, java.lang.String);
    descriptor: (Lcom/sun/tools/jdeps/Graph$Builder;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String target
         0: .line 156
            aload 0
            aload 1
            aload 2 /* target */
            invokevirtual com.sun.tools.jdeps.Graph$Builder.addEdge:(Ljava/lang/Object;Ljava/lang/Object;)V
            return
        end local 2 // java.lang.String target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     2  target  Ljava/lang/String;
}
SourceFile: "ModuleDotGraph.java"
NestMembers:
  com.sun.tools.jdeps.ModuleDotGraph$Attributes  com.sun.tools.jdeps.ModuleDotGraph$DotGraphAttributes  com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder  com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder$SubGraph
InnerClasses:
  Builder = com.sun.tools.jdeps.Graph$Builder of com.sun.tools.jdeps.Graph
  public abstract Attributes = com.sun.tools.jdeps.ModuleDotGraph$Attributes of com.sun.tools.jdeps.ModuleDotGraph
  DotGraphAttributes = com.sun.tools.jdeps.ModuleDotGraph$DotGraphAttributes of com.sun.tools.jdeps.ModuleDotGraph
  private DotGraphBuilder = com.sun.tools.jdeps.ModuleDotGraph$DotGraphBuilder of com.sun.tools.jdeps.ModuleDotGraph
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires