public final class java.util.ServiceLoader<S> implements java.lang.Iterable<S>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.util.ServiceLoader
  super_class: java.lang.Object
{
  private final java.lang.Class<S> service;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TS;>;

  private final java.lang.String serviceName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ModuleLayer layer;
    descriptor: Ljava/lang/ModuleLayer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ClassLoader loader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private java.util.Iterator<java.util.ServiceLoader$Provider<S>> lookupIterator1;
    descriptor: Ljava/util/Iterator;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Iterator<Ljava/util/ServiceLoader$Provider<TS;>;>;

  private final java.util.List<S> instantiatedProviders;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<TS;>;

  private java.util.Iterator<java.util.ServiceLoader$Provider<S>> lookupIterator2;
    descriptor: Ljava/util/Iterator;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Iterator<Ljava/util/ServiceLoader$Provider<TS;>;>;

  private final java.util.List<java.util.ServiceLoader$Provider<S>> loadedProviders;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/util/ServiceLoader$Provider<TS;>;>;

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

  private int reloadCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static jdk.internal.access.JavaLangAccess LANG_ACCESS;
    descriptor: Ljdk/internal/access/JavaLangAccess;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 392
            ldc Ljava/util/ServiceLoader;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.util.ServiceLoader.$assertionsDisabled:Z
         3: .line 426
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
            putstatic java.util.ServiceLoader.LANG_ACCESS:Ljdk/internal/access/JavaLangAccess;
         4: .line 427
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.Class<?>, java.lang.ModuleLayer, java.lang.Class<S>);
    descriptor: (Ljava/lang/Class;Ljava/lang/ModuleLayer;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.util.ServiceLoader this
        start local 1 // java.lang.Class caller
        start local 2 // java.lang.ModuleLayer layer
        start local 3 // java.lang.Class svc
         0: .line 478
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 414
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield java.util.ServiceLoader.instantiatedProviders:Ljava/util/List;
         2: .line 418
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield java.util.ServiceLoader.loadedProviders:Ljava/util/List;
         3: .line 479
            aload 1 /* caller */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 480
            aload 2 /* layer */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 481
            aload 3 /* svc */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 482
            aload 1 /* caller */
            aload 3 /* svc */
            invokestatic java.util.ServiceLoader.checkCaller:(Ljava/lang/Class;Ljava/lang/Class;)V
         7: .line 484
            aload 0 /* this */
            aload 3 /* svc */
            putfield java.util.ServiceLoader.service:Ljava/lang/Class;
         8: .line 485
            aload 0 /* this */
            aload 3 /* svc */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putfield java.util.ServiceLoader.serviceName:Ljava/lang/String;
         9: .line 486
            aload 0 /* this */
            aload 2 /* layer */
            putfield java.util.ServiceLoader.layer:Ljava/lang/ModuleLayer;
        10: .line 487
            aload 0 /* this */
            aconst_null
            putfield java.util.ServiceLoader.loader:Ljava/lang/ClassLoader;
        11: .line 488
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 13
        12: .line 489
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            goto 14
        13: .line 490
      StackMap locals: java.util.ServiceLoader java.lang.Class java.lang.ModuleLayer java.lang.Class
      StackMap stack: java.util.ServiceLoader
            aconst_null
        14: .line 488
      StackMap locals: java.util.ServiceLoader java.lang.Class java.lang.ModuleLayer java.lang.Class
      StackMap stack: java.util.ServiceLoader java.security.AccessControlContext
            putfield java.util.ServiceLoader.acc:Ljava/security/AccessControlContext;
        15: .line 491
            return
        end local 3 // java.lang.Class svc
        end local 2 // java.lang.ModuleLayer layer
        end local 1 // java.lang.Class caller
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Ljava/util/ServiceLoader<TS;>;
            0   16     1  caller  Ljava/lang/Class<*>;
            0   16     2   layer  Ljava/lang/ModuleLayer;
            0   16     3     svc  Ljava/lang/Class<TS;>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/ModuleLayer;Ljava/lang/Class<TS;>;)V
    MethodParameters:
        Name  Flags
      caller  
      layer   
      svc     

  private void <init>(java.lang.Class<?>, java.lang.Class<S>, java.lang.ClassLoader);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.util.ServiceLoader this
        start local 1 // java.lang.Class caller
        start local 2 // java.lang.Class svc
        start local 3 // java.lang.ClassLoader cl
         0: .line 501
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 414
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield java.util.ServiceLoader.instantiatedProviders:Ljava/util/List;
         2: .line 418
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield java.util.ServiceLoader.loadedProviders:Ljava/util/List;
         3: .line 502
            aload 2 /* svc */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 504
            invokestatic jdk.internal.misc.VM.isBooted:()Z
            ifeq 9
         5: .line 505
            aload 1 /* caller */
            aload 2 /* svc */
            invokestatic java.util.ServiceLoader.checkCaller:(Ljava/lang/Class;Ljava/lang/Class;)V
         6: .line 506
            aload 3 /* cl */
            ifnonnull 15
         7: .line 507
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
         8: .line 509
            goto 15
         9: .line 514
      StackMap locals: java.util.ServiceLoader java.lang.Class java.lang.Class java.lang.ClassLoader
      StackMap stack:
            aload 1 /* caller */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 4 /* callerModule */
        start local 4 // java.lang.Module callerModule
        10: .line 515
            ldc Ljava/lang/Object;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 5 /* base */
        start local 5 // java.lang.Module base
        11: .line 516
            aload 2 /* svc */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 6 /* svcModule */
        start local 6 // java.lang.Module svcModule
        12: .line 517
            aload 4 /* callerModule */
            aload 5 /* base */
            if_acmpne 13
            aload 6 /* svcModule */
            aload 5 /* base */
            if_acmpeq 14
        13: .line 518
      StackMap locals: java.lang.Module java.lang.Module java.lang.Module
      StackMap stack:
            aload 2 /* svc */
            new java.lang.StringBuilder
            dup
            ldc "not accessible to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " during VM init"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
        14: .line 522
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* cl */
        end local 6 // java.lang.Module svcModule
        end local 5 // java.lang.Module base
        end local 4 // java.lang.Module callerModule
        15: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* svc */
            putfield java.util.ServiceLoader.service:Ljava/lang/Class;
        16: .line 526
            aload 0 /* this */
            aload 2 /* svc */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putfield java.util.ServiceLoader.serviceName:Ljava/lang/String;
        17: .line 527
            aload 0 /* this */
            aconst_null
            putfield java.util.ServiceLoader.layer:Ljava/lang/ModuleLayer;
        18: .line 528
            aload 0 /* this */
            aload 3 /* cl */
            putfield java.util.ServiceLoader.loader:Ljava/lang/ClassLoader;
        19: .line 529
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 21
        20: .line 530
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            goto 22
        21: .line 531
      StackMap locals:
      StackMap stack: java.util.ServiceLoader
            aconst_null
        22: .line 529
      StackMap locals: java.util.ServiceLoader java.lang.Class java.lang.Class java.lang.ClassLoader
      StackMap stack: java.util.ServiceLoader java.security.AccessControlContext
            putfield java.util.ServiceLoader.acc:Ljava/security/AccessControlContext;
        23: .line 532
            return
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.lang.Class svc
        end local 1 // java.lang.Class caller
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0          this  Ljava/util/ServiceLoader<TS;>;
            0   24     1        caller  Ljava/lang/Class<*>;
            0   24     2           svc  Ljava/lang/Class<TS;>;
            0   24     3            cl  Ljava/lang/ClassLoader;
           10   15     4  callerModule  Ljava/lang/Module;
           11   15     5          base  Ljava/lang/Module;
           12   15     6     svcModule  Ljava/lang/Module;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<TS;>;Ljava/lang/ClassLoader;)V
    MethodParameters:
        Name  Flags
      caller  
      svc     
      cl      

  private void <init>(java.lang.Module, java.lang.Class<S>, java.lang.ClassLoader);
    descriptor: (Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.util.ServiceLoader this
        start local 1 // java.lang.Module callerModule
        start local 2 // java.lang.Class svc
        start local 3 // java.lang.ClassLoader cl
         0: .line 543
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 414
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield java.util.ServiceLoader.instantiatedProviders:Ljava/util/List;
         2: .line 418
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield java.util.ServiceLoader.loadedProviders:Ljava/util/List;
         3: .line 544
            aload 1 /* callerModule */
            aload 2 /* svc */
            invokevirtual java.lang.Module.canUse:(Ljava/lang/Class;)Z
            ifne 5
         4: .line 545
            aload 2 /* svc */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not declare `uses`"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
         5: .line 548
      StackMap locals: java.util.ServiceLoader java.lang.Module java.lang.Class java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            aload 2 /* svc */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            putfield java.util.ServiceLoader.service:Ljava/lang/Class;
         6: .line 549
            aload 0 /* this */
            aload 2 /* svc */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putfield java.util.ServiceLoader.serviceName:Ljava/lang/String;
         7: .line 550
            aload 0 /* this */
            aconst_null
            putfield java.util.ServiceLoader.layer:Ljava/lang/ModuleLayer;
         8: .line 551
            aload 0 /* this */
            aload 3 /* cl */
            putfield java.util.ServiceLoader.loader:Ljava/lang/ClassLoader;
         9: .line 552
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 11
        10: .line 553
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            goto 12
        11: .line 554
      StackMap locals:
      StackMap stack: java.util.ServiceLoader
            aconst_null
        12: .line 552
      StackMap locals: java.util.ServiceLoader java.lang.Module java.lang.Class java.lang.ClassLoader
      StackMap stack: java.util.ServiceLoader java.security.AccessControlContext
            putfield java.util.ServiceLoader.acc:Ljava/security/AccessControlContext;
        13: .line 555
            return
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.lang.Class svc
        end local 1 // java.lang.Module callerModule
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Ljava/util/ServiceLoader<TS;>;
            0   14     1  callerModule  Ljava/lang/Module;
            0   14     2           svc  Ljava/lang/Class<TS;>;
            0   14     3            cl  Ljava/lang/ClassLoader;
    Signature: (Ljava/lang/Module;Ljava/lang/Class<TS;>;Ljava/lang/ClassLoader;)V
    MethodParameters:
              Name  Flags
      callerModule  
      svc           
      cl            

  private static void checkCaller(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.Class caller
        start local 1 // java.lang.Class svc
         0: .line 562
            aload 0 /* caller */
            ifnonnull 2
         1: .line 563
            aload 1 /* svc */
            ldc "no caller to check if it declares `uses`"
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
         2: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* caller */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 2 /* callerModule */
        start local 2 // java.lang.Module callerModule
         3: .line 568
            aload 1 /* svc */
            invokevirtual java.lang.Class.getModifiers:()I
            istore 3 /* mods */
        start local 3 // int mods
         4: .line 569
            aload 0 /* caller */
            aload 1 /* svc */
            aconst_null
            iload 3 /* mods */
            invokestatic jdk.internal.reflect.Reflection.verifyMemberAccess:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 6
         5: .line 570
            aload 1 /* svc */
            new java.lang.StringBuilder
            dup
            ldc "service type not accessible to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
         6: .line 575
      StackMap locals: java.lang.Module int
      StackMap stack:
            aload 2 /* callerModule */
            aload 1 /* svc */
            invokevirtual java.lang.Module.canUse:(Ljava/lang/Class;)Z
            ifne 8
         7: .line 576
            aload 1 /* svc */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not declare `uses`"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
         8: .line 578
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int mods
        end local 2 // java.lang.Module callerModule
        end local 1 // java.lang.Class svc
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0        caller  Ljava/lang/Class<*>;
            0    9     1           svc  Ljava/lang/Class<*>;
            3    9     2  callerModule  Ljava/lang/Module;
            4    9     3          mods  I
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
        Name  Flags
      caller  
      svc     

  private static void fail(java.lang.Class<?>, java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Class service
        start local 1 // java.lang.String msg
        start local 2 // java.lang.Throwable cause
         0: .line 583
            new java.util.ServiceConfigurationError
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* service */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         1: .line 584
            aload 2 /* cause */
         2: .line 583
            invokespecial java.util.ServiceConfigurationError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Throwable cause
        end local 1 // java.lang.String msg
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  service  Ljava/lang/Class<*>;
            0    3     1      msg  Ljava/lang/String;
            0    3     2    cause  Ljava/lang/Throwable;
    Exceptions:
      throws java.util.ServiceConfigurationError
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Throwable;)V
    MethodParameters:
         Name  Flags
      service  
      msg      
      cause    

  private static void fail(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Class service
        start local 1 // java.lang.String msg
         0: .line 590
            new java.util.ServiceConfigurationError
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* service */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.util.ServiceConfigurationError.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String msg
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  service  Ljava/lang/Class<*>;
            0    1     1      msg  Ljava/lang/String;
    Exceptions:
      throws java.util.ServiceConfigurationError
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
         Name  Flags
      service  
      msg      

  private static void fail(java.lang.Class<?>, java.net.URL, int, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/net/URL;ILjava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.lang.Class service
        start local 1 // java.net.URL u
        start local 2 // int line
        start local 3 // java.lang.String msg
         0: .line 596
            aload 0 /* service */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* u */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 597
            return
        end local 3 // java.lang.String msg
        end local 2 // int line
        end local 1 // java.net.URL u
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  service  Ljava/lang/Class<*>;
            0    2     1        u  Ljava/net/URL;
            0    2     2     line  I
            0    2     3      msg  Ljava/lang/String;
    Exceptions:
      throws java.util.ServiceConfigurationError
    Signature: (Ljava/lang/Class<*>;Ljava/net/URL;ILjava/lang/String;)V
    MethodParameters:
         Name  Flags
      service  
      u        
      line     
      msg      

  private boolean inExplicitModule(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // java.util.ServiceLoader this
        start local 1 // java.lang.Class clazz
         0: .line 603
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 2 /* module */
        start local 2 // java.lang.Module module
         1: .line 604
            aload 2 /* module */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 2
            aload 2 /* module */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifne 2
            iconst_1
            ireturn
      StackMap locals: java.lang.Module
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // java.lang.Module module
        end local 1 // java.lang.Class clazz
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljava/util/ServiceLoader<TS;>;
            0    3     1   clazz  Ljava/lang/Class<*>;
            1    3     2  module  Ljava/lang/Module;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  private java.lang.reflect.Method findStaticProviderMethod(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.util.ServiceLoader this
        start local 1 // java.lang.Class clazz
         0: .line 615
            aconst_null
            astore 2 /* methods */
        start local 2 // java.util.List methods
         1: .line 617
            getstatic java.util.ServiceLoader.LANG_ACCESS:Ljdk/internal/access/JavaLangAccess;
            aload 1 /* clazz */
            ldc "provider"
            iconst_0
            anewarray java.lang.Class
            invokeinterface jdk.internal.access.JavaLangAccess.getDeclaredPublicMethods:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/util/List;
            astore 2 /* methods */
         2: .line 618
            goto 5
      StackMap locals: java.util.ServiceLoader java.lang.Class java.util.List
      StackMap stack: java.lang.Throwable
         3: astore 3 /* x */
        start local 3 // java.lang.Throwable x
         4: .line 619
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            ldc "Unable to get public provider() method"
            aload 3 /* x */
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable x
         5: .line 621
      StackMap locals:
      StackMap stack:
            aload 2 /* methods */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         6: .line 623
            aconst_null
            areturn
         7: .line 627
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* result */
        start local 3 // java.lang.reflect.Method result
         8: .line 628
            aload 2 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: java.util.ServiceLoader java.lang.Class java.util.List java.lang.reflect.Method top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 4 /* method */
        start local 4 // java.lang.reflect.Method method
        10: .line 629
            aload 4 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            istore 6 /* mods */
        start local 6 // int mods
        11: .line 630
            getstatic java.util.ServiceLoader.$assertionsDisabled:Z
            ifne 12
            iload 6 /* mods */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 631
      StackMap locals: java.util.ServiceLoader java.lang.Class java.util.List java.lang.reflect.Method java.lang.reflect.Method java.util.Iterator int
      StackMap stack:
            iload 6 /* mods */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 18
        13: .line 632
            aload 3 /* result */
            ifnull 17
        14: .line 633
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " declares more than one"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 634
            ldc " public static provider() method"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 633
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
        17: .line 636
      StackMap locals:
      StackMap stack:
            aload 4 /* method */
            astore 3 /* result */
        end local 6 // int mods
        end local 4 // java.lang.reflect.Method method
        18: .line 628
      StackMap locals: java.util.ServiceLoader java.lang.Class java.util.List java.lang.reflect.Method top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        19: .line 639
            aload 3 /* result */
            ifnull 23
        20: .line 640
            aload 3 /* result */
            astore 4 /* m */
        start local 4 // java.lang.reflect.Method m
        21: .line 641
            aload 4 /* m */
            invokedynamic run(Ljava/lang/reflect/Method;)Ljava/security/PrivilegedAction;
              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;
                  java/util/ServiceLoader.lambda$0(Ljava/lang/reflect/Method;)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            astore 5 /* pa */
        start local 5 // java.security.PrivilegedAction pa
        22: .line 645
            aload 5 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
        end local 5 // java.security.PrivilegedAction pa
        end local 4 // java.lang.reflect.Method m
        23: .line 647
      StackMap locals: java.util.ServiceLoader java.lang.Class java.util.List java.lang.reflect.Method
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.reflect.Method result
        end local 2 // java.util.List methods
        end local 1 // java.lang.Class clazz
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Ljava/util/ServiceLoader<TS;>;
            0   24     1    clazz  Ljava/lang/Class<*>;
            1   24     2  methods  Ljava/util/List<Ljava/lang/reflect/Method;>;
            4    5     3        x  Ljava/lang/Throwable;
            8   24     3   result  Ljava/lang/reflect/Method;
           10   18     4   method  Ljava/lang/reflect/Method;
           11   18     6     mods  I
           21   23     4        m  Ljava/lang/reflect/Method;
           22   23     5       pa  Ljava/security/PrivilegedAction<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
       Name  Flags
      clazz  

  private java.lang.reflect.Constructor<?> getConstructor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.util.ServiceLoader this
        start local 1 // java.lang.Class clazz
         0: .line 658
            new java.util.ServiceLoader$1
            dup
            aload 0 /* this */
            aload 1 /* clazz */
            invokespecial java.util.ServiceLoader$1.<init>:(Ljava/util/ServiceLoader;Ljava/lang/Class;)V
         1: .line 657
            astore 2 /* pa */
        start local 2 // java.security.PrivilegedExceptionAction pa
         2: .line 667
            aconst_null
            astore 3 /* ctor */
        start local 3 // java.lang.reflect.Constructor ctor
         3: .line 669
            aload 2 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor
            astore 3 /* ctor */
         4: .line 670
            goto 10
      StackMap locals: java.util.ServiceLoader java.lang.Class java.security.PrivilegedExceptionAction java.lang.reflect.Constructor
      StackMap stack: java.lang.Throwable
         5: astore 4 /* x */
        start local 4 // java.lang.Throwable x
         6: .line 671
            aload 4 /* x */
            instanceof java.security.PrivilegedActionException
            ifeq 8
         7: .line 672
            aload 4 /* x */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 4 /* x */
         8: .line 673
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 5 /* cn */
        start local 5 // java.lang.String cn
         9: .line 674
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            aload 5 /* cn */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Unable to get public no-arg constructor"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* x */
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 5 // java.lang.String cn
        end local 4 // java.lang.Throwable x
        10: .line 676
      StackMap locals:
      StackMap stack:
            aload 3 /* ctor */
            areturn
        end local 3 // java.lang.reflect.Constructor ctor
        end local 2 // java.security.PrivilegedExceptionAction pa
        end local 1 // java.lang.Class clazz
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Ljava/util/ServiceLoader<TS;>;
            0   11     1  clazz  Ljava/lang/Class<*>;
            2   11     2     pa  Ljava/security/PrivilegedExceptionAction<Ljava/lang/reflect/Constructor<*>;>;
            3   11     3   ctor  Ljava/lang/reflect/Constructor<*>;
            6   10     4      x  Ljava/lang/Throwable;
            9   10     5     cn  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<*>;
    MethodParameters:
       Name  Flags
      clazz  

  private java.util.ServiceLoader$Provider<S> loadProvider(jdk.internal.module.ServicesCatalog$ServiceProvider);
    descriptor: (Ljdk/internal/module/ServicesCatalog$ServiceProvider;)Ljava/util/ServiceLoader$Provider;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // java.util.ServiceLoader this
        start local 1 // jdk.internal.module.ServicesCatalog$ServiceProvider provider
         0: .line 843
            aload 1 /* provider */
            invokevirtual jdk.internal.module.ServicesCatalog$ServiceProvider.module:()Ljava/lang/Module;
            astore 2 /* module */
        start local 2 // java.lang.Module module
         1: .line 844
            aload 2 /* module */
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.canRead:(Ljava/lang/Module;)Z
            ifne 3
         2: .line 846
            aconst_null
            areturn
         3: .line 849
      StackMap locals: java.lang.Module
      StackMap stack:
            aload 1 /* provider */
            invokevirtual jdk.internal.module.ServicesCatalog$ServiceProvider.providerName:()Ljava/lang/String;
            astore 3 /* cn */
        start local 3 // java.lang.String cn
         4: .line 850
            aconst_null
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         5: .line 851
            aload 0 /* this */
            getfield java.util.ServiceLoader.acc:Ljava/security/AccessControlContext;
            ifnonnull 11
         6: .line 853
            aload 2 /* module */
            aload 3 /* cn */
            invokestatic java.lang.Class.forName:(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
         7: .line 854
            goto 19
      StackMap locals: java.util.ServiceLoader jdk.internal.module.ServicesCatalog$ServiceProvider java.lang.Module java.lang.String java.lang.Class
      StackMap stack: java.lang.LinkageError
         8: astore 5 /* e */
        start local 5 // java.lang.LinkageError e
         9: .line 855
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            ldc "Unable to load "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* cn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 5 // java.lang.LinkageError e
        10: .line 857
            goto 19
        11: .line 858
      StackMap locals:
      StackMap stack:
            aload 2 /* module */
            aload 3 /* cn */
            invokedynamic run(Ljava/lang/Module;Ljava/lang/String;)Ljava/security/PrivilegedExceptionAction;
              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;
                  java/util/ServiceLoader.lambda$1(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class; (6)
                  ()Ljava/lang/Class;
            astore 5 /* pa */
        start local 5 // java.security.PrivilegedExceptionAction pa
        12: .line 860
            aload 5 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* clazz */
        13: .line 861
            goto 19
      StackMap locals: java.util.ServiceLoader jdk.internal.module.ServicesCatalog$ServiceProvider java.lang.Module java.lang.String java.lang.Class java.security.PrivilegedExceptionAction
      StackMap stack: java.lang.Throwable
        14: astore 6 /* x */
        start local 6 // java.lang.Throwable x
        15: .line 862
            aload 6 /* x */
            instanceof java.security.PrivilegedActionException
            ifeq 17
        16: .line 863
            aload 6 /* x */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 6 /* x */
        17: .line 864
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            ldc "Unable to load "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* cn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* x */
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
        18: .line 865
            aconst_null
            areturn
        end local 6 // java.lang.Throwable x
        end local 5 // java.security.PrivilegedExceptionAction pa
        19: .line 868
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            ifnonnull 21
        20: .line 869
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            ldc "Provider "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* cn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
        21: .line 872
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            istore 5 /* mods */
        start local 5 // int mods
        22: .line 873
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 24
        23: .line 874
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 4 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not public"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
        24: .line 878
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual java.util.ServiceLoader.inExplicitModule:(Ljava/lang/Class;)Z
            ifeq 32
        25: .line 879
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual java.util.ServiceLoader.findStaticProviderMethod:(Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* factoryMethod */
        start local 6 // java.lang.reflect.Method factoryMethod
        26: .line 880
            aload 6 /* factoryMethod */
            ifnull 32
        27: .line 881
            aload 6 /* factoryMethod */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 7 /* returnType */
        start local 7 // java.lang.Class returnType
        28: .line 882
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            aload 7 /* returnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 30
        29: .line 883
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 6 /* factoryMethod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " return type not a subtype"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
        30: .line 887
      StackMap locals: java.lang.reflect.Method java.lang.Class
      StackMap stack:
            aload 7 /* returnType */
            astore 8 /* type */
        start local 8 // java.lang.Class type
        31: .line 888
            new java.util.ServiceLoader$ProviderImpl
            dup
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            aload 8 /* type */
            aload 6 /* factoryMethod */
            aload 0 /* this */
            getfield java.util.ServiceLoader.acc:Ljava/security/AccessControlContext;
            invokespecial java.util.ServiceLoader$ProviderImpl.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/security/AccessControlContext;)V
            areturn
        end local 8 // java.lang.Class type
        end local 7 // java.lang.Class returnType
        end local 6 // java.lang.reflect.Method factoryMethod
        32: .line 893
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            aload 4 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 34
        33: .line 894
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            aload 4 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not a subtype"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.ServiceLoader.fail:(Ljava/lang/Class;Ljava/lang/String;)V
        34: .line 898
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            astore 6 /* type */
        start local 6 // java.lang.Class type
        35: .line 900
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual java.util.ServiceLoader.getConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 7 /* ctor */
        start local 7 // java.lang.reflect.Constructor ctor
        36: .line 901
            new java.util.ServiceLoader$ProviderImpl
            dup
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            aload 6 /* type */
            aload 7 /* ctor */
            aload 0 /* this */
            getfield java.util.ServiceLoader.acc:Ljava/security/AccessControlContext;
            invokespecial java.util.ServiceLoader$ProviderImpl.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Constructor;Ljava/security/AccessControlContext;)V
            areturn
        end local 7 // java.lang.reflect.Constructor ctor
        end local 6 // java.lang.Class type
        end local 5 // int mods
        end local 4 // java.lang.Class clazz
        end local 3 // java.lang.String cn
        end local 2 // java.lang.Module module
        end local 1 // jdk.internal.module.ServicesCatalog$ServiceProvider provider
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Ljava/util/ServiceLoader<TS;>;
            0   37     1       provider  Ljdk/internal/module/ServicesCatalog$ServiceProvider;
            1   37     2         module  Ljava/lang/Module;
            4   37     3             cn  Ljava/lang/String;
            5   37     4          clazz  Ljava/lang/Class<*>;
            9   10     5              e  Ljava/lang/LinkageError;
           12   19     5             pa  Ljava/security/PrivilegedExceptionAction<Ljava/lang/Class<*>;>;
           15   19     6              x  Ljava/lang/Throwable;
           22   37     5           mods  I
           26   32     6  factoryMethod  Ljava/lang/reflect/Method;
           28   32     7     returnType  Ljava/lang/Class<*>;
           31   32     8           type  Ljava/lang/Class<+TS;>;
           35   37     6           type  Ljava/lang/Class<+TS;>;
           36   37     7           ctor  Ljava/lang/reflect/Constructor<+TS;>;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.LinkageError
          12    13      14  Class java.lang.Throwable
    Signature: (Ljdk/internal/module/ServicesCatalog$ServiceProvider;)Ljava/util/ServiceLoader$Provider<TS;>;
    MethodParameters:
          Name  Flags
      provider  

  private java.util.Iterator<java.util.ServiceLoader$Provider<S>> newLookupIterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.util.ServiceLoader this
         0: .line 1291
            getstatic java.util.ServiceLoader.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield java.util.ServiceLoader.layer:Ljava/lang/ModuleLayer;
            ifnull 1
            aload 0 /* this */
            getfield java.util.ServiceLoader.loader:Ljava/lang/ClassLoader;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.ServiceLoader.layer:Ljava/lang/ModuleLayer;
            ifnull 3
         2: .line 1293
            new java.util.ServiceLoader$LayerLookupIterator
            dup
            aload 0 /* this */
            invokespecial java.util.ServiceLoader$LayerLookupIterator.<init>:(Ljava/util/ServiceLoader;)V
            areturn
         3: .line 1295
      StackMap locals:
      StackMap stack:
            new java.util.ServiceLoader$ModuleServicesLookupIterator
            dup
            aload 0 /* this */
            invokespecial java.util.ServiceLoader$ModuleServicesLookupIterator.<init>:(Ljava/util/ServiceLoader;)V
            astore 1 /* first */
        start local 1 // java.util.Iterator first
         4: .line 1296
            new java.util.ServiceLoader$LazyClassPathLookupIterator
            dup
            aload 0 /* this */
            invokespecial java.util.ServiceLoader$LazyClassPathLookupIterator.<init>:(Ljava/util/ServiceLoader;)V
            astore 2 /* second */
        start local 2 // java.util.Iterator second
         5: .line 1297
            new java.util.ServiceLoader$2
            dup
            aload 0 /* this */
            aload 1 /* first */
            aload 2 /* second */
            invokespecial java.util.ServiceLoader$2.<init>:(Ljava/util/ServiceLoader;Ljava/util/Iterator;Ljava/util/Iterator;)V
            areturn
        end local 2 // java.util.Iterator second
        end local 1 // java.util.Iterator first
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/util/ServiceLoader<TS;>;
            4    6     1   first  Ljava/util/Iterator<Ljava/util/ServiceLoader$Provider<TS;>;>;
            5    6     2  second  Ljava/util/Iterator<Ljava/util/ServiceLoader$Provider<TS;>;>;
    Signature: ()Ljava/util/Iterator<Ljava/util/ServiceLoader$Provider<TS;>;>;

  public java.util.Iterator<S> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.ServiceLoader this
         0: .line 1359
            aload 0 /* this */
            getfield java.util.ServiceLoader.lookupIterator1:Ljava/util/Iterator;
            ifnonnull 2
         1: .line 1360
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.util.ServiceLoader.newLookupIterator:()Ljava/util/Iterator;
            putfield java.util.ServiceLoader.lookupIterator1:Ljava/util/Iterator;
         2: .line 1363
      StackMap locals:
      StackMap stack:
            new java.util.ServiceLoader$3
            dup
            aload 0 /* this */
            invokespecial java.util.ServiceLoader$3.<init>:(Ljava/util/ServiceLoader;)V
            areturn
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/ServiceLoader<TS;>;
    Signature: ()Ljava/util/Iterator<TS;>;

  public java.util.stream.Stream<java.util.ServiceLoader$Provider<S>> stream();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.util.ServiceLoader this
         0: .line 1448
            aload 0 /* this */
            getfield java.util.ServiceLoader.loadedAllProviders:Z
            ifeq 2
         1: .line 1449
            aload 0 /* this */
            getfield java.util.ServiceLoader.loadedProviders:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            areturn
         2: .line 1453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.ServiceLoader.lookupIterator2:Ljava/util/Iterator;
            ifnonnull 4
         3: .line 1454
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.util.ServiceLoader.newLookupIterator:()Ljava/util/Iterator;
            putfield java.util.ServiceLoader.lookupIterator2:Ljava/util/Iterator;
         4: .line 1458
      StackMap locals:
      StackMap stack:
            new java.util.ServiceLoader$ProviderSpliterator
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.ServiceLoader.lookupIterator2:Ljava/util/Iterator;
            invokespecial java.util.ServiceLoader$ProviderSpliterator.<init>:(Ljava/util/ServiceLoader;Ljava/util/Iterator;)V
            astore 1 /* s */
        start local 1 // java.util.Spliterator s
         5: .line 1459
            aload 1 /* s */
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
            areturn
        end local 1 // java.util.Spliterator s
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/util/ServiceLoader<TS;>;
            5    6     1     s  Ljava/util/Spliterator<Ljava/util/ServiceLoader$Provider<TS;>;>;
    Signature: ()Ljava/util/stream/Stream<Ljava/util/ServiceLoader$Provider<TS;>;>;

  static <S> java.util.ServiceLoader<S> load(java.lang.Class<S>, java.lang.ClassLoader, java.lang.Module);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/lang/Module;)Ljava/util/ServiceLoader;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Class service
        start local 1 // java.lang.ClassLoader loader
        start local 2 // java.lang.Module callerModule
         0: .line 1537
            new java.util.ServiceLoader
            dup
            aload 2 /* callerModule */
            aload 0 /* service */
            aload 1 /* loader */
            invokespecial java.util.ServiceLoader.<init>:(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
            areturn
        end local 2 // java.lang.Module callerModule
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0       service  Ljava/lang/Class<TS;>;
            0    1     1        loader  Ljava/lang/ClassLoader;
            0    1     2  callerModule  Ljava/lang/Module;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;Ljava/lang/ClassLoader;Ljava/lang/Module;)Ljava/util/ServiceLoader<TS;>;
    MethodParameters:
              Name  Flags
      service       
      loader        
      callerModule  

  public static <S> java.util.ServiceLoader<S> load(java.lang.Class<S>, java.lang.ClassLoader);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Class service
        start local 1 // java.lang.ClassLoader loader
         0: .line 1647
            new java.util.ServiceLoader
            dup
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            aload 0 /* service */
            aload 1 /* loader */
            invokespecial java.util.ServiceLoader.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
            areturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  service  Ljava/lang/Class<TS;>;
            0    1     1   loader  Ljava/lang/ClassLoader;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader<TS;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
         Name  Flags
      service  
      loader   

  public static <S> java.util.ServiceLoader<S> load(java.lang.Class<S>);
    descriptor: (Ljava/lang/Class;)Ljava/util/ServiceLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Class service
         0: .line 1691
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* cl */
        start local 1 // java.lang.ClassLoader cl
         1: .line 1692
            new java.util.ServiceLoader
            dup
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            aload 0 /* service */
            aload 1 /* cl */
            invokespecial java.util.ServiceLoader.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
            areturn
        end local 1 // java.lang.ClassLoader cl
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  service  Ljava/lang/Class<TS;>;
            1    2     1       cl  Ljava/lang/ClassLoader;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;)Ljava/util/ServiceLoader<TS;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
         Name  Flags
      service  

  public static <S> java.util.ServiceLoader<S> loadInstalled(java.lang.Class<S>);
    descriptor: (Ljava/lang/Class;)Ljava/util/ServiceLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Class service
         0: .line 1727
            invokestatic java.lang.ClassLoader.getPlatformClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* cl */
        start local 1 // java.lang.ClassLoader cl
         1: .line 1728
            new java.util.ServiceLoader
            dup
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            aload 0 /* service */
            aload 1 /* cl */
            invokespecial java.util.ServiceLoader.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
            areturn
        end local 1 // java.lang.ClassLoader cl
        end local 0 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  service  Ljava/lang/Class<TS;>;
            1    2     1       cl  Ljava/lang/ClassLoader;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;)Ljava/util/ServiceLoader<TS;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
         Name  Flags
      service  

  public static <S> java.util.ServiceLoader<S> load(java.lang.ModuleLayer, java.lang.Class<S>);
    descriptor: (Ljava/lang/ModuleLayer;Ljava/lang/Class;)Ljava/util/ServiceLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.ModuleLayer layer
        start local 1 // java.lang.Class service
         0: .line 1780
            new java.util.ServiceLoader
            dup
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            aload 0 /* layer */
            aload 1 /* service */
            invokespecial java.util.ServiceLoader.<init>:(Ljava/lang/Class;Ljava/lang/ModuleLayer;Ljava/lang/Class;)V
            areturn
        end local 1 // java.lang.Class service
        end local 0 // java.lang.ModuleLayer layer
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0    layer  Ljava/lang/ModuleLayer;
            0    1     1  service  Ljava/lang/Class<TS;>;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/ModuleLayer;Ljava/lang/Class<TS;>;)Ljava/util/ServiceLoader<TS;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
         Name  Flags
      layer    
      service  

  public java.util.Optional<S> findFirst();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.util.ServiceLoader this
         0: .line 1808
            aload 0 /* this */
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 1 /* iterator */
        start local 1 // java.util.Iterator iterator
         1: .line 1809
            aload 1 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 3
         2: .line 1810
            aload 1 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
         3: .line 1812
      StackMap locals: java.util.Iterator
      StackMap stack:
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
        end local 1 // java.util.Iterator iterator
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljava/util/ServiceLoader<TS;>;
            1    4     1  iterator  Ljava/util/Iterator<TS;>;
    Signature: ()Ljava/util/Optional<TS;>;

  public void reload();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.ServiceLoader this
         0: .line 1829
            aload 0 /* this */
            aconst_null
            putfield java.util.ServiceLoader.lookupIterator1:Ljava/util/Iterator;
         1: .line 1830
            aload 0 /* this */
            getfield java.util.ServiceLoader.instantiatedProviders:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         2: .line 1832
            aload 0 /* this */
            aconst_null
            putfield java.util.ServiceLoader.lookupIterator2:Ljava/util/Iterator;
         3: .line 1833
            aload 0 /* this */
            getfield java.util.ServiceLoader.loadedProviders:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         4: .line 1834
            aload 0 /* this */
            iconst_0
            putfield java.util.ServiceLoader.loadedAllProviders:Z
         5: .line 1837
            aload 0 /* this */
            dup
            getfield java.util.ServiceLoader.reloadCount:I
            iconst_1
            iadd
            putfield java.util.ServiceLoader.reloadCount:I
         6: .line 1838
            return
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/util/ServiceLoader<TS;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.ServiceLoader this
         0: .line 1846
            new java.lang.StringBuilder
            dup
            ldc "java.util.ServiceLoader["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.util.ServiceLoader.service:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.util.ServiceLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/ServiceLoader<TS;>;

  private static java.lang.Void lambda$0(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 642
            aload 0
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         1: .line 643
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.Class lambda$1(java.lang.Module, java.lang.String);
    descriptor: (Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 858
            aload 0
            aload 1
            invokestatic java.lang.Class.forName:(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
Signature: <S:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/Iterable<TS;>;
SourceFile: "ServiceLoader.java"
NestMembers:
  java.util.ServiceLoader$1  java.util.ServiceLoader$2  java.util.ServiceLoader$3  java.util.ServiceLoader$LayerLookupIterator  java.util.ServiceLoader$LazyClassPathLookupIterator  java.util.ServiceLoader$LazyClassPathLookupIterator$1  java.util.ServiceLoader$LazyClassPathLookupIterator$2  java.util.ServiceLoader$ModuleServicesLookupIterator  java.util.ServiceLoader$Provider  java.util.ServiceLoader$ProviderImpl  java.util.ServiceLoader$ProviderImpl$1  java.util.ServiceLoader$ProviderImpl$2  java.util.ServiceLoader$ProviderSpliterator
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  java.util.ServiceLoader$1
  java.util.ServiceLoader$2
  java.util.ServiceLoader$3
  private final LayerLookupIterator = java.util.ServiceLoader$LayerLookupIterator of java.util.ServiceLoader
  private final LazyClassPathLookupIterator = java.util.ServiceLoader$LazyClassPathLookupIterator of java.util.ServiceLoader
  private final ModuleServicesLookupIterator = java.util.ServiceLoader$ModuleServicesLookupIterator of java.util.ServiceLoader
  public abstract Provider = java.util.ServiceLoader$Provider of java.util.ServiceLoader
  private ProviderImpl = java.util.ServiceLoader$ProviderImpl of java.util.ServiceLoader
  private ProviderSpliterator = java.util.ServiceLoader$ProviderSpliterator of java.util.ServiceLoader
  public final ServiceProvider = jdk.internal.module.ServicesCatalog$ServiceProvider of jdk.internal.module.ServicesCatalog