public class lombok.core.SpiLoadUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: lombok.core.SpiLoadUtil
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // lombok.core.SpiLoadUtil this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            return
        end local 0 // lombok.core.SpiLoadUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Llombok/core/SpiLoadUtil;

  public static <T> java.util.List<T> readAllFromIterator(java.lang.Iterable<T>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Iterable findServices
         0: .line 62
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.List list
         1: .line 63
            aload 0 /* findServices */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 2 /* t */
        start local 2 // java.lang.Object t
         3: aload 1 /* list */
            aload 2 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Object t
      StackMap locals:
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 64
            aload 1 /* list */
            areturn
        end local 1 // java.util.List list
        end local 0 // java.lang.Iterable findServices
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  findServices  Ljava/lang/Iterable<TT;>;
            1    6     1          list  Ljava/util/List<TT;>;
            3    4     2             t  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Iterable<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
              Name  Flags
      findServices  

  public static <C> java.lang.Iterable<C> findServices(java.lang.Class<C>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class target
         0: .line 79
            aload 0 /* target */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            invokestatic lombok.core.SpiLoadUtil.findServices:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Iterable;
            areturn
        end local 0 // java.lang.Class target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Class<TC;>;
    Exceptions:
      throws java.io.IOException
    Signature: <C:Ljava/lang/Object;>(Ljava/lang/Class<TC;>;)Ljava/lang/Iterable<TC;>;
    MethodParameters:
        Name  Flags
      target  

  public static <C> java.lang.Iterable<C> findServices(java.lang.Class<C>, java.lang.ClassLoader);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.Class target
        start local 1 // java.lang.ClassLoader loader
         0: .line 93
            aload 1 /* loader */
            ifnonnull 1
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* loader */
         1: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* loader */
            new java.lang.StringBuilder
            dup
            ldc "META-INF/services/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* target */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 2 /* resources */
        start local 2 // java.util.Enumeration resources
         2: .line 95
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 3 /* entries */
        start local 3 // java.util.Set entries
         3: .line 96
            goto 6
         4: .line 97
      StackMap locals: java.util.Enumeration java.util.Set
      StackMap stack:
            aload 2 /* resources */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.URL
            astore 4 /* url */
        start local 4 // java.net.URL url
         5: .line 98
            aload 3 /* entries */
            aload 4 /* url */
            invokestatic lombok.core.SpiLoadUtil.readServicesFromUrl:(Ljava/util/Collection;Ljava/net/URL;)V
        end local 4 // java.net.URL url
         6: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* resources */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
         7: .line 101
            aload 3 /* entries */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* names */
        start local 4 // java.util.Iterator names
         8: .line 102
            aload 1 /* loader */
            astore 5 /* fLoader */
        start local 5 // java.lang.ClassLoader fLoader
         9: .line 103
            new lombok.core.SpiLoadUtil$1
            dup
            aload 4 /* names */
            aload 0 /* target */
            aload 5 /* fLoader */
            invokespecial lombok.core.SpiLoadUtil$1.<init>:(Ljava/util/Iterator;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
            areturn
        end local 5 // java.lang.ClassLoader fLoader
        end local 4 // java.util.Iterator names
        end local 3 // java.util.Set entries
        end local 2 // java.util.Enumeration resources
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0     target  Ljava/lang/Class<TC;>;
            0   10     1     loader  Ljava/lang/ClassLoader;
            2   10     2  resources  Ljava/util/Enumeration<Ljava/net/URL;>;
            3   10     3    entries  Ljava/util/Set<Ljava/lang/String;>;
            5    6     4        url  Ljava/net/URL;
            8   10     4      names  Ljava/util/Iterator<Ljava/lang/String;>;
            9   10     5    fLoader  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.io.IOException
    Signature: <C:Ljava/lang/Object;>(Ljava/lang/Class<TC;>;Ljava/lang/ClassLoader;)Ljava/lang/Iterable<TC;>;
    MethodParameters:
        Name  Flags
      target  final
      loader  

  private static void readServicesFromUrl(java.util.Collection<java.lang.String>, java.net.URL);
    descriptor: (Ljava/util/Collection;Ljava/net/URL;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // java.util.Collection list
        start local 1 // java.net.URL url
         0: .line 131
            aload 1 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 2 /* in */
        start local 2 // java.io.InputStream in
         1: .line 132
            aconst_null
            astore 3 /* r */
        start local 3 // java.io.BufferedReader r
         2: .line 134
            aload 2 /* in */
            ifnonnull 8
         3: .line 147
            aload 3 /* r */
            ifnull 4
            aload 3 /* r */
            invokevirtual java.io.BufferedReader.close:()V
         4: .line 148
      StackMap locals: java.io.InputStream java.io.BufferedReader
      StackMap stack:
            aload 2 /* in */
            ifnull 7
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
         5: .line 149
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: pop
         7: .line 134
      StackMap locals:
      StackMap stack:
            return
         8: .line 135
      StackMap locals:
      StackMap stack:
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 2 /* in */
            ldc "UTF-8"
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 3 /* r */
         9: .line 137
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 4 /* line */
        start local 4 // java.lang.String line
        10: .line 138
            aload 4 /* line */
            ifnonnull 11
            goto 23
        11: .line 139
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* line */
            bipush 35
            invokevirtual java.lang.String.indexOf:(I)I
            istore 5 /* idx */
        start local 5 // int idx
        12: .line 140
            iload 5 /* idx */
            iconst_m1
            if_icmpeq 13
            aload 4 /* line */
            iconst_0
            iload 5 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* line */
        13: .line 141
      StackMap locals: int
      StackMap stack:
            aload 4 /* line */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 4 /* line */
        14: .line 142
            aload 4 /* line */
            invokevirtual java.lang.String.length:()I
            ifne 15
            goto 9
        15: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            aload 4 /* line */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // int idx
        end local 4 // java.lang.String line
        16: .line 136
            goto 9
        17: .line 145
      StackMap locals: java.util.Collection java.net.URL java.io.InputStream java.io.BufferedReader
      StackMap stack: java.lang.Throwable
            astore 6
        18: .line 147
            aload 3 /* r */
            ifnull 19
            aload 3 /* r */
            invokevirtual java.io.BufferedReader.close:()V
        19: .line 148
      StackMap locals: java.util.Collection java.net.URL java.io.InputStream java.io.BufferedReader top top java.lang.Throwable
      StackMap stack:
            aload 2 /* in */
            ifnull 22
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        20: .line 149
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: pop
        22: .line 150
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        23: .line 147
      StackMap locals: java.util.Collection java.net.URL java.io.InputStream java.io.BufferedReader
      StackMap stack:
            aload 3 /* r */
            ifnull 24
            aload 3 /* r */
            invokevirtual java.io.BufferedReader.close:()V
        24: .line 148
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            ifnull 27
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        25: .line 149
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: pop
        27: .line 151
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.BufferedReader r
        end local 2 // java.io.InputStream in
        end local 1 // java.net.URL url
        end local 0 // java.util.Collection list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  list  Ljava/util/Collection<Ljava/lang/String;>;
            0   28     1   url  Ljava/net/URL;
            1   28     2    in  Ljava/io/InputStream;
            2   28     3     r  Ljava/io/BufferedReader;
           10   16     4  line  Ljava/lang/String;
           12   16     5   idx  I
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Throwable
           2     3      17  any
           8    17      17  any
          18    20      21  Class java.lang.Throwable
          23    25      26  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;Ljava/net/URL;)V
    MethodParameters:
      Name  Flags
      list  
      url   

  public static java.lang.Class<? extends java.lang.annotation.Annotation> findAnnotationClass(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // java.lang.Class c
        start local 1 // java.lang.Class base
         0: .line 160
            aload 0 /* c */
            ldc Ljava/lang/Object;
            if_acmpeq 1
            aload 0 /* c */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
            areturn
         2: .line 161
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* answer */
        start local 2 // java.lang.Class answer
         3: .line 163
            aload 1 /* base */
            aload 0 /* c */
            invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
            invokestatic lombok.core.SpiLoadUtil.findAnnotationHelper:(Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/Class;
            astore 2 /* answer */
         4: .line 164
            aload 2 /* answer */
            ifnull 5
            aload 2 /* answer */
            areturn
         5: .line 166
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* c */
            invokevirtual java.lang.Class.getGenericInterfaces:()[Ljava/lang/reflect/Type;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: java.lang.Class java.lang.Class java.lang.Class top int int java.lang.reflect.Type[]
      StackMap stack:
         6: aload 6
            iload 4
            aaload
            astore 3 /* iface */
        start local 3 // java.lang.reflect.Type iface
         7: .line 167
            aload 1 /* base */
            aload 3 /* iface */
            invokestatic lombok.core.SpiLoadUtil.findAnnotationHelper:(Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/Class;
            astore 2 /* answer */
         8: .line 168
            aload 2 /* answer */
            ifnull 9
            aload 2 /* answer */
            areturn
        end local 3 // java.lang.reflect.Type iface
         9: .line 166
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 6
        11: .line 171
            aload 0 /* c */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            aload 1 /* base */
            invokestatic lombok.core.SpiLoadUtil.findAnnotationClass:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* potential */
        start local 3 // java.lang.Class potential
        12: .line 172
            aload 3 /* potential */
            ifnull 13
            aload 3 /* potential */
            areturn
        13: .line 173
      StackMap locals: java.lang.Class java.lang.Class java.lang.Class java.lang.Class
      StackMap stack:
            aload 0 /* c */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 18
      StackMap locals: java.lang.Class java.lang.Class java.lang.Class java.lang.Class top int int java.lang.Class[]
      StackMap stack:
        14: aload 7
            iload 5
            aaload
            astore 4 /* iface */
        start local 4 // java.lang.Class iface
        15: .line 174
            aload 4 /* iface */
            aload 1 /* base */
            invokestatic lombok.core.SpiLoadUtil.findAnnotationClass:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* potential */
        16: .line 175
            aload 3 /* potential */
            ifnull 17
            aload 3 /* potential */
            areturn
        end local 4 // java.lang.Class iface
        17: .line 173
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        18: iload 5
            iload 6
            if_icmplt 14
        19: .line 178
            aconst_null
            areturn
        end local 3 // java.lang.Class potential
        end local 2 // java.lang.Class answer
        end local 1 // java.lang.Class base
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0          c  Ljava/lang/Class<*>;
            0   20     1       base  Ljava/lang/Class<*>;
            3   20     2     answer  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            7    9     3      iface  Ljava/lang/reflect/Type;
           12   20     3  potential  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
           15   17     4      iface  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    MethodParameters:
      Name  Flags
      c     
      base  

  private static java.lang.Class<? extends java.lang.annotation.Annotation> findAnnotationHelper(java.lang.Class<?>, java.lang.reflect.Type);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.Class base
        start local 1 // java.lang.reflect.Type iface
         0: .line 183
            aload 1 /* iface */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 8
         1: .line 184
            aload 1 /* iface */
            checkcast java.lang.reflect.ParameterizedType
            astore 2 /* p */
        start local 2 // java.lang.reflect.ParameterizedType p
         2: .line 185
            aload 0 /* base */
            aload 2 /* p */
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
            aconst_null
            areturn
         3: .line 186
      StackMap locals: java.lang.reflect.ParameterizedType
      StackMap stack:
            aload 2 /* p */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            iconst_0
            aaload
            astore 3 /* target */
        start local 3 // java.lang.reflect.Type target
         4: .line 187
            aload 3 /* target */
            instanceof java.lang.Class
            ifeq 7
         5: .line 188
            ldc Ljava/lang/annotation/Annotation;
            aload 3 /* target */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 7
         6: .line 189
            aload 3 /* target */
            checkcast java.lang.Class
            areturn
         7: .line 193
      StackMap locals: java.lang.reflect.Type
      StackMap stack:
            new java.lang.ClassCastException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not an annotation type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.reflect.Type target
        end local 2 // java.lang.reflect.ParameterizedType p
         8: .line 195
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.reflect.Type iface
        end local 0 // java.lang.Class base
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    base  Ljava/lang/Class<*>;
            0    9     1   iface  Ljava/lang/reflect/Type;
            2    8     2       p  Ljava/lang/reflect/ParameterizedType;
            4    8     3  target  Ljava/lang/reflect/Type;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Type;)Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    MethodParameters:
       Name  Flags
      base   
      iface  
}
SourceFile: "SpiLoadUtil.java"
NestMembers:
  lombok.core.SpiLoadUtil$1  lombok.core.SpiLoadUtil$1$1
InnerClasses:
  lombok.core.SpiLoadUtil$1