public final class java.lang.Class<T> implements java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lang.reflect.Type, java.lang.reflect.AnnotatedElement
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.lang.Class
  super_class: java.lang.Object
{
  private static final int ANNOTATION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final int ENUM;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private static final int SYNTHETIC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  private volatile transient java.lang.reflect.Constructor<T> cachedConstructor;
    descriptor: Ljava/lang/reflect/Constructor;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
    Signature: Ljava/lang/reflect/Constructor<TT;>;

  private volatile transient java.lang.Class<?> newInstanceCallerCache;
    descriptor: Ljava/lang/Class;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
    Signature: Ljava/lang/Class<*>;

  private transient java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

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

  private static java.security.ProtectionDomain allPermDomain;
    descriptor: Ljava/security/ProtectionDomain;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static volatile java.lang.Class$SecurityManagerHelper smHelper;
    descriptor: Ljava/lang/Class$SecurityManagerHelper;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static boolean useCaches;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private volatile transient java.lang.ref.SoftReference<java.lang.Class$ReflectionData<T>> reflectionData;
    descriptor: Ljava/lang/ref/SoftReference;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
    Signature: Ljava/lang/ref/SoftReference<Ljava/lang/Class$ReflectionData<TT;>;>;

  private volatile transient int classRedefinedCount;
    descriptor: I
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT

  private volatile transient sun.reflect.generics.repository.ClassRepository genericInfo;
    descriptor: Lsun/reflect/generics/repository/ClassRepository;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3206093459760846163

  private static final java.io.ObjectStreamField[] serialPersistentFields;
    descriptor: [Ljava/io/ObjectStreamField;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static sun.reflect.ReflectionFactory reflectionFactory;
    descriptor: Lsun/reflect/ReflectionFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean initted;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private volatile transient T[] enumConstants;
    descriptor: [Ljava/lang/Object;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
    Signature: [TT;

  private volatile transient java.util.Map<java.lang.String, T> enumConstantDirectory;
    descriptor: Ljava/util/Map;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
    Signature: Ljava/util/Map<Ljava/lang/String;TT;>;

  private transient java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.annotation.Annotation> annotations;
    descriptor: Ljava/util/Map;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    Signature: Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;

  private transient java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.annotation.Annotation> declaredAnnotations;
    descriptor: Ljava/util/Map;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    Signature: Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;

  private transient int lastAnnotationsRedefinedCount;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private volatile transient sun.reflect.annotation.AnnotationType annotationType;
    descriptor: Lsun/reflect/annotation/AnnotationType;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT

  transient java.lang.ClassValue$ClassValueMap classValueMap;
    descriptor: Ljava/lang/ClassValue$ClassValueMap;
    flags: (0x0080) ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 129
            invokestatic java.lang.Class.registerNatives:()V
         1: .line 2397
            iconst_1
            putstatic java.lang.Class.useCaches:Z
         2: .line 3000
            iconst_0
            anewarray java.io.ObjectStreamField
         3: .line 2999
            putstatic java.lang.Class.serialPersistentFields:[Ljava/io/ObjectStreamField;
         4: .line 3074
            iconst_0
            putstatic java.lang.Class.initted:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native void registerNatives();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private void <init>(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.ClassLoader loader
         0: .line 137
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2422
            aload 0 /* this */
            iconst_0
            putfield java.lang.Class.classRedefinedCount:I
         2: .line 3148
            aload 0 /* this */
            aconst_null
            putfield java.lang.Class.enumConstants:[Ljava/lang/Object;
         3: .line 3170
            aload 0 /* this */
            aconst_null
            putfield java.lang.Class.enumConstantDirectory:Ljava/util/Map;
         4: .line 3266
            aload 0 /* this */
            iconst_0
            putfield java.lang.Class.lastAnnotationsRedefinedCount:I
         5: .line 140
            aload 0 /* this */
            aload 1 /* loader */
            putfield java.lang.Class.classLoader:Ljava/lang/ClassLoader;
         6: .line 141
            return
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/lang/Class<TT;>;
            0    7     1  loader  Ljava/lang/ClassLoader;
    MethodParameters:
        Name  Flags
      loader  

  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.lang.Class this
         0: .line 155
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 1
            ldc "interface "
            goto 3
      StackMap locals: java.lang.Class
      StackMap stack: new 0 new 0
         1: aload 0 /* this */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 2
            ldc ""
            goto 3
      StackMap locals: java.lang.Class
      StackMap stack: new 0 new 0
         2: ldc "class "
      StackMap locals: java.lang.Class
      StackMap stack: new 0 new 0 java.lang.String
         3: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 156
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 155
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/lang/Class<TT;>;

  public static java.lang.Class<?> forName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String className
         0: .line 194
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 1 /* caller */
        start local 1 // java.lang.Class caller
         1: .line 195
            aload 0 /* className */
            iconst_1
            aload 1 /* caller */
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            aload 1 /* caller */
            invokestatic java.lang.Class.forName0:(Ljava/lang/String;ZLjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;
            areturn
        end local 1 // java.lang.Class caller
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  className  Ljava/lang/String;
            1    2     1     caller  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
           Name  Flags
      className  

  public static java.lang.Class<?> forName(java.lang.String, boolean, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.lang.String name
        start local 1 // boolean initialize
        start local 2 // java.lang.ClassLoader loader
         0: .line 264
            aconst_null
            astore 3 /* caller */
        start local 3 // java.lang.Class caller
         1: .line 265
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 4 /* sm */
        start local 4 // java.lang.SecurityManager sm
         2: .line 266
            aload 4 /* sm */
            ifnull 10
         3: .line 269
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 3 /* caller */
         4: .line 270
            aload 2 /* loader */
            ifnonnull 10
         5: .line 271
            aload 3 /* caller */
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 5 /* ccl */
        start local 5 // java.lang.ClassLoader ccl
         6: .line 272
            aload 5 /* ccl */
            ifnull 10
         7: .line 273
            aload 4 /* sm */
         8: .line 274
            getstatic sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
         9: .line 273
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 5 // java.lang.ClassLoader ccl
        10: .line 278
      StackMap locals: java.lang.Class java.lang.SecurityManager
      StackMap stack:
            aload 0 /* name */
            iload 1 /* initialize */
            aload 2 /* loader */
            aload 3 /* caller */
            invokestatic java.lang.Class.forName0:(Ljava/lang/String;ZLjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;
            areturn
        end local 4 // java.lang.SecurityManager sm
        end local 3 // java.lang.Class caller
        end local 2 // java.lang.ClassLoader loader
        end local 1 // boolean initialize
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        name  Ljava/lang/String;
            0   11     1  initialize  Z
            0   11     2      loader  Ljava/lang/ClassLoader;
            1   11     3      caller  Ljava/lang/Class<*>;
            2   11     4          sm  Ljava/lang/SecurityManager;
            6   10     5         ccl  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
            Name  Flags
      name        
      initialize  
      loader      

  private static native java.lang.Class<?> forName0(java.lang.String, boolean, java.lang.ClassLoader, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;ZLjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;ZLjava/lang/ClassLoader;Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      name        
      initialize  
      loader      
      caller      

  public T newInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.Class this
         0: .line 338
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 2
         1: .line 339
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_0
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         2: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Class.cachedConstructor:Ljava/lang/reflect/Constructor;
            ifnonnull 15
         3: .line 347
            aload 0 /* this */
            ldc Ljava/lang/Class;
            if_acmpne 7
         4: .line 348
            new java.lang.IllegalAccessException
            dup
         5: .line 349
            ldc "Can not call newInstance() on the Class for java.lang.Class"
         6: .line 348
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 353
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray java.lang.Class
            astore 1 /* empty */
        start local 1 // java.lang.Class[] empty
         8: .line 354
            aload 0 /* this */
            aload 1 /* empty */
            iconst_1
            invokevirtual java.lang.Class.getConstructor0:([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
            astore 2 /* c */
        start local 2 // java.lang.reflect.Constructor c
         9: .line 360
            new java.lang.Class$1
            dup
            aload 0 /* this */
            aload 2 /* c */
            invokespecial java.lang.Class$1.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Constructor;)V
        10: .line 359
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
        11: .line 366
            aload 0 /* this */
            aload 2 /* c */
            putfield java.lang.Class.cachedConstructor:Ljava/lang/reflect/Constructor;
        end local 2 // java.lang.reflect.Constructor c
        end local 1 // java.lang.Class[] empty
        12: .line 367
            goto 15
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        13: pop
        14: .line 368
            new java.lang.InstantiationException
            dup
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.InstantiationException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Class.cachedConstructor:Ljava/lang/reflect/Constructor;
            astore 1 /* tmpConstructor */
        start local 1 // java.lang.reflect.Constructor tmpConstructor
        16: .line 373
            aload 1 /* tmpConstructor */
            invokevirtual java.lang.reflect.Constructor.getModifiers:()I
            istore 2 /* modifiers */
        start local 2 // int modifiers
        17: .line 374
            aload 0 /* this */
            iload 2 /* modifiers */
            invokestatic sun.reflect.Reflection.quickCheckMemberAccess:(Ljava/lang/Class;I)Z
            ifne 22
        18: .line 375
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 3 /* caller */
        start local 3 // java.lang.Class caller
        19: .line 376
            aload 0 /* this */
            getfield java.lang.Class.newInstanceCallerCache:Ljava/lang/Class;
            aload 3 /* caller */
            if_acmpeq 22
        20: .line 377
            aload 3 /* caller */
            aload 0 /* this */
            aconst_null
            iload 2 /* modifiers */
            invokestatic sun.reflect.Reflection.ensureMemberAccess:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V
        21: .line 378
            aload 0 /* this */
            aload 3 /* caller */
            putfield java.lang.Class.newInstanceCallerCache:Ljava/lang/Class;
        end local 3 // java.lang.Class caller
        22: .line 383
      StackMap locals: java.lang.reflect.Constructor int
      StackMap stack:
            aload 1 /* tmpConstructor */
            aconst_null
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
        23: areturn
        24: .line 384
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
        25: .line 385
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
            aload 3 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            invokevirtual sun.misc.Unsafe.throwException:(Ljava/lang/Throwable;)V
        26: .line 387
            aconst_null
            areturn
        end local 3 // java.lang.reflect.InvocationTargetException e
        end local 2 // int modifiers
        end local 1 // java.lang.reflect.Constructor tmpConstructor
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0            this  Ljava/lang/Class<TT;>;
            8   12     1           empty  [Ljava/lang/Class;
            9   12     2               c  Ljava/lang/reflect/Constructor<TT;>;
           16   27     1  tmpConstructor  Ljava/lang/reflect/Constructor<TT;>;
           17   27     2       modifiers  I
           19   22     3          caller  Ljava/lang/Class<*>;
           25   27     3               e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           7    12      13  Class java.lang.NoSuchMethodException
          22    23      24  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws java.lang.InstantiationException, java.lang.IllegalAccessException
    Signature: ()TT;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public native boolean isInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      obj   

  public native boolean isAssignableFrom(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      cls   

  public native boolean isInterface();
    descriptor: ()Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native boolean isArray();
    descriptor: ()Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native boolean isPrimitive();
    descriptor: ()Z
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public boolean isAnnotation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 514
            aload 0 /* this */
            invokevirtual java.lang.Class.getModifiers:()I
            sipush 8192
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  public boolean isSynthetic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 525
            aload 0 /* this */
            invokevirtual java.lang.Class.getModifiers:()I
            sipush 4096
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 580
            aload 0 /* this */
            getfield java.lang.Class.name:Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 581
            aload 1 /* name */
            ifnonnull 3
         2: .line 582
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Class.getName0:()Ljava/lang/String;
            dup
            astore 1 /* name */
            putfield java.lang.Class.name:Ljava/lang/String;
         3: .line 583
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/Class<TT;>;
            1    4     1  name  Ljava/lang/String;

  private native java.lang.String getName0();
    descriptor: ()Ljava/lang/String;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  public java.lang.ClassLoader getClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Class this
         0: .line 618
            aload 0 /* this */
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            astore 1 /* cl */
        start local 1 // java.lang.ClassLoader cl
         1: .line 619
            aload 1 /* cl */
            ifnonnull 3
         2: .line 620
            aconst_null
            areturn
         3: .line 621
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         4: .line 622
            aload 2 /* sm */
            ifnull 6
         5: .line 623
            aload 1 /* cl */
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.lang.ClassLoader.checkClassLoaderPermission:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
         6: .line 625
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 1 /* cl */
            areturn
        end local 2 // java.lang.SecurityManager sm
        end local 1 // java.lang.ClassLoader cl
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/lang/Class<TT;>;
            1    7     1    cl  Ljava/lang/ClassLoader;
            4    7     2    sm  Ljava/lang/SecurityManager;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  java.lang.ClassLoader getClassLoader0();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 629
            aload 0 /* this */
            getfield java.lang.Class.classLoader:Ljava/lang/ClassLoader;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Class<TT;>;

  public java.lang.reflect.TypeVariable<java.lang.Class<T>>[] getTypeParameters();
    descriptor: ()[Ljava/lang/reflect/TypeVariable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 652
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericSignature:()Ljava/lang/String;
            ifnull 2
         1: .line 653
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericInfo:()Lsun/reflect/generics/repository/ClassRepository;
            invokevirtual sun.reflect.generics.repository.ClassRepository.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            areturn
         2: .line 655
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray java.lang.reflect.TypeVariable
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/Class<TT;>;
    Signature: ()[Ljava/lang/reflect/TypeVariable<Ljava/lang/Class<TT;>;>;

  public native java.lang.Class<? super T> getSuperclass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: ()Ljava/lang/Class<-TT;>;

  public java.lang.reflect.Type getGenericSuperclass();
    descriptor: ()Ljava/lang/reflect/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 703
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericSignature:()Ljava/lang/String;
            ifnull 4
         1: .line 707
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 3
         2: .line 708
            aconst_null
            areturn
         3: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericInfo:()Lsun/reflect/generics/repository/ClassRepository;
            invokevirtual sun.reflect.generics.repository.ClassRepository.getSuperclass:()Ljava/lang/reflect/Type;
            areturn
         4: .line 711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/Class<TT;>;

  public java.lang.Package getPackage();
    descriptor: ()Ljava/lang/Package;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 730
            aload 0 /* this */
            invokestatic java.lang.Package.getPackage:(Ljava/lang/Class;)Ljava/lang/Package;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Class<TT;>;

  public native java.lang.Class<?>[] getInterfaces();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: ()[Ljava/lang/Class<*>;

  public java.lang.reflect.Type[] getGenericInterfaces();
    descriptor: ()[Ljava/lang/reflect/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 826
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericSignature:()Ljava/lang/String;
            ifnull 2
         1: .line 827
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericInfo:()Lsun/reflect/generics/repository/ClassRepository;
            invokevirtual sun.reflect.generics.repository.ClassRepository.getSuperInterfaces:()[Ljava/lang/reflect/Type;
            areturn
         2: .line 829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/Class<TT;>;

  public native java.lang.Class<?> getComponentType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Signature: ()Ljava/lang/Class<*>;

  public native int getModifiers();
    descriptor: ()I
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  public native java.lang.Object[] getSigners();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  native void setSigners(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0100) ACC_NATIVE
    MethodParameters:
         Name  Flags
      signers  

  public java.lang.reflect.Method getEnclosingMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=14, args_size=1
        start local 0 // java.lang.Class this
         0: .line 910
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingMethodInfo:()Ljava/lang/Class$EnclosingMethodInfo;
            astore 1 /* enclosingInfo */
        start local 1 // java.lang.Class$EnclosingMethodInfo enclosingInfo
         1: .line 912
            aload 1 /* enclosingInfo */
            ifnonnull 3
         2: .line 913
            aconst_null
            areturn
         3: .line 915
      StackMap locals: java.lang.Class$EnclosingMethodInfo
      StackMap stack:
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.isMethod:()Z
            ifne 5
         4: .line 916
            aconst_null
            areturn
         5: .line 918
      StackMap locals:
      StackMap stack:
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.getDescriptor:()Ljava/lang/String;
         6: .line 919
            aload 0 /* this */
            invokevirtual java.lang.Class.getFactory:()Lsun/reflect/generics/factory/GenericsFactory;
         7: .line 918
            invokestatic sun.reflect.generics.repository.MethodRepository.make:(Ljava/lang/String;Lsun/reflect/generics/factory/GenericsFactory;)Lsun/reflect/generics/repository/MethodRepository;
            astore 2 /* typeInfo */
        start local 2 // sun.reflect.generics.repository.MethodRepository typeInfo
         8: .line 920
            aload 2 /* typeInfo */
            invokevirtual sun.reflect.generics.repository.MethodRepository.getReturnType:()Ljava/lang/reflect/Type;
            invokestatic java.lang.Class.toClass:(Ljava/lang/reflect/Type;)Ljava/lang/Class;
            astore 3 /* returnType */
        start local 3 // java.lang.Class returnType
         9: .line 921
            aload 2 /* typeInfo */
            invokevirtual sun.reflect.generics.repository.MethodRepository.getParameterTypes:()[Ljava/lang/reflect/Type;
            astore 4 /* parameterTypes */
        start local 4 // java.lang.reflect.Type[] parameterTypes
        10: .line 922
            aload 4 /* parameterTypes */
            arraylength
            anewarray java.lang.Class
            astore 5 /* parameterClasses */
        start local 5 // java.lang.Class[] parameterClasses
        11: .line 927
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        12: goto 15
        13: .line 928
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.MethodRepository java.lang.Class java.lang.reflect.Type[] java.lang.Class[] int
      StackMap stack:
            aload 5 /* parameterClasses */
            iload 6 /* i */
            aload 4 /* parameterTypes */
            iload 6 /* i */
            aaload
            invokestatic java.lang.Class.toClass:(Ljava/lang/reflect/Type;)Ljava/lang/Class;
            aastore
        14: .line 927
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 5 /* parameterClasses */
            arraylength
            if_icmplt 13
        end local 6 // int i
        16: .line 931
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.getEnclosingClass:()Ljava/lang/Class;
            astore 6 /* enclosingCandidate */
        start local 6 // java.lang.Class enclosingCandidate
        17: .line 937
            aload 6 /* enclosingCandidate */
            iconst_1
        18: .line 938
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
        19: .line 937
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
        20: .line 945
            aload 6 /* enclosingCandidate */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 37
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.MethodRepository java.lang.Class java.lang.reflect.Type[] java.lang.Class[] java.lang.Class top int int java.lang.reflect.Method[]
      StackMap stack:
        21: aload 10
            iload 8
            aaload
            astore 7 /* m */
        start local 7 // java.lang.reflect.Method m
        22: .line 946
            aload 7 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        23: .line 947
            aload 7 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* candidateParamClasses */
        start local 11 // java.lang.Class[] candidateParamClasses
        24: .line 948
            aload 11 /* candidateParamClasses */
            arraylength
            aload 5 /* parameterClasses */
            arraylength
            if_icmpne 36
        25: .line 949
            iconst_1
            istore 12 /* matches */
        start local 12 // boolean matches
        26: .line 950
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        27: goto 32
        28: .line 951
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.MethodRepository java.lang.Class java.lang.reflect.Type[] java.lang.Class[] java.lang.Class java.lang.reflect.Method int int java.lang.reflect.Method[] java.lang.Class[] int int
      StackMap stack:
            aload 11 /* candidateParamClasses */
            iload 13 /* i */
            aaload
            aload 5 /* parameterClasses */
            iload 13 /* i */
            aaload
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 31
        29: .line 952
            iconst_0
            istore 12 /* matches */
        30: .line 953
            goto 33
        31: .line 950
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 13 /* i */
            aload 11 /* candidateParamClasses */
            arraylength
            if_icmplt 28
        end local 13 // int i
        33: .line 957
      StackMap locals:
      StackMap stack:
            iload 12 /* matches */
            ifeq 36
        34: .line 958
            aload 7 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 3 /* returnType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 36
        35: .line 959
            aload 7 /* m */
            areturn
        end local 12 // boolean matches
        end local 11 // java.lang.Class[] candidateParamClasses
        end local 7 // java.lang.reflect.Method m
        36: .line 945
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.MethodRepository java.lang.Class java.lang.reflect.Type[] java.lang.Class[] java.lang.Class top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        37: iload 8
            iload 9
            if_icmplt 21
        38: .line 965
            new java.lang.InternalError
            dup
            ldc "Enclosing method not found"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.Class enclosingCandidate
        end local 5 // java.lang.Class[] parameterClasses
        end local 4 // java.lang.reflect.Type[] parameterTypes
        end local 3 // java.lang.Class returnType
        end local 2 // sun.reflect.generics.repository.MethodRepository typeInfo
        end local 1 // java.lang.Class$EnclosingMethodInfo enclosingInfo
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   39     0                   this  Ljava/lang/Class<TT;>;
            1   39     1          enclosingInfo  Ljava/lang/Class$EnclosingMethodInfo;
            8   39     2               typeInfo  Lsun/reflect/generics/repository/MethodRepository;
            9   39     3             returnType  Ljava/lang/Class<*>;
           10   39     4         parameterTypes  [Ljava/lang/reflect/Type;
           11   39     5       parameterClasses  [Ljava/lang/Class;
           12   16     6                      i  I
           17   39     6     enclosingCandidate  Ljava/lang/Class<*>;
           22   36     7                      m  Ljava/lang/reflect/Method;
           24   36    11  candidateParamClasses  [Ljava/lang/Class;
           26   36    12                matches  Z
           27   33    13                      i  I
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  private native java.lang.Object[] getEnclosingMethod0();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private java.lang.Class$EnclosingMethodInfo getEnclosingMethodInfo();
    descriptor: ()Ljava/lang/Class$EnclosingMethodInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 972
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingMethod0:()[Ljava/lang/Object;
            astore 1 /* enclosingInfo */
        start local 1 // java.lang.Object[] enclosingInfo
         1: .line 973
            aload 1 /* enclosingInfo */
            ifnonnull 3
         2: .line 974
            aconst_null
            areturn
         3: .line 976
      StackMap locals: java.lang.Object[]
      StackMap stack:
            new java.lang.Class$EnclosingMethodInfo
            dup
            aload 1 /* enclosingInfo */
            invokespecial java.lang.Class$EnclosingMethodInfo.<init>:([Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object[] enclosingInfo
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Ljava/lang/Class<TT;>;
            1    4     1  enclosingInfo  [Ljava/lang/Object;

  private static java.lang.Class<?> toClass(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Type o
         0: .line 1025
            aload 0 /* o */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 6
         1: .line 1026
            aload 0 /* o */
            checkcast java.lang.reflect.GenericArrayType
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            invokestatic java.lang.Class.toClass:(Ljava/lang/reflect/Type;)Ljava/lang/Class;
         2: .line 1027
            iconst_0
         3: .line 1026
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
         4: .line 1028
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
         5: .line 1026
            areturn
         6: .line 1029
      StackMap locals:
      StackMap stack:
            aload 0 /* o */
            checkcast java.lang.Class
            areturn
        end local 0 // java.lang.reflect.Type o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     o  Ljava/lang/reflect/Type;
    Signature: (Ljava/lang/reflect/Type;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      o     

  public java.lang.reflect.Constructor<?> getEnclosingConstructor();
    descriptor: ()Ljava/lang/reflect/Constructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1048
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingMethodInfo:()Ljava/lang/Class$EnclosingMethodInfo;
            astore 1 /* enclosingInfo */
        start local 1 // java.lang.Class$EnclosingMethodInfo enclosingInfo
         1: .line 1050
            aload 1 /* enclosingInfo */
            ifnonnull 3
         2: .line 1051
            aconst_null
            areturn
         3: .line 1053
      StackMap locals: java.lang.Class$EnclosingMethodInfo
      StackMap stack:
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.isConstructor:()Z
            ifne 5
         4: .line 1054
            aconst_null
            areturn
         5: .line 1056
      StackMap locals:
      StackMap stack:
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.getDescriptor:()Ljava/lang/String;
         6: .line 1057
            aload 0 /* this */
            invokevirtual java.lang.Class.getFactory:()Lsun/reflect/generics/factory/GenericsFactory;
         7: .line 1056
            invokestatic sun.reflect.generics.repository.ConstructorRepository.make:(Ljava/lang/String;Lsun/reflect/generics/factory/GenericsFactory;)Lsun/reflect/generics/repository/ConstructorRepository;
            astore 2 /* typeInfo */
        start local 2 // sun.reflect.generics.repository.ConstructorRepository typeInfo
         8: .line 1058
            aload 2 /* typeInfo */
            invokevirtual sun.reflect.generics.repository.ConstructorRepository.getParameterTypes:()[Ljava/lang/reflect/Type;
            astore 3 /* parameterTypes */
        start local 3 // java.lang.reflect.Type[] parameterTypes
         9: .line 1059
            aload 3 /* parameterTypes */
            arraylength
            anewarray java.lang.Class
            astore 4 /* parameterClasses */
        start local 4 // java.lang.Class[] parameterClasses
        10: .line 1064
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        11: goto 14
        12: .line 1065
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.ConstructorRepository java.lang.reflect.Type[] java.lang.Class[] int
      StackMap stack:
            aload 4 /* parameterClasses */
            iload 5 /* i */
            aload 3 /* parameterTypes */
            iload 5 /* i */
            aaload
            invokestatic java.lang.Class.toClass:(Ljava/lang/reflect/Type;)Ljava/lang/Class;
            aastore
        13: .line 1064
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            aload 4 /* parameterClasses */
            arraylength
            if_icmplt 12
        end local 5 // int i
        15: .line 1068
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.getEnclosingClass:()Ljava/lang/Class;
            astore 5 /* enclosingCandidate */
        start local 5 // java.lang.Class enclosingCandidate
        16: .line 1074
            aload 5 /* enclosingCandidate */
            iconst_1
        17: .line 1075
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
        18: .line 1074
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
        19: .line 1080
            aload 5 /* enclosingCandidate */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 34
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.ConstructorRepository java.lang.reflect.Type[] java.lang.Class[] java.lang.Class top int int java.lang.reflect.Constructor[]
      StackMap stack:
        20: aload 9
            iload 7
            aaload
            astore 6 /* c */
        start local 6 // java.lang.reflect.Constructor c
        21: .line 1081
            aload 6 /* c */
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            astore 10 /* candidateParamClasses */
        start local 10 // java.lang.Class[] candidateParamClasses
        22: .line 1082
            aload 10 /* candidateParamClasses */
            arraylength
            aload 4 /* parameterClasses */
            arraylength
            if_icmpne 33
        23: .line 1083
            iconst_1
            istore 11 /* matches */
        start local 11 // boolean matches
        24: .line 1084
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        25: goto 30
        26: .line 1085
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.ConstructorRepository java.lang.reflect.Type[] java.lang.Class[] java.lang.Class java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.lang.Class[] int int
      StackMap stack:
            aload 10 /* candidateParamClasses */
            iload 12 /* i */
            aaload
            aload 4 /* parameterClasses */
            iload 12 /* i */
            aaload
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 29
        27: .line 1086
            iconst_0
            istore 11 /* matches */
        28: .line 1087
            goto 31
        29: .line 1084
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 12 /* i */
            aload 10 /* candidateParamClasses */
            arraylength
            if_icmplt 26
        end local 12 // int i
        31: .line 1091
      StackMap locals:
      StackMap stack:
            iload 11 /* matches */
            ifeq 33
        32: .line 1092
            aload 6 /* c */
            areturn
        end local 11 // boolean matches
        end local 10 // java.lang.Class[] candidateParamClasses
        end local 6 // java.lang.reflect.Constructor c
        33: .line 1080
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo sun.reflect.generics.repository.ConstructorRepository java.lang.reflect.Type[] java.lang.Class[] java.lang.Class top int int java.lang.reflect.Constructor[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        34: iload 7
            iload 8
            if_icmplt 20
        35: .line 1096
            new java.lang.InternalError
            dup
            ldc "Enclosing constructor not found"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class enclosingCandidate
        end local 4 // java.lang.Class[] parameterClasses
        end local 3 // java.lang.reflect.Type[] parameterTypes
        end local 2 // sun.reflect.generics.repository.ConstructorRepository typeInfo
        end local 1 // java.lang.Class$EnclosingMethodInfo enclosingInfo
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   36     0                   this  Ljava/lang/Class<TT;>;
            1   36     1          enclosingInfo  Ljava/lang/Class$EnclosingMethodInfo;
            8   36     2               typeInfo  Lsun/reflect/generics/repository/ConstructorRepository;
            9   36     3         parameterTypes  [Ljava/lang/reflect/Type;
           10   36     4       parameterClasses  [Ljava/lang/Class;
           11   15     5                      i  I
           16   36     5     enclosingCandidate  Ljava/lang/Class<*>;
           21   33     6                      c  Ljava/lang/reflect/Constructor<*>;
           22   33    10  candidateParamClasses  [Ljava/lang/Class;
           24   33    11                matches  Z
           25   31    12                      i  I
    Signature: ()Ljava/lang/reflect/Constructor<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.Class<?> getDeclaringClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1114
            aload 0 /* this */
            invokevirtual java.lang.Class.getDeclaringClass0:()Ljava/lang/Class;
            astore 1 /* candidate */
        start local 1 // java.lang.Class candidate
         1: .line 1116
            aload 1 /* candidate */
            ifnull 5
         2: .line 1117
            aload 1 /* candidate */
         3: .line 1118
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            iconst_1
         4: .line 1117
            invokevirtual java.lang.Class.checkPackageAccess:(Ljava/lang/ClassLoader;Z)V
         5: .line 1119
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* candidate */
            areturn
        end local 1 // java.lang.Class candidate
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljava/lang/Class<TT;>;
            1    6     1  candidate  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  private native java.lang.Class<?> getDeclaringClass0();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: ()Ljava/lang/Class<*>;

  public java.lang.Class<?> getEnclosingClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1145
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingMethodInfo:()Ljava/lang/Class$EnclosingMethodInfo;
            astore 1 /* enclosingInfo */
        start local 1 // java.lang.Class$EnclosingMethodInfo enclosingInfo
         1: .line 1148
            aload 1 /* enclosingInfo */
            ifnonnull 4
         2: .line 1150
            aload 0 /* this */
            invokevirtual java.lang.Class.getDeclaringClass:()Ljava/lang/Class;
            astore 2 /* enclosingCandidate */
        start local 2 // java.lang.Class enclosingCandidate
         3: .line 1151
            goto 8
        end local 2 // java.lang.Class enclosingCandidate
         4: .line 1152
      StackMap locals: java.lang.Class$EnclosingMethodInfo
      StackMap stack:
            aload 1 /* enclosingInfo */
            invokevirtual java.lang.Class$EnclosingMethodInfo.getEnclosingClass:()Ljava/lang/Class;
            astore 3 /* enclosingClass */
        start local 3 // java.lang.Class enclosingClass
         5: .line 1154
            aload 3 /* enclosingClass */
            aload 0 /* this */
            if_acmpeq 6
            aload 3 /* enclosingClass */
            ifnonnull 7
         6: .line 1155
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo top java.lang.Class
      StackMap stack:
            new java.lang.InternalError
            dup
            ldc "Malformed enclosing method information"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1157
      StackMap locals:
      StackMap stack:
            aload 3 /* enclosingClass */
            astore 2 /* enclosingCandidate */
        end local 3 // java.lang.Class enclosingClass
        start local 2 // java.lang.Class enclosingCandidate
         8: .line 1160
      StackMap locals: java.lang.Class java.lang.Class$EnclosingMethodInfo java.lang.Class
      StackMap stack:
            aload 2 /* enclosingCandidate */
            ifnull 12
         9: .line 1161
            aload 2 /* enclosingCandidate */
        10: .line 1162
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            iconst_1
        11: .line 1161
            invokevirtual java.lang.Class.checkPackageAccess:(Ljava/lang/ClassLoader;Z)V
        12: .line 1163
      StackMap locals:
      StackMap stack:
            aload 2 /* enclosingCandidate */
            areturn
        end local 2 // java.lang.Class enclosingCandidate
        end local 1 // java.lang.Class$EnclosingMethodInfo enclosingInfo
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                this  Ljava/lang/Class<TT;>;
            1   13     1       enclosingInfo  Ljava/lang/Class$EnclosingMethodInfo;
            3    4     2  enclosingCandidate  Ljava/lang/Class<*>;
            8   13     2  enclosingCandidate  Ljava/lang/Class<*>;
            5    8     3      enclosingClass  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.String getSimpleName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1179
            aload 0 /* this */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 2
         1: .line 1180
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 1182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getSimpleBinaryName:()Ljava/lang/String;
            astore 1 /* simpleName */
        start local 1 // java.lang.String simpleName
         3: .line 1183
            aload 1 /* simpleName */
            ifnonnull 6
         4: .line 1184
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* simpleName */
         5: .line 1185
            aload 1 /* simpleName */
            aload 1 /* simpleName */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         6: .line 1201
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* simpleName */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         7: .line 1202
            iload 2 /* length */
            iconst_1
            if_icmplt 8
            aload 1 /* simpleName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 36
            if_icmpeq 9
         8: .line 1203
      StackMap locals: int
      StackMap stack:
            new java.lang.InternalError
            dup
            ldc "Malformed class name"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1204
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* index */
        start local 3 // int index
        10: .line 1205
            goto 12
        11: .line 1206
      StackMap locals: int
      StackMap stack:
            iinc 3 /* index */ 1
        12: .line 1205
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            iload 2 /* length */
            if_icmpge 13
            aload 1 /* simpleName */
            iload 3 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Class.isAsciiDigit:(C)Z
            ifne 11
        13: .line 1208
      StackMap locals:
      StackMap stack:
            aload 1 /* simpleName */
            iload 3 /* index */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 3 // int index
        end local 2 // int length
        end local 1 // java.lang.String simpleName
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Ljava/lang/Class<TT;>;
            3   14     1  simpleName  Ljava/lang/String;
            7   14     2      length  I
           10   14     3       index  I

  private static boolean isAsciiDigit(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 1216
            bipush 48
            iload 0 /* c */
            if_icmpgt 1
            iload 0 /* c */
            bipush 57
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public java.lang.String getCanonicalName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1230
            aload 0 /* this */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 5
         1: .line 1231
            aload 0 /* this */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            astore 1 /* canonicalName */
        start local 1 // java.lang.String canonicalName
         2: .line 1232
            aload 1 /* canonicalName */
            ifnull 4
         3: .line 1233
            new java.lang.StringBuilder
            dup
            aload 1 /* canonicalName */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         4: .line 1235
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String canonicalName
         5: .line 1237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.isLocalOrAnonymousClass:()Z
            ifeq 7
         6: .line 1238
            aconst_null
            areturn
         7: .line 1239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            astore 1 /* enclosingClass */
        start local 1 // java.lang.Class enclosingClass
         8: .line 1240
            aload 1 /* enclosingClass */
            ifnonnull 10
         9: .line 1241
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        10: .line 1243
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* enclosingClass */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            astore 2 /* enclosingName */
        start local 2 // java.lang.String enclosingName
        11: .line 1244
            aload 2 /* enclosingName */
            ifnonnull 13
        12: .line 1245
            aconst_null
            areturn
        13: .line 1246
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* enclosingName */
            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 0 /* this */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String enclosingName
        end local 1 // java.lang.Class enclosingClass
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Ljava/lang/Class<TT;>;
            2    5     1   canonicalName  Ljava/lang/String;
            8   14     1  enclosingClass  Ljava/lang/Class<*>;
           11   14     2   enclosingName  Ljava/lang/String;

  public boolean isAnonymousClass();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1258
            ldc ""
            aload 0 /* this */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Class<TT;>;

  public boolean isLocalClass();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1269
            aload 0 /* this */
            invokevirtual java.lang.Class.isLocalOrAnonymousClass:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual java.lang.Class.isAnonymousClass:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  public boolean isMemberClass();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1280
            aload 0 /* this */
            invokevirtual java.lang.Class.getSimpleBinaryName:()Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            invokevirtual java.lang.Class.isLocalOrAnonymousClass:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  private java.lang.String getSimpleBinaryName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1290
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            astore 1 /* enclosingClass */
        start local 1 // java.lang.Class enclosingClass
         1: .line 1291
            aload 1 /* enclosingClass */
            ifnonnull 3
         2: .line 1292
            aconst_null
            areturn
         3: .line 1295
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* enclosingClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
         4: areturn
         5: .line 1296
      StackMap locals:
      StackMap stack: java.lang.IndexOutOfBoundsException
            pop
         6: .line 1297
            new java.lang.InternalError
            dup
            ldc "Malformed class name"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class enclosingClass
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Ljava/lang/Class<TT;>;
            1    7     1  enclosingClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.IndexOutOfBoundsException

  private boolean isLocalOrAnonymousClass();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1309
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnclosingMethodInfo:()Ljava/lang/Class$EnclosingMethodInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  public java.lang.Class<?>[] getClasses();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1351
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_0
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1360
            new java.lang.Class$2
            dup
            aload 0 /* this */
            invokespecial java.lang.Class$2.<init>:(Ljava/lang/Class;)V
         2: .line 1359
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Class[]
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/Class<TT;>;
    Signature: ()[Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Field[] getFields();
    descriptor: ()[Ljava/lang/reflect/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1427
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1428
            aload 0 /* this */
            aconst_null
            invokevirtual java.lang.Class.privateGetPublicFields:(Ljava/util/Set;)[Ljava/lang/reflect/Field;
            invokestatic java.lang.Class.copyFields:([Ljava/lang/reflect/Field;)[Ljava/lang/reflect/Field;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Method[] getMethods();
    descriptor: ()[Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1479
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1480
            aload 0 /* this */
            invokevirtual java.lang.Class.privateGetPublicMethods:()[Ljava/lang/reflect/Method;
            invokestatic java.lang.Class.copyMethods:([Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Constructor<?>[] getConstructors();
    descriptor: ()[Ljava/lang/reflect/Constructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1529
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1530
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.Class.privateGetDeclaredConstructors:(Z)[Ljava/lang/reflect/Constructor;
            invokestatic java.lang.Class.copyConstructors:([Ljava/lang/reflect/Constructor;)[Ljava/lang/reflect/Constructor;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    Signature: ()[Ljava/lang/reflect/Constructor<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Field getField(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
         0: .line 1589
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1590
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual java.lang.Class.getField0:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         2: .line 1591
            aload 2 /* field */
            ifnonnull 4
         3: .line 1592
            new java.lang.NoSuchFieldException
            dup
            aload 1 /* name */
            invokespecial java.lang.NoSuchFieldException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1594
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 2 /* field */
            areturn
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/lang/Class<TT;>;
            0    5     1   name  Ljava/lang/String;
            2    5     2  field  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
      Name  Flags
      name  

  public java.lang.reflect.Method getMethod(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] parameterTypes
         0: .line 1675
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1676
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* parameterTypes */
            invokevirtual java.lang.Class.getMethod0:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
         2: .line 1677
            aload 3 /* method */
            ifnonnull 4
         3: .line 1678
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* parameterTypes */
            invokestatic java.lang.Class.argumentTypesToString:([Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1680
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 3 /* method */
            areturn
        end local 3 // java.lang.reflect.Method method
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljava/lang/Class<TT;>;
            0    5     1            name  Ljava/lang/String;
            0    5     2  parameterTypes  [Ljava/lang/Class;
            2    5     3          method  Ljava/lang/reflect/Method;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.SecurityException
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  

  public java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Class[] parameterTypes
         0: .line 1730
            aload 0 /* this */
            iconst_0
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1731
            aload 0 /* this */
            aload 1 /* parameterTypes */
            iconst_0
            invokevirtual java.lang.Class.getConstructor0:([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
            areturn
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Ljava/lang/Class<TT;>;
            0    2     1  parameterTypes  [Ljava/lang/Class;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.SecurityException
    Signature: ([Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<TT;>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
                Name  Flags
      parameterTypes  

  public java.lang.Class<?>[] getDeclaredClasses();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1773
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_0
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1774
            aload 0 /* this */
            invokevirtual java.lang.Class.getDeclaredClasses0:()[Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    Signature: ()[Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Field[] getDeclaredFields();
    descriptor: ()[Ljava/lang/reflect/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1818
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1819
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.Class.privateGetDeclaredFields:(Z)[Ljava/lang/reflect/Field;
            invokestatic java.lang.Class.copyFields:([Ljava/lang/reflect/Field;)[Ljava/lang/reflect/Field;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Method[] getDeclaredMethods();
    descriptor: ()[Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1867
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1868
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.Class.privateGetDeclaredMethods:(Z)[Ljava/lang/reflect/Method;
            invokestatic java.lang.Class.copyMethods:([Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Constructor<?>[] getDeclaredConstructors();
    descriptor: ()[Ljava/lang/reflect/Constructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 1913
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1914
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.Class.privateGetDeclaredConstructors:(Z)[Ljava/lang/reflect/Constructor;
            invokestatic java.lang.Class.copyConstructors:([Ljava/lang/reflect/Constructor;)[Ljava/lang/reflect/Constructor;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.SecurityException
    Signature: ()[Ljava/lang/reflect/Constructor<*>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()

  public java.lang.reflect.Field getDeclaredField(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
         0: .line 1958
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 1959
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.Class.privateGetDeclaredFields:(Z)[Ljava/lang/reflect/Field;
            aload 1 /* name */
            invokestatic java.lang.Class.searchFields:([Ljava/lang/reflect/Field;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         2: .line 1960
            aload 2 /* field */
            ifnonnull 4
         3: .line 1961
            new java.lang.NoSuchFieldException
            dup
            aload 1 /* name */
            invokespecial java.lang.NoSuchFieldException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1963
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 2 /* field */
            areturn
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/lang/Class<TT;>;
            0    5     1   name  Ljava/lang/String;
            2    5     2  field  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
      Name  Flags
      name  

  public java.lang.reflect.Method getDeclaredMethod(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] parameterTypes
         0: .line 2014
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 2015
            aload 0 /* this */
            iconst_0
            invokevirtual java.lang.Class.privateGetDeclaredMethods:(Z)[Ljava/lang/reflect/Method;
            aload 1 /* name */
            aload 2 /* parameterTypes */
            invokestatic java.lang.Class.searchMethods:([Ljava/lang/reflect/Method;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
         2: .line 2016
            aload 3 /* method */
            ifnonnull 4
         3: .line 2017
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* parameterTypes */
            invokestatic java.lang.Class.argumentTypesToString:([Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2019
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 3 /* method */
            areturn
        end local 3 // java.lang.reflect.Method method
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljava/lang/Class<TT;>;
            0    5     1            name  Ljava/lang/String;
            0    5     2  parameterTypes  [Ljava/lang/Class;
            2    5     3          method  Ljava/lang/reflect/Method;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.SecurityException
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  

  public java.lang.reflect.Constructor<T> getDeclaredConstructor(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Class[] parameterTypes
         0: .line 2065
            aload 0 /* this */
            iconst_1
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            iconst_1
            invokevirtual java.lang.Class.checkMemberAccess:(ILjava/lang/Class;Z)V
         1: .line 2066
            aload 0 /* this */
            aload 1 /* parameterTypes */
            iconst_1
            invokevirtual java.lang.Class.getConstructor0:([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
            areturn
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Ljava/lang/Class<TT;>;
            0    2     1  parameterTypes  [Ljava/lang/Class;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.SecurityException
    Signature: ([Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor<TT;>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
                Name  Flags
      parameterTypes  

  public java.io.InputStream getResourceAsStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
         0: .line 2105
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual java.lang.Class.resolveName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
         1: .line 2106
            aload 0 /* this */
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         2: .line 2107
            aload 2 /* cl */
            ifnonnull 4
         3: .line 2109
            aload 1 /* name */
            invokestatic java.lang.ClassLoader.getSystemResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            areturn
         4: .line 2111
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 2 /* cl */
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            areturn
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/Class<TT;>;
            0    5     1  name  Ljava/lang/String;
            2    5     2    cl  Ljava/lang/ClassLoader;
    MethodParameters:
      Name  Flags
      name  

  public java.net.URL getResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
         0: .line 2149
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual java.lang.Class.resolveName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
         1: .line 2150
            aload 0 /* this */
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         2: .line 2151
            aload 2 /* cl */
            ifnonnull 4
         3: .line 2153
            aload 1 /* name */
            invokestatic java.lang.ClassLoader.getSystemResource:(Ljava/lang/String;)Ljava/net/URL;
            areturn
         4: .line 2155
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 2 /* cl */
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            areturn
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/Class<TT;>;
            0    5     1  name  Ljava/lang/String;
            2    5     2    cl  Ljava/lang/ClassLoader;
    MethodParameters:
      Name  Flags
      name  

  public java.security.ProtectionDomain getProtectionDomain();
    descriptor: ()Ljava/security/ProtectionDomain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.Class this
         0: .line 2185
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         1: .line 2186
            aload 1 /* sm */
            ifnull 3
         2: .line 2187
            aload 1 /* sm */
            getstatic sun.security.util.SecurityConstants.GET_PD_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         3: .line 2189
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getProtectionDomain0:()Ljava/security/ProtectionDomain;
            astore 2 /* pd */
        start local 2 // java.security.ProtectionDomain pd
         4: .line 2190
            aload 2 /* pd */
            ifnonnull 12
         5: .line 2191
            getstatic java.lang.Class.allPermDomain:Ljava/security/ProtectionDomain;
            ifnonnull 11
         6: .line 2193
            new java.security.Permissions
            dup
            invokespecial java.security.Permissions.<init>:()V
         7: .line 2192
            astore 3 /* perms */
        start local 3 // java.security.Permissions perms
         8: .line 2194
            aload 3 /* perms */
            getstatic sun.security.util.SecurityConstants.ALL_PERMISSION:Ljava/security/AllPermission;
            invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
         9: .line 2196
            new java.security.ProtectionDomain
            dup
            aconst_null
            aload 3 /* perms */
            invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
        10: .line 2195
            putstatic java.lang.Class.allPermDomain:Ljava/security/ProtectionDomain;
        end local 3 // java.security.Permissions perms
        11: .line 2198
      StackMap locals: java.security.ProtectionDomain
      StackMap stack:
            getstatic java.lang.Class.allPermDomain:Ljava/security/ProtectionDomain;
            astore 2 /* pd */
        12: .line 2200
      StackMap locals:
      StackMap stack:
            aload 2 /* pd */
            areturn
        end local 2 // java.security.ProtectionDomain pd
        end local 1 // java.lang.SecurityManager sm
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Ljava/lang/Class<TT;>;
            1   13     1     sm  Ljava/lang/SecurityManager;
            4   13     2     pd  Ljava/security/ProtectionDomain;
            8   11     3  perms  Ljava/security/Permissions;

  private native java.security.ProtectionDomain getProtectionDomain0();
    descriptor: ()Ljava/security/ProtectionDomain;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  native void setProtectionDomain0(java.security.ProtectionDomain);
    descriptor: (Ljava/security/ProtectionDomain;)V
    flags: (0x0100) ACC_NATIVE
    MethodParameters:
      Name  Flags
      pd    

  static native java.lang.Class getPrimitiveClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      name  

  private static boolean isCheckMemberAccessOverridden(java.lang.SecurityManager);
    descriptor: (Ljava/lang/SecurityManager;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.SecurityManager sm
         0: .line 2245
            aload 0 /* sm */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/lang/SecurityManager;
            if_acmpne 1
            iconst_0
            ireturn
         1: .line 2247
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Class.smHelper:Ljava/lang/Class$SecurityManagerHelper;
            astore 1 /* helper */
        start local 1 // java.lang.Class$SecurityManagerHelper helper
         2: .line 2248
            aload 1 /* helper */
            ifnull 3
            aload 1 /* helper */
            getfield java.lang.Class$SecurityManagerHelper.sm:Ljava/lang/SecurityManager;
            aload 0 /* sm */
            if_acmpeq 5
         3: .line 2249
      StackMap locals: java.lang.Class$SecurityManagerHelper
      StackMap stack:
            new java.lang.Class$SecurityManagerHelper
            dup
            aload 0 /* sm */
            invokespecial java.lang.Class$SecurityManagerHelper.<init>:(Ljava/lang/SecurityManager;)V
            astore 1 /* helper */
         4: .line 2250
            aload 1 /* helper */
            putstatic java.lang.Class.smHelper:Ljava/lang/Class$SecurityManagerHelper;
         5: .line 2252
      StackMap locals:
      StackMap stack:
            aload 1 /* helper */
            getfield java.lang.Class$SecurityManagerHelper.overrideCheckMemberAccess:Z
            ireturn
        end local 1 // java.lang.Class$SecurityManagerHelper helper
        end local 0 // java.lang.SecurityManager sm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0      sm  Ljava/lang/SecurityManager;
            2    6     1  helper  Ljava/lang/Class$SecurityManagerHelper;
    MethodParameters:
      Name  Flags
      sm    

  private static native java.lang.reflect.Method getCheckMemberAccessMethod(java.lang.Class<? extends java.lang.SecurityManager>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.lang.NoSuchMethodError
    Signature: (Ljava/lang/Class<+Ljava/lang/SecurityManager;>;)Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      c     

  private void checkMemberAccess(int, java.lang.Class<?>, );
    descriptor: (ILjava/lang/Class;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // java.lang.Class this
        start local 1 // int which
        start local 2 // java.lang.Class caller
        start local 3 // boolean checkProxyInterfaces
         0: .line 2281
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 4 /* s */
        start local 4 // java.lang.SecurityManager s
         1: .line 2282
            aload 4 /* s */
            ifnull 11
         2: .line 2283
            aload 2 /* caller */
            invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
            astore 5 /* ccl */
        start local 5 // java.lang.ClassLoader ccl
         3: .line 2284
            aload 0 /* this */
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            astore 6 /* cl */
        start local 6 // java.lang.ClassLoader cl
         4: .line 2285
            aload 4 /* s */
            invokestatic java.lang.Class.isCheckMemberAccessOverridden:(Ljava/lang/SecurityManager;)Z
            ifne 9
         5: .line 2287
            iload 1 /* which */
            ifeq 10
         6: .line 2288
            aload 5 /* ccl */
            aload 6 /* cl */
            if_acmpeq 10
         7: .line 2289
            aload 4 /* s */
            getstatic sun.security.util.SecurityConstants.CHECK_MEMBER_ACCESS_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         8: .line 2292
            goto 10
         9: .line 2295
      StackMap locals: java.lang.SecurityManager java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack:
            aload 4 /* s */
            aload 0 /* this */
            iload 1 /* which */
            invokevirtual java.lang.SecurityManager.checkMemberAccess:(Ljava/lang/Class;I)V
        10: .line 2297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* ccl */
            iload 3 /* checkProxyInterfaces */
            invokevirtual java.lang.Class.checkPackageAccess:(Ljava/lang/ClassLoader;Z)V
        end local 6 // java.lang.ClassLoader cl
        end local 5 // java.lang.ClassLoader ccl
        11: .line 2299
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.SecurityManager s
        end local 3 // boolean checkProxyInterfaces
        end local 2 // java.lang.Class caller
        end local 1 // int which
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Ljava/lang/Class<TT;>;
            0   12     1                 which  I
            0   12     2                caller  Ljava/lang/Class<*>;
            0   12     3  checkProxyInterfaces  Z
            1   12     4                     s  Ljava/lang/SecurityManager;
            3   11     5                   ccl  Ljava/lang/ClassLoader;
            4   11     6                    cl  Ljava/lang/ClassLoader;
    Signature: (ILjava/lang/Class<*>;Z)V
    MethodParameters:
                      Name  Flags
      which                 
      caller                
      checkProxyInterfaces  

  private void checkPackageAccess(java.lang.ClassLoader, boolean);
    descriptor: (Ljava/lang/ClassLoader;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // java.lang.ClassLoader ccl
        start local 2 // boolean checkProxyInterfaces
         0: .line 2307
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* s */
        start local 3 // java.lang.SecurityManager s
         1: .line 2308
            aload 3 /* s */
            ifnull 12
         2: .line 2309
            aload 0 /* this */
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            astore 4 /* cl */
        start local 4 // java.lang.ClassLoader cl
         3: .line 2310
            aload 1 /* ccl */
            aload 4 /* cl */
            invokestatic sun.reflect.misc.ReflectUtil.needsPackageAccessCheck:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
            ifeq 10
         4: .line 2311
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         5: .line 2312
            aload 5 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 6 /* i */
        start local 6 // int i
         6: .line 2313
            iload 6 /* i */
            iconst_m1
            if_icmpeq 10
         7: .line 2315
            aload 5 /* name */
            iconst_0
            iload 6 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* pkg */
        start local 7 // java.lang.String pkg
         8: .line 2316
            aload 0 /* this */
            invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
            ifeq 9
            aload 0 /* this */
            invokestatic sun.reflect.misc.ReflectUtil.isNonPublicProxyClass:(Ljava/lang/Class;)Z
            ifeq 10
         9: .line 2317
      StackMap locals: java.lang.Class java.lang.ClassLoader int java.lang.SecurityManager java.lang.ClassLoader java.lang.String int java.lang.String
      StackMap stack:
            aload 3 /* s */
            aload 7 /* pkg */
            invokevirtual java.lang.SecurityManager.checkPackageAccess:(Ljava/lang/String;)V
        end local 7 // java.lang.String pkg
        end local 6 // int i
        end local 5 // java.lang.String name
        10: .line 2322
      StackMap locals:
      StackMap stack:
            iload 2 /* checkProxyInterfaces */
            ifeq 12
            aload 0 /* this */
            invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
            ifeq 12
        11: .line 2323
            aload 1 /* ccl */
            aload 0 /* this */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            invokestatic sun.reflect.misc.ReflectUtil.checkProxyPackageAccess:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)V
        end local 4 // java.lang.ClassLoader cl
        12: .line 2326
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.SecurityManager s
        end local 2 // boolean checkProxyInterfaces
        end local 1 // java.lang.ClassLoader ccl
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   13     0                  this  Ljava/lang/Class<TT;>;
            0   13     1                   ccl  Ljava/lang/ClassLoader;
            0   13     2  checkProxyInterfaces  Z
            1   13     3                     s  Ljava/lang/SecurityManager;
            3   12     4                    cl  Ljava/lang/ClassLoader;
            5   10     5                  name  Ljava/lang/String;
            6   10     6                     i  I
            8   10     7                   pkg  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      ccl                   final
      checkProxyInterfaces  

  private java.lang.String resolveName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
         0: .line 2333
            aload 1 /* name */
            ifnonnull 2
         1: .line 2334
            aload 1 /* name */
            areturn
         2: .line 2336
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 14
         3: .line 2337
            aload 0 /* this */
            astore 2 /* c */
        start local 2 // java.lang.Class c
         4: .line 2338
            goto 6
         5: .line 2339
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* c */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 2 /* c */
         6: .line 2338
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 5
         7: .line 2341
            aload 2 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 3 /* baseName */
        start local 3 // java.lang.String baseName
         8: .line 2342
            aload 3 /* baseName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* index */
        start local 4 // int index
         9: .line 2343
            iload 4 /* index */
            iconst_m1
            if_icmpeq 15
        10: .line 2344
            new java.lang.StringBuilder
            dup
            aload 3 /* baseName */
            iconst_0
            iload 4 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 2345
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 2344
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        end local 4 // int index
        end local 3 // java.lang.String baseName
        end local 2 // java.lang.Class c
        13: .line 2347
            goto 15
        14: .line 2348
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        15: .line 2350
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Ljava/lang/Class<TT;>;
            0   16     1      name  Ljava/lang/String;
            4   13     2         c  Ljava/lang/Class<*>;
            8   13     3  baseName  Ljava/lang/String;
            9   13     4     index  I
    MethodParameters:
      Name  Flags
      name  

  private java.lang.Class$ReflectionData<T> reflectionData();
    descriptor: ()Ljava/lang/Class$ReflectionData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class this
         0: .line 2426
            aload 0 /* this */
            getfield java.lang.Class.reflectionData:Ljava/lang/ref/SoftReference;
            astore 1 /* reflectionData */
        start local 1 // java.lang.ref.SoftReference reflectionData
         1: .line 2427
            aload 0 /* this */
            getfield java.lang.Class.classRedefinedCount:I
            istore 2 /* classRedefinedCount */
        start local 2 // int classRedefinedCount
         2: .line 2429
            getstatic java.lang.Class.useCaches:Z
            ifeq 8
         3: .line 2430
            aload 1 /* reflectionData */
            ifnull 8
         4: .line 2431
            aload 1 /* reflectionData */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.lang.Class$ReflectionData
            dup
            astore 3 /* rd */
        start local 3 // java.lang.Class$ReflectionData rd
         5: ifnull 8
         6: .line 2432
            aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.redefinedCount:I
            iload 2 /* classRedefinedCount */
            if_icmpne 8
         7: .line 2433
            aload 3 /* rd */
            areturn
        end local 3 // java.lang.Class$ReflectionData rd
         8: .line 2437
      StackMap locals: java.lang.ref.SoftReference int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reflectionData */
            iload 2 /* classRedefinedCount */
            invokevirtual java.lang.Class.newReflectionData:(Ljava/lang/ref/SoftReference;I)Ljava/lang/Class$ReflectionData;
            areturn
        end local 2 // int classRedefinedCount
        end local 1 // java.lang.ref.SoftReference reflectionData
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Ljava/lang/Class<TT;>;
            1    9     1       reflectionData  Ljava/lang/ref/SoftReference<Ljava/lang/Class$ReflectionData<TT;>;>;
            2    9     2  classRedefinedCount  I
            5    8     3                   rd  Ljava/lang/Class$ReflectionData<TT;>;
    Signature: ()Ljava/lang/Class$ReflectionData<TT;>;

  private java.lang.Class$ReflectionData<T> newReflectionData(java.lang.ref.SoftReference<java.lang.Class$ReflectionData<T>>, int);
    descriptor: (Ljava/lang/ref/SoftReference;I)Ljava/lang/Class$ReflectionData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // java.lang.ref.SoftReference oldReflectionData
        start local 2 // int classRedefinedCount
         0: .line 2442
            getstatic java.lang.Class.useCaches:Z
            ifne 1
            aconst_null
            areturn
         1: .line 2445
      StackMap locals:
      StackMap stack:
            new java.lang.Class$ReflectionData
            dup
            iload 2 /* classRedefinedCount */
            invokespecial java.lang.Class$ReflectionData.<init>:(I)V
            astore 3 /* rd */
        start local 3 // java.lang.Class$ReflectionData rd
         2: .line 2447
            aload 0 /* this */
            aload 1 /* oldReflectionData */
            new java.lang.ref.SoftReference
            dup
            aload 3 /* rd */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            invokestatic java.lang.Class$Atomic.casReflectionData:(Ljava/lang/Class;Ljava/lang/ref/SoftReference;Ljava/lang/ref/SoftReference;)Z
            ifeq 4
         3: .line 2448
            aload 3 /* rd */
            areturn
         4: .line 2451
      StackMap locals: java.lang.Class$ReflectionData
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Class.reflectionData:Ljava/lang/ref/SoftReference;
            astore 1 /* oldReflectionData */
         5: .line 2452
            aload 0 /* this */
            getfield java.lang.Class.classRedefinedCount:I
            istore 2 /* classRedefinedCount */
         6: .line 2453
            aload 1 /* oldReflectionData */
            ifnull 1
         7: .line 2454
            aload 1 /* oldReflectionData */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.lang.Class$ReflectionData
            dup
            astore 3 /* rd */
            ifnull 1
         8: .line 2455
            aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.redefinedCount:I
            iload 2 /* classRedefinedCount */
            if_icmpne 1
         9: .line 2456
            aload 3 /* rd */
            areturn
        end local 3 // java.lang.Class$ReflectionData rd
        end local 2 // int classRedefinedCount
        end local 1 // java.lang.ref.SoftReference oldReflectionData
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Ljava/lang/Class<TT;>;
            0   10     1    oldReflectionData  Ljava/lang/ref/SoftReference<Ljava/lang/Class$ReflectionData<TT;>;>;
            0   10     2  classRedefinedCount  I
            2   10     3                   rd  Ljava/lang/Class$ReflectionData<TT;>;
    Signature: (Ljava/lang/ref/SoftReference<Ljava/lang/Class$ReflectionData<TT;>;>;I)Ljava/lang/Class$ReflectionData<TT;>;
    MethodParameters:
                     Name  Flags
      oldReflectionData    
      classRedefinedCount  

  private native java.lang.String getGenericSignature();
    descriptor: ()Ljava/lang/String;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private sun.reflect.generics.factory.GenericsFactory getFactory();
    descriptor: ()Lsun/reflect/generics/factory/GenericsFactory;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 2470
            aload 0 /* this */
            aload 0 /* this */
            invokestatic sun.reflect.generics.scope.ClassScope.make:(Ljava/lang/Class;)Lsun/reflect/generics/scope/ClassScope;
            invokestatic sun.reflect.generics.factory.CoreReflectionFactory.make:(Ljava/lang/reflect/GenericDeclaration;Lsun/reflect/generics/scope/Scope;)Lsun/reflect/generics/factory/CoreReflectionFactory;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Class<TT;>;

  private sun.reflect.generics.repository.ClassRepository getGenericInfo();
    descriptor: ()Lsun/reflect/generics/repository/ClassRepository;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 2475
            aload 0 /* this */
            getfield java.lang.Class.genericInfo:Lsun/reflect/generics/repository/ClassRepository;
            astore 1 /* genericInfo */
        start local 1 // sun.reflect.generics.repository.ClassRepository genericInfo
         1: .line 2477
            aload 1 /* genericInfo */
            ifnonnull 6
         2: .line 2479
            aload 0 /* this */
            invokevirtual java.lang.Class.getGenericSignature:()Ljava/lang/String;
         3: .line 2480
            aload 0 /* this */
            invokevirtual java.lang.Class.getFactory:()Lsun/reflect/generics/factory/GenericsFactory;
         4: .line 2479
            invokestatic sun.reflect.generics.repository.ClassRepository.make:(Ljava/lang/String;Lsun/reflect/generics/factory/GenericsFactory;)Lsun/reflect/generics/repository/ClassRepository;
            astore 1 /* genericInfo */
         5: .line 2481
            aload 0 /* this */
            aload 1 /* genericInfo */
            putfield java.lang.Class.genericInfo:Lsun/reflect/generics/repository/ClassRepository;
         6: .line 2483
      StackMap locals: sun.reflect.generics.repository.ClassRepository
      StackMap stack:
            aload 1 /* genericInfo */
            areturn
        end local 1 // sun.reflect.generics.repository.ClassRepository genericInfo
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljava/lang/Class<TT;>;
            1    7     1  genericInfo  Lsun/reflect/generics/repository/ClassRepository;

  native byte[] getRawAnnotations();
    descriptor: ()[B
    flags: (0x0100) ACC_NATIVE

  native sun.reflect.ConstantPool getConstantPool();
    descriptor: ()Lsun/reflect/ConstantPool;
    flags: (0x0100) ACC_NATIVE

  private java.lang.reflect.Field[] privateGetDeclaredFields(boolean);
    descriptor: (Z)[Ljava/lang/reflect/Field;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // boolean publicOnly
         0: .line 2501
            invokestatic java.lang.Class.checkInitted:()V
         1: .line 2503
            aload 0 /* this */
            invokevirtual java.lang.Class.reflectionData:()Ljava/lang/Class$ReflectionData;
            astore 3 /* rd */
        start local 3 // java.lang.Class$ReflectionData rd
         2: .line 2504
            aload 3 /* rd */
            ifnull 7
         3: .line 2505
            iload 1 /* publicOnly */
            ifeq 4
            aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.declaredPublicFields:[Ljava/lang/reflect/Field;
            goto 5
      StackMap locals: java.lang.Class int top java.lang.Class$ReflectionData
      StackMap stack:
         4: aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.declaredFields:[Ljava/lang/reflect/Field;
      StackMap locals:
      StackMap stack: java.lang.reflect.Field[]
         5: astore 2 /* res */
        start local 2 // java.lang.reflect.Field[] res
         6: .line 2506
            aload 2 /* res */
            ifnull 7
            aload 2 /* res */
            areturn
        end local 2 // java.lang.reflect.Field[] res
         7: .line 2509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* publicOnly */
            invokevirtual java.lang.Class.getDeclaredFields0:(Z)[Ljava/lang/reflect/Field;
            invokestatic sun.reflect.Reflection.filterFields:(Ljava/lang/Class;[Ljava/lang/reflect/Field;)[Ljava/lang/reflect/Field;
            astore 2 /* res */
        start local 2 // java.lang.reflect.Field[] res
         8: .line 2510
            aload 3 /* rd */
            ifnull 13
         9: .line 2511
            iload 1 /* publicOnly */
            ifeq 12
        10: .line 2512
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.declaredPublicFields:[Ljava/lang/reflect/Field;
        11: .line 2513
            goto 13
        12: .line 2514
      StackMap locals: java.lang.Class int java.lang.reflect.Field[] java.lang.Class$ReflectionData
      StackMap stack:
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.declaredFields:[Ljava/lang/reflect/Field;
        13: .line 2517
      StackMap locals:
      StackMap stack:
            aload 2 /* res */
            areturn
        end local 3 // java.lang.Class$ReflectionData rd
        end local 2 // java.lang.reflect.Field[] res
        end local 1 // boolean publicOnly
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Ljava/lang/Class<TT;>;
            0   14     1  publicOnly  Z
            6    7     2         res  [Ljava/lang/reflect/Field;
            8   14     2         res  [Ljava/lang/reflect/Field;
            2   14     3          rd  Ljava/lang/Class$ReflectionData<TT;>;
    MethodParameters:
            Name  Flags
      publicOnly  

  private java.lang.reflect.Field[] privateGetPublicFields(java.util.Set<java.lang.Class<?>>);
    descriptor: (Ljava/util/Set;)[Ljava/lang/reflect/Field;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.util.Set traversedInterfaces
         0: .line 2524
            invokestatic java.lang.Class.checkInitted:()V
         1: .line 2526
            aload 0 /* this */
            invokevirtual java.lang.Class.reflectionData:()Ljava/lang/Class$ReflectionData;
            astore 3 /* rd */
        start local 3 // java.lang.Class$ReflectionData rd
         2: .line 2527
            aload 3 /* rd */
            ifnull 5
         3: .line 2528
            aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.publicFields:[Ljava/lang/reflect/Field;
            astore 2 /* res */
        start local 2 // java.lang.reflect.Field[] res
         4: .line 2529
            aload 2 /* res */
            ifnull 5
            aload 2 /* res */
            areturn
        end local 2 // java.lang.reflect.Field[] res
         5: .line 2534
      StackMap locals: java.lang.Class java.util.Set top java.lang.Class$ReflectionData
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* fields */
        start local 4 // java.util.List fields
         6: .line 2535
            aload 1 /* traversedInterfaces */
            ifnonnull 8
         7: .line 2536
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* traversedInterfaces */
         8: .line 2540
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.Class.privateGetDeclaredFields:(Z)[Ljava/lang/reflect/Field;
            astore 5 /* tmp */
        start local 5 // java.lang.reflect.Field[] tmp
         9: .line 2541
            aload 4 /* fields */
            aload 5 /* tmp */
            invokestatic java.lang.Class.addAll:(Ljava/util/Collection;[Ljava/lang/reflect/Field;)V
        10: .line 2544
            aload 0 /* this */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 16
      StackMap locals: java.lang.Class java.util.Set top java.lang.Class$ReflectionData java.util.List java.lang.reflect.Field[] top int int java.lang.Class[]
      StackMap stack:
        11: aload 9
            iload 7
            aaload
            astore 6 /* c */
        start local 6 // java.lang.Class c
        12: .line 2545
            aload 1 /* traversedInterfaces */
            aload 6 /* c */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 15
        13: .line 2546
            aload 1 /* traversedInterfaces */
            aload 6 /* c */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 2547
            aload 4 /* fields */
            aload 6 /* c */
            aload 1 /* traversedInterfaces */
            invokevirtual java.lang.Class.privateGetPublicFields:(Ljava/util/Set;)[Ljava/lang/reflect/Field;
            invokestatic java.lang.Class.addAll:(Ljava/util/Collection;[Ljava/lang/reflect/Field;)V
        end local 6 // java.lang.Class c
        15: .line 2544
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        16: iload 7
            iload 8
            if_icmplt 11
        17: .line 2552
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 21
        18: .line 2553
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 6 /* c */
        start local 6 // java.lang.Class c
        19: .line 2554
            aload 6 /* c */
            ifnull 21
        20: .line 2555
            aload 4 /* fields */
            aload 6 /* c */
            aload 1 /* traversedInterfaces */
            invokevirtual java.lang.Class.privateGetPublicFields:(Ljava/util/Set;)[Ljava/lang/reflect/Field;
            invokestatic java.lang.Class.addAll:(Ljava/util/Collection;[Ljava/lang/reflect/Field;)V
        end local 6 // java.lang.Class c
        21: .line 2559
      StackMap locals: java.lang.Class java.util.Set top java.lang.Class$ReflectionData java.util.List java.lang.reflect.Field[]
      StackMap stack:
            aload 4 /* fields */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.reflect.Field
            astore 2 /* res */
        start local 2 // java.lang.reflect.Field[] res
        22: .line 2560
            aload 4 /* fields */
            aload 2 /* res */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        23: .line 2561
            aload 3 /* rd */
            ifnull 25
        24: .line 2562
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.publicFields:[Ljava/lang/reflect/Field;
        25: .line 2564
      StackMap locals: java.lang.Class java.util.Set java.lang.reflect.Field[] java.lang.Class$ReflectionData java.util.List java.lang.reflect.Field[]
      StackMap stack:
            aload 2 /* res */
            areturn
        end local 5 // java.lang.reflect.Field[] tmp
        end local 4 // java.util.List fields
        end local 3 // java.lang.Class$ReflectionData rd
        end local 2 // java.lang.reflect.Field[] res
        end local 1 // java.util.Set traversedInterfaces
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   26     0                 this  Ljava/lang/Class<TT;>;
            0   26     1  traversedInterfaces  Ljava/util/Set<Ljava/lang/Class<*>;>;
            4    5     2                  res  [Ljava/lang/reflect/Field;
           22   26     2                  res  [Ljava/lang/reflect/Field;
            2   26     3                   rd  Ljava/lang/Class$ReflectionData<TT;>;
            6   26     4               fields  Ljava/util/List<Ljava/lang/reflect/Field;>;
            9   26     5                  tmp  [Ljava/lang/reflect/Field;
           12   15     6                    c  Ljava/lang/Class<*>;
           19   21     6                    c  Ljava/lang/Class<*>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;)[Ljava/lang/reflect/Field;
    MethodParameters:
                     Name  Flags
      traversedInterfaces  

  private static void addAll(java.util.Collection<java.lang.reflect.Field>, java.lang.reflect.Field[]);
    descriptor: (Ljava/util/Collection;[Ljava/lang/reflect/Field;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.Collection c
        start local 1 // java.lang.reflect.Field[] o
         0: .line 2568
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 2569
      StackMap locals: int
      StackMap stack:
            aload 0 /* c */
            aload 1 /* o */
            iload 2 /* i */
            aaload
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         3: .line 2568
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 1 /* o */
            arraylength
            if_icmplt 2
        end local 2 // int i
         5: .line 2571
            return
        end local 1 // java.lang.reflect.Field[] o
        end local 0 // java.util.Collection c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     c  Ljava/util/Collection<Ljava/lang/reflect/Field;>;
            0    6     1     o  [Ljava/lang/reflect/Field;
            1    5     2     i  I
    Signature: (Ljava/util/Collection<Ljava/lang/reflect/Field;>;[Ljava/lang/reflect/Field;)V
    MethodParameters:
      Name  Flags
      c     
      o     

  private java.lang.reflect.Constructor<T>[] privateGetDeclaredConstructors(boolean);
    descriptor: (Z)[Ljava/lang/reflect/Constructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // boolean publicOnly
         0: .line 2584
            invokestatic java.lang.Class.checkInitted:()V
         1: .line 2586
            aload 0 /* this */
            invokevirtual java.lang.Class.reflectionData:()Ljava/lang/Class$ReflectionData;
            astore 3 /* rd */
        start local 3 // java.lang.Class$ReflectionData rd
         2: .line 2587
            aload 3 /* rd */
            ifnull 7
         3: .line 2588
            iload 1 /* publicOnly */
            ifeq 4
            aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.publicConstructors:[Ljava/lang/reflect/Constructor;
            goto 5
      StackMap locals: java.lang.Class int top java.lang.Class$ReflectionData
      StackMap stack:
         4: aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.declaredConstructors:[Ljava/lang/reflect/Constructor;
      StackMap locals:
      StackMap stack: java.lang.reflect.Constructor[]
         5: astore 2 /* res */
        start local 2 // java.lang.reflect.Constructor[] res
         6: .line 2589
            aload 2 /* res */
            ifnull 7
            aload 2 /* res */
            areturn
        end local 2 // java.lang.reflect.Constructor[] res
         7: .line 2592
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 10
         8: .line 2593
            iconst_0
            anewarray java.lang.reflect.Constructor
            astore 2 /* res */
        start local 2 // java.lang.reflect.Constructor[] res
         9: .line 2594
            goto 11
        end local 2 // java.lang.reflect.Constructor[] res
        10: .line 2595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* publicOnly */
            invokevirtual java.lang.Class.getDeclaredConstructors0:(Z)[Ljava/lang/reflect/Constructor;
            astore 2 /* res */
        start local 2 // java.lang.reflect.Constructor[] res
        11: .line 2597
      StackMap locals: java.lang.Class int java.lang.reflect.Constructor[] java.lang.Class$ReflectionData
      StackMap stack:
            aload 3 /* rd */
            ifnull 16
        12: .line 2598
            iload 1 /* publicOnly */
            ifeq 15
        13: .line 2599
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.publicConstructors:[Ljava/lang/reflect/Constructor;
        14: .line 2600
            goto 16
        15: .line 2601
      StackMap locals:
      StackMap stack:
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.declaredConstructors:[Ljava/lang/reflect/Constructor;
        16: .line 2604
      StackMap locals:
      StackMap stack:
            aload 2 /* res */
            areturn
        end local 3 // java.lang.Class$ReflectionData rd
        end local 2 // java.lang.reflect.Constructor[] res
        end local 1 // boolean publicOnly
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Ljava/lang/Class<TT;>;
            0   17     1  publicOnly  Z
            6    7     2         res  [Ljava/lang/reflect/Constructor;
            9   10     2         res  [Ljava/lang/reflect/Constructor;
           11   17     2         res  [Ljava/lang/reflect/Constructor;
            2   17     3          rd  Ljava/lang/Class$ReflectionData<TT;>;
    Signature: (Z)[Ljava/lang/reflect/Constructor<TT;>;
    MethodParameters:
            Name  Flags
      publicOnly  

  private java.lang.reflect.Method[] privateGetDeclaredMethods(boolean);
    descriptor: (Z)[Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // boolean publicOnly
         0: .line 2617
            invokestatic java.lang.Class.checkInitted:()V
         1: .line 2619
            aload 0 /* this */
            invokevirtual java.lang.Class.reflectionData:()Ljava/lang/Class$ReflectionData;
            astore 3 /* rd */
        start local 3 // java.lang.Class$ReflectionData rd
         2: .line 2620
            aload 3 /* rd */
            ifnull 7
         3: .line 2621
            iload 1 /* publicOnly */
            ifeq 4
            aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.declaredPublicMethods:[Ljava/lang/reflect/Method;
            goto 5
      StackMap locals: java.lang.Class int top java.lang.Class$ReflectionData
      StackMap stack:
         4: aload 3 /* rd */
            getfield java.lang.Class$ReflectionData.declaredMethods:[Ljava/lang/reflect/Method;
      StackMap locals:
      StackMap stack: java.lang.reflect.Method[]
         5: astore 2 /* res */
        start local 2 // java.lang.reflect.Method[] res
         6: .line 2622
            aload 2 /* res */
            ifnull 7
            aload 2 /* res */
            areturn
        end local 2 // java.lang.reflect.Method[] res
         7: .line 2625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* publicOnly */
            invokevirtual java.lang.Class.getDeclaredMethods0:(Z)[Ljava/lang/reflect/Method;
            invokestatic sun.reflect.Reflection.filterMethods:(Ljava/lang/Class;[Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
            astore 2 /* res */
        start local 2 // java.lang.reflect.Method[] res
         8: .line 2626
            aload 3 /* rd */
            ifnull 13
         9: .line 2627
            iload 1 /* publicOnly */
            ifeq 12
        10: .line 2628
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.declaredPublicMethods:[Ljava/lang/reflect/Method;
        11: .line 2629
            goto 13
        12: .line 2630
      StackMap locals: java.lang.Class int java.lang.reflect.Method[] java.lang.Class$ReflectionData
      StackMap stack:
            aload 3 /* rd */
            aload 2 /* res */
            putfield java.lang.Class$ReflectionData.declaredMethods:[Ljava/lang/reflect/Method;
        13: .line 2633
      StackMap locals:
      StackMap stack:
            aload 2 /* res */
            areturn
        end local 3 // java.lang.Class$ReflectionData rd
        end local 2 // java.lang.reflect.Method[] res
        end local 1 // boolean publicOnly
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Ljava/lang/Class<TT;>;
            0   14     1  publicOnly  Z
            6    7     2         res  [Ljava/lang/reflect/Method;
            8   14     2         res  [Ljava/lang/reflect/Method;
            2   14     3          rd  Ljava/lang/Class$ReflectionData<TT;>;
    MethodParameters:
            Name  Flags
      publicOnly  

  private java.lang.reflect.Method[] privateGetPublicMethods();
    descriptor: ()[Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=1
        start local 0 // java.lang.Class this
         0: .line 2731
            invokestatic java.lang.Class.checkInitted:()V
         1: .line 2733
            aload 0 /* this */
            invokevirtual java.lang.Class.reflectionData:()Ljava/lang/Class$ReflectionData;
            astore 2 /* rd */
        start local 2 // java.lang.Class$ReflectionData rd
         2: .line 2734
            aload 2 /* rd */
            ifnull 5
         3: .line 2735
            aload 2 /* rd */
            getfield java.lang.Class$ReflectionData.publicMethods:[Ljava/lang/reflect/Method;
            astore 1 /* res */
        start local 1 // java.lang.reflect.Method[] res
         4: .line 2736
            aload 1 /* res */
            ifnull 5
            aload 1 /* res */
            areturn
        end local 1 // java.lang.reflect.Method[] res
         5: .line 2741
      StackMap locals: java.lang.Class top java.lang.Class$ReflectionData
      StackMap stack:
            new java.lang.Class$MethodArray
            dup
            invokespecial java.lang.Class$MethodArray.<init>:()V
            astore 3 /* methods */
        start local 3 // java.lang.Class$MethodArray methods
         6: .line 2743
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.Class.privateGetDeclaredMethods:(Z)[Ljava/lang/reflect/Method;
            astore 4 /* tmp */
        start local 4 // java.lang.reflect.Method[] tmp
         7: .line 2744
            aload 3 /* methods */
            aload 4 /* tmp */
            invokevirtual java.lang.Class$MethodArray.addAll:([Ljava/lang/reflect/Method;)V
        end local 4 // java.lang.reflect.Method[] tmp
         8: .line 2750
            new java.lang.Class$MethodArray
            dup
            invokespecial java.lang.Class$MethodArray.<init>:()V
            astore 4 /* inheritedMethods */
        start local 4 // java.lang.Class$MethodArray inheritedMethods
         9: .line 2751
            aload 0 /* this */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 5 /* interfaces */
        start local 5 // java.lang.Class[] interfaces
        10: .line 2752
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 14
        12: .line 2753
      StackMap locals: java.lang.Class top java.lang.Class$ReflectionData java.lang.Class$MethodArray java.lang.Class$MethodArray java.lang.Class[] int
      StackMap stack:
            aload 4 /* inheritedMethods */
            aload 5 /* interfaces */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.Class.privateGetPublicMethods:()[Ljava/lang/reflect/Method;
            invokevirtual java.lang.Class$MethodArray.addAll:([Ljava/lang/reflect/Method;)V
        13: .line 2752
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            aload 5 /* interfaces */
            arraylength
            if_icmplt 12
        end local 6 // int i
        15: .line 2755
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 29
        16: .line 2756
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 6 /* c */
        start local 6 // java.lang.Class c
        17: .line 2757
            aload 6 /* c */
            ifnull 29
        18: .line 2758
            new java.lang.Class$MethodArray
            dup
            invokespecial java.lang.Class$MethodArray.<init>:()V
            astore 7 /* supers */
        start local 7 // java.lang.Class$MethodArray supers
        19: .line 2759
            aload 7 /* supers */
            aload 6 /* c */
            invokevirtual java.lang.Class.privateGetPublicMethods:()[Ljava/lang/reflect/Method;
            invokevirtual java.lang.Class$MethodArray.addAll:([Ljava/lang/reflect/Method;)V
        20: .line 2762
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        21: goto 26
        22: .line 2763
      StackMap locals: java.lang.Class top java.lang.Class$ReflectionData java.lang.Class$MethodArray java.lang.Class$MethodArray java.lang.Class[] java.lang.Class java.lang.Class$MethodArray int
      StackMap stack:
            aload 7 /* supers */
            iload 8 /* i */
            invokevirtual java.lang.Class$MethodArray.get:(I)Ljava/lang/reflect/Method;
            astore 9 /* m */
        start local 9 // java.lang.reflect.Method m
        23: .line 2764
            aload 9 /* m */
            ifnull 25
            aload 9 /* m */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 25
        24: .line 2765
            aload 4 /* inheritedMethods */
            aload 9 /* m */
            invokevirtual java.lang.Class$MethodArray.removeByNameAndSignature:(Ljava/lang/reflect/Method;)V
        end local 9 // java.lang.reflect.Method m
        25: .line 2762
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 8 /* i */
            aload 7 /* supers */
            invokevirtual java.lang.Class$MethodArray.length:()I
            if_icmplt 22
        end local 8 // int i
        27: .line 2771
            aload 7 /* supers */
            aload 4 /* inheritedMethods */
            invokevirtual java.lang.Class$MethodArray.addAll:(Ljava/lang/Class$MethodArray;)V
        28: .line 2772
            aload 7 /* supers */
            astore 4 /* inheritedMethods */
        end local 7 // java.lang.Class$MethodArray supers
        end local 6 // java.lang.Class c
        29: .line 2776
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        30: goto 34
        31: .line 2777
      StackMap locals: int
      StackMap stack:
            aload 3 /* methods */
            iload 6 /* i */
            invokevirtual java.lang.Class$MethodArray.get:(I)Ljava/lang/reflect/Method;
            astore 7 /* m */
        start local 7 // java.lang.reflect.Method m
        32: .line 2778
            aload 4 /* inheritedMethods */
            aload 7 /* m */
            invokevirtual java.lang.Class$MethodArray.removeByNameAndSignature:(Ljava/lang/reflect/Method;)V
        end local 7 // java.lang.reflect.Method m
        33: .line 2776
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 6 /* i */
            aload 3 /* methods */
            invokevirtual java.lang.Class$MethodArray.length:()I
            if_icmplt 31
        end local 6 // int i
        35: .line 2780
            aload 3 /* methods */
            aload 4 /* inheritedMethods */
            invokevirtual java.lang.Class$MethodArray.addAllIfNotPresent:(Ljava/lang/Class$MethodArray;)V
        36: .line 2781
            aload 3 /* methods */
            invokevirtual java.lang.Class$MethodArray.compactAndTrim:()V
        37: .line 2782
            aload 3 /* methods */
            invokevirtual java.lang.Class$MethodArray.getArray:()[Ljava/lang/reflect/Method;
            astore 1 /* res */
        start local 1 // java.lang.reflect.Method[] res
        38: .line 2783
            aload 2 /* rd */
            ifnull 40
        39: .line 2784
            aload 2 /* rd */
            aload 1 /* res */
            putfield java.lang.Class$ReflectionData.publicMethods:[Ljava/lang/reflect/Method;
        40: .line 2786
      StackMap locals: java.lang.Class java.lang.reflect.Method[] java.lang.Class$ReflectionData java.lang.Class$MethodArray java.lang.Class$MethodArray java.lang.Class[]
      StackMap stack:
            aload 1 /* res */
            areturn
        end local 5 // java.lang.Class[] interfaces
        end local 4 // java.lang.Class$MethodArray inheritedMethods
        end local 3 // java.lang.Class$MethodArray methods
        end local 2 // java.lang.Class$ReflectionData rd
        end local 1 // java.lang.reflect.Method[] res
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   41     0              this  Ljava/lang/Class<TT;>;
            4    5     1               res  [Ljava/lang/reflect/Method;
           38   41     1               res  [Ljava/lang/reflect/Method;
            2   41     2                rd  Ljava/lang/Class$ReflectionData<TT;>;
            6   41     3           methods  Ljava/lang/Class$MethodArray;
            7    8     4               tmp  [Ljava/lang/reflect/Method;
            9   41     4  inheritedMethods  Ljava/lang/Class$MethodArray;
           10   41     5        interfaces  [Ljava/lang/Class;
           11   15     6                 i  I
           17   29     6                 c  Ljava/lang/Class<*>;
           19   29     7            supers  Ljava/lang/Class$MethodArray;
           21   27     8                 i  I
           23   25     9                 m  Ljava/lang/reflect/Method;
           30   35     6                 i  I
           32   33     7                 m  Ljava/lang/reflect/Method;

  private static java.lang.reflect.Field searchFields(java.lang.reflect.Field[], java.lang.String);
    descriptor: ([Ljava/lang/reflect/Field;Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.reflect.Field[] fields
        start local 1 // java.lang.String name
         0: .line 2795
            aload 1 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            astore 2 /* internedName */
        start local 2 // java.lang.String internedName
         1: .line 2796
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 2797
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* fields */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            aload 2 /* internedName */
            if_acmpne 5
         4: .line 2798
            invokestatic java.lang.Class.getReflectionFactory:()Lsun/reflect/ReflectionFactory;
            aload 0 /* fields */
            iload 3 /* i */
            aaload
            invokevirtual sun.reflect.ReflectionFactory.copyField:(Ljava/lang/reflect/Field;)Ljava/lang/reflect/Field;
            areturn
         5: .line 2796
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* fields */
            arraylength
            if_icmplt 3
        end local 3 // int i
         7: .line 2801
            aconst_null
            areturn
        end local 2 // java.lang.String internedName
        end local 1 // java.lang.String name
        end local 0 // java.lang.reflect.Field[] fields
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0        fields  [Ljava/lang/reflect/Field;
            0    8     1          name  Ljava/lang/String;
            1    8     2  internedName  Ljava/lang/String;
            2    7     3             i  I
    MethodParameters:
        Name  Flags
      fields  
      name    

  private java.lang.reflect.Field getField0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
         0: .line 2814
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.Class.privateGetDeclaredFields:(Z)[Ljava/lang/reflect/Field;
            aload 1 /* name */
            invokestatic java.lang.Class.searchFields:([Ljava/lang/reflect/Field;Ljava/lang/String;)Ljava/lang/reflect/Field;
            dup
            astore 2 /* res */
        start local 2 // java.lang.reflect.Field res
         1: ifnull 3
         2: .line 2815
            aload 2 /* res */
            areturn
         3: .line 2818
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 3 /* interfaces */
        start local 3 // java.lang.Class[] interfaces
         4: .line 2819
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 2820
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 3 /* interfaces */
            iload 4 /* i */
            aaload
            astore 5 /* c */
        start local 5 // java.lang.Class c
         7: .line 2821
            aload 5 /* c */
            aload 1 /* name */
            invokevirtual java.lang.Class.getField0:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            dup
            astore 2 /* res */
            ifnull 9
         8: .line 2822
            aload 2 /* res */
            areturn
        end local 5 // java.lang.Class c
         9: .line 2819
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 3 /* interfaces */
            arraylength
            if_icmplt 6
        end local 4 // int i
        11: .line 2826
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 16
        12: .line 2827
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 4 /* c */
        start local 4 // java.lang.Class c
        13: .line 2828
            aload 4 /* c */
            ifnull 16
        14: .line 2829
            aload 4 /* c */
            aload 1 /* name */
            invokevirtual java.lang.Class.getField0:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            dup
            astore 2 /* res */
            ifnull 16
        15: .line 2830
            aload 2 /* res */
            areturn
        end local 4 // java.lang.Class c
        16: .line 2834
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Class[] interfaces
        end local 2 // java.lang.reflect.Field res
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Ljava/lang/Class<TT;>;
            0   17     1        name  Ljava/lang/String;
            1   17     2         res  Ljava/lang/reflect/Field;
            4   17     3  interfaces  [Ljava/lang/Class;
            5   11     4           i  I
            7    9     5           c  Ljava/lang/Class<*>;
           13   16     4           c  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.NoSuchFieldException
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.reflect.Method searchMethods(java.lang.reflect.Method[], java.lang.String, java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/reflect/Method;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // java.lang.reflect.Method[] methods
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] parameterTypes
         0: .line 2841
            aconst_null
            astore 3 /* res */
        start local 3 // java.lang.reflect.Method res
         1: .line 2842
            aload 1 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            astore 4 /* internedName */
        start local 4 // java.lang.String internedName
         2: .line 2843
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 11
         4: .line 2844
      StackMap locals: java.lang.reflect.Method java.lang.String int
      StackMap stack:
            aload 0 /* methods */
            iload 5 /* i */
            aaload
            astore 6 /* m */
        start local 6 // java.lang.reflect.Method m
         5: .line 2845
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 4 /* internedName */
            if_acmpne 10
         6: .line 2846
            aload 2 /* parameterTypes */
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic java.lang.Class.arrayContentsEq:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 10
         7: .line 2847
            aload 3 /* res */
            ifnull 9
         8: .line 2848
            aload 3 /* res */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 10
         9: .line 2849
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 6 /* m */
            astore 3 /* res */
        end local 6 // java.lang.reflect.Method m
        10: .line 2843
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 0 /* methods */
            arraylength
            if_icmplt 4
        end local 5 // int i
        12: .line 2852
            aload 3 /* res */
            ifnonnull 13
            aload 3 /* res */
            goto 14
      StackMap locals:
      StackMap stack:
        13: invokestatic java.lang.Class.getReflectionFactory:()Lsun/reflect/ReflectionFactory;
            aload 3 /* res */
            invokevirtual sun.reflect.ReflectionFactory.copyMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
      StackMap locals:
      StackMap stack: java.lang.reflect.Method
        14: areturn
        end local 4 // java.lang.String internedName
        end local 3 // java.lang.reflect.Method res
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String name
        end local 0 // java.lang.reflect.Method[] methods
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0         methods  [Ljava/lang/reflect/Method;
            0   15     1            name  Ljava/lang/String;
            0   15     2  parameterTypes  [Ljava/lang/Class;
            1   15     3             res  Ljava/lang/reflect/Method;
            2   15     4    internedName  Ljava/lang/String;
            3   12     5               i  I
            5   10     6               m  Ljava/lang/reflect/Method;
    Signature: ([Ljava/lang/reflect/Method;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
                Name  Flags
      methods         
      name            
      parameterTypes  

  private java.lang.reflect.Method getMethod0(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class[] parameterTypes
         0: .line 2866
            aload 0 /* this */
            iconst_1
            invokevirtual java.lang.Class.privateGetDeclaredMethods:(Z)[Ljava/lang/reflect/Method;
         1: .line 2867
            aload 1 /* name */
         2: .line 2868
            aload 2 /* parameterTypes */
         3: .line 2866
            invokestatic java.lang.Class.searchMethods:([Ljava/lang/reflect/Method;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            dup
            astore 3 /* res */
        start local 3 // java.lang.reflect.Method res
         4: ifnull 6
         5: .line 2869
            aload 3 /* res */
            areturn
         6: .line 2872
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 11
         7: .line 2873
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 4 /* c */
        start local 4 // java.lang.Class c
         8: .line 2874
            aload 4 /* c */
            ifnull 11
         9: .line 2875
            aload 4 /* c */
            aload 1 /* name */
            aload 2 /* parameterTypes */
            invokevirtual java.lang.Class.getMethod0:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            dup
            astore 3 /* res */
            ifnull 11
        10: .line 2876
            aload 3 /* res */
            areturn
        end local 4 // java.lang.Class c
        11: .line 2881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 4 /* interfaces */
        start local 4 // java.lang.Class[] interfaces
        12: .line 2882
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 18
        14: .line 2883
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 4 /* interfaces */
            iload 5 /* i */
            aaload
            astore 6 /* c */
        start local 6 // java.lang.Class c
        15: .line 2884
            aload 6 /* c */
            aload 1 /* name */
            aload 2 /* parameterTypes */
            invokevirtual java.lang.Class.getMethod0:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            dup
            astore 3 /* res */
            ifnull 17
        16: .line 2885
            aload 3 /* res */
            areturn
        end local 6 // java.lang.Class c
        17: .line 2882
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 4 /* interfaces */
            arraylength
            if_icmplt 14
        end local 5 // int i
        19: .line 2889
            aconst_null
            areturn
        end local 4 // java.lang.Class[] interfaces
        end local 3 // java.lang.reflect.Method res
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Ljava/lang/Class<TT;>;
            0   20     1            name  Ljava/lang/String;
            0   20     2  parameterTypes  [Ljava/lang/Class;
            4   20     3             res  Ljava/lang/reflect/Method;
            8   11     4               c  Ljava/lang/Class<-TT;>;
           12   20     4      interfaces  [Ljava/lang/Class;
           13   19     5               i  I
           15   17     6               c  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  

  private java.lang.reflect.Constructor<T> getConstructor0(java.lang.Class<?>[], int);
    descriptor: ([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Class[] parameterTypes
        start local 2 // int which
         0: .line 2895
            aload 0 /* this */
            iload 2 /* which */
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: java.lang.Class
         1: iconst_0
      StackMap locals: java.lang.Class java.lang.Class[] int
      StackMap stack: java.lang.Class int
         2: invokevirtual java.lang.Class.privateGetDeclaredConstructors:(Z)[Ljava/lang/reflect/Constructor;
            astore 3 /* constructors */
        start local 3 // java.lang.reflect.Constructor[] constructors
         3: .line 2896
            aload 3 /* constructors */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 11
      StackMap locals: java.lang.Class java.lang.Class[] int java.lang.reflect.Constructor[] top int int java.lang.reflect.Constructor[]
      StackMap stack:
         4: aload 7
            iload 5
            aaload
            astore 4 /* constructor */
        start local 4 // java.lang.reflect.Constructor constructor
         5: .line 2897
            aload 1 /* parameterTypes */
         6: .line 2898
            aload 4 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
         7: .line 2897
            invokestatic java.lang.Class.arrayContentsEq:([Ljava/lang/Object;[Ljava/lang/Object;)Z
         8: .line 2898
            ifeq 10
         9: .line 2899
            invokestatic java.lang.Class.getReflectionFactory:()Lsun/reflect/ReflectionFactory;
            aload 4 /* constructor */
            invokevirtual sun.reflect.ReflectionFactory.copyConstructor:(Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
            areturn
        end local 4 // java.lang.reflect.Constructor constructor
        10: .line 2896
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        11: iload 5
            iload 6
            if_icmplt 4
        12: .line 2902
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 ".<init>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* parameterTypes */
            invokestatic java.lang.Class.argumentTypesToString:([Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.reflect.Constructor[] constructors
        end local 2 // int which
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Ljava/lang/Class<TT;>;
            0   13     1  parameterTypes  [Ljava/lang/Class;
            0   13     2           which  I
            3   13     3    constructors  [Ljava/lang/reflect/Constructor;
            5   10     4     constructor  Ljava/lang/reflect/Constructor<TT;>;
    Exceptions:
      throws java.lang.NoSuchMethodException
    Signature: ([Ljava/lang/Class<*>;I)Ljava/lang/reflect/Constructor<TT;>;
    MethodParameters:
                Name  Flags
      parameterTypes  
      which           

  private static boolean arrayContentsEq(java.lang.Object[], java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object[] a1
        start local 1 // java.lang.Object[] a2
         0: .line 2910
            aload 0 /* a1 */
            ifnonnull 3
         1: .line 2911
            aload 1 /* a2 */
            ifnull 2
            aload 1 /* a2 */
            arraylength
            ifeq 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
         3: .line 2914
      StackMap locals:
      StackMap stack:
            aload 1 /* a2 */
            ifnonnull 6
         4: .line 2915
            aload 0 /* a1 */
            arraylength
            ifne 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 2918
      StackMap locals:
      StackMap stack:
            aload 0 /* a1 */
            arraylength
            aload 1 /* a2 */
            arraylength
            if_icmpeq 8
         7: .line 2919
            iconst_0
            ireturn
         8: .line 2922
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: goto 13
        10: .line 2923
      StackMap locals: int
      StackMap stack:
            aload 0 /* a1 */
            iload 2 /* i */
            aaload
            aload 1 /* a2 */
            iload 2 /* i */
            aaload
            if_acmpeq 12
        11: .line 2924
            iconst_0
            ireturn
        12: .line 2922
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 2 /* i */
            aload 0 /* a1 */
            arraylength
            if_icmplt 10
        end local 2 // int i
        14: .line 2928
            iconst_1
            ireturn
        end local 1 // java.lang.Object[] a2
        end local 0 // java.lang.Object[] a1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0    a1  [Ljava/lang/Object;
            0   15     1    a2  [Ljava/lang/Object;
            9   14     2     i  I
    MethodParameters:
      Name  Flags
      a1    
      a2    

  private static java.lang.reflect.Field[] copyFields(java.lang.reflect.Field[]);
    descriptor: ([Ljava/lang/reflect/Field;)[Ljava/lang/reflect/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.reflect.Field[] arg
         0: .line 2932
            aload 0 /* arg */
            arraylength
            anewarray java.lang.reflect.Field
            astore 1 /* out */
        start local 1 // java.lang.reflect.Field[] out
         1: .line 2933
            invokestatic java.lang.Class.getReflectionFactory:()Lsun/reflect/ReflectionFactory;
            astore 2 /* fact */
        start local 2 // sun.reflect.ReflectionFactory fact
         2: .line 2934
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 2935
      StackMap locals: java.lang.reflect.Field[] sun.reflect.ReflectionFactory int
      StackMap stack:
            aload 1 /* out */
            iload 3 /* i */
            aload 2 /* fact */
            aload 0 /* arg */
            iload 3 /* i */
            aaload
            invokevirtual sun.reflect.ReflectionFactory.copyField:(Ljava/lang/reflect/Field;)Ljava/lang/reflect/Field;
            aastore
         5: .line 2934
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* arg */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 2937
            aload 1 /* out */
            areturn
        end local 2 // sun.reflect.ReflectionFactory fact
        end local 1 // java.lang.reflect.Field[] out
        end local 0 // java.lang.reflect.Field[] arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   arg  [Ljava/lang/reflect/Field;
            1    8     1   out  [Ljava/lang/reflect/Field;
            2    8     2  fact  Lsun/reflect/ReflectionFactory;
            3    7     3     i  I
    MethodParameters:
      Name  Flags
      arg   

  private static java.lang.reflect.Method[] copyMethods(java.lang.reflect.Method[]);
    descriptor: ([Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method[] arg
         0: .line 2941
            aload 0 /* arg */
            arraylength
            anewarray java.lang.reflect.Method
            astore 1 /* out */
        start local 1 // java.lang.reflect.Method[] out
         1: .line 2942
            invokestatic java.lang.Class.getReflectionFactory:()Lsun/reflect/ReflectionFactory;
            astore 2 /* fact */
        start local 2 // sun.reflect.ReflectionFactory fact
         2: .line 2943
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 2944
      StackMap locals: java.lang.reflect.Method[] sun.reflect.ReflectionFactory int
      StackMap stack:
            aload 1 /* out */
            iload 3 /* i */
            aload 2 /* fact */
            aload 0 /* arg */
            iload 3 /* i */
            aaload
            invokevirtual sun.reflect.ReflectionFactory.copyMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
            aastore
         5: .line 2943
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* arg */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 2946
            aload 1 /* out */
            areturn
        end local 2 // sun.reflect.ReflectionFactory fact
        end local 1 // java.lang.reflect.Method[] out
        end local 0 // java.lang.reflect.Method[] arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   arg  [Ljava/lang/reflect/Method;
            1    8     1   out  [Ljava/lang/reflect/Method;
            2    8     2  fact  Lsun/reflect/ReflectionFactory;
            3    7     3     i  I
    MethodParameters:
      Name  Flags
      arg   

  private static <U> java.lang.reflect.Constructor<U>[] copyConstructors(java.lang.reflect.Constructor<U>[]);
    descriptor: ([Ljava/lang/reflect/Constructor;)[Ljava/lang/reflect/Constructor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.reflect.Constructor[] arg
         0: .line 2950
            aload 0 /* arg */
            invokevirtual java.lang.reflect.Constructor[].clone:()Ljava/lang/Object;
            checkcast java.lang.reflect.Constructor[]
            astore 1 /* out */
        start local 1 // java.lang.reflect.Constructor[] out
         1: .line 2951
            invokestatic java.lang.Class.getReflectionFactory:()Lsun/reflect/ReflectionFactory;
            astore 2 /* fact */
        start local 2 // sun.reflect.ReflectionFactory fact
         2: .line 2952
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 2953
      StackMap locals: java.lang.reflect.Constructor[] sun.reflect.ReflectionFactory int
      StackMap stack:
            aload 1 /* out */
            iload 3 /* i */
            aload 2 /* fact */
            aload 1 /* out */
            iload 3 /* i */
            aaload
            invokevirtual sun.reflect.ReflectionFactory.copyConstructor:(Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
            aastore
         5: .line 2952
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* out */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 2955
            aload 1 /* out */
            areturn
        end local 2 // sun.reflect.ReflectionFactory fact
        end local 1 // java.lang.reflect.Constructor[] out
        end local 0 // java.lang.reflect.Constructor[] arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   arg  [Ljava/lang/reflect/Constructor;
            1    8     1   out  [Ljava/lang/reflect/Constructor;
            2    8     2  fact  Lsun/reflect/ReflectionFactory;
            3    7     3     i  I
    Signature: <U:Ljava/lang/Object;>([Ljava/lang/reflect/Constructor<TU;>;)[Ljava/lang/reflect/Constructor<TU;>;
    MethodParameters:
      Name  Flags
      arg   

  private native java.lang.reflect.Field[] getDeclaredFields0(boolean);
    descriptor: (Z)[Ljava/lang/reflect/Field;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
            Name  Flags
      publicOnly  

  private native java.lang.reflect.Method[] getDeclaredMethods0(boolean);
    descriptor: (Z)[Ljava/lang/reflect/Method;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
            Name  Flags
      publicOnly  

  private native java.lang.reflect.Constructor<T>[] getDeclaredConstructors0(boolean);
    descriptor: (Z)[Ljava/lang/reflect/Constructor;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: (Z)[Ljava/lang/reflect/Constructor<TT;>;
    MethodParameters:
            Name  Flags
      publicOnly  

  private native java.lang.Class<?>[] getDeclaredClasses0();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: ()[Ljava/lang/Class<*>;

  private static java.lang.String argumentTypesToString(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Class[] argTypes
         0: .line 2964
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 2965
            aload 1 /* buf */
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 2966
            aload 0 /* argTypes */
            ifnull 13
         3: .line 2967
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 12
         5: .line 2968
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 2 /* i */
            ifle 7
         6: .line 2969
            aload 1 /* buf */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2971
      StackMap locals:
      StackMap stack:
            aload 0 /* argTypes */
            iload 2 /* i */
            aaload
            astore 3 /* c */
        start local 3 // java.lang.Class c
         8: .line 2972
            aload 1 /* buf */
            aload 3 /* c */
            ifnonnull 9
            ldc "null"
            goto 10
      StackMap locals: java.lang.Class[] java.lang.StringBuilder int java.lang.Class
      StackMap stack: java.lang.StringBuilder
         9: aload 3 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
      StackMap locals: java.lang.Class[] java.lang.StringBuilder int java.lang.Class
      StackMap stack: java.lang.StringBuilder java.lang.String
        10: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.Class c
        11: .line 2967
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* argTypes */
            arraylength
            if_icmplt 5
        end local 2 // int i
        13: .line 2975
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 2976
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // java.lang.Class[] argTypes
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0  argTypes  [Ljava/lang/Class;
            1   15     1       buf  Ljava/lang/StringBuilder;
            4   13     2         i  I
            8   11     3         c  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
          Name  Flags
      argTypes  

  public boolean desiredAssertionStatus();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3028
            aload 0 /* this */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* loader */
        start local 1 // java.lang.ClassLoader loader
         1: .line 3030
            aload 1 /* loader */
            ifnonnull 3
         2: .line 3031
            aload 0 /* this */
            invokestatic java.lang.Class.desiredAssertionStatus0:(Ljava/lang/Class;)Z
            ireturn
         3: .line 3035
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 1 /* loader */
            getfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 3036
            aload 1 /* loader */
            getfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
            ifnull 7
         5: .line 3037
            aload 1 /* loader */
            aload 0 /* this */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.desiredAssertionStatus:(Ljava/lang/String;)Z
            aload 2
            monitorexit
         6: ireturn
         7: .line 3035
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 3040
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.lang.Class.desiredAssertionStatus0:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Ljava/lang/Class<TT;>;
            1   12     1  loader  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           4     6       9  any
           7     8       9  any
           9    10       9  any

  private static native boolean desiredAssertionStatus0(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public boolean isEnum();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3058
            aload 0 /* this */
            invokevirtual java.lang.Class.getModifiers:()I
            sipush 16384
            iand
            ifeq 3
         1: .line 3059
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            ldc Ljava/lang/Enum;
            if_acmpne 3
         2: .line 3058
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/Class<TT;>;

  private static sun.reflect.ReflectionFactory getReflectionFactory();
    descriptor: ()Lsun/reflect/ReflectionFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 3064
            getstatic java.lang.Class.reflectionFactory:Lsun/reflect/ReflectionFactory;
            ifnonnull 4
         1: .line 3067
            new sun.reflect.ReflectionFactory$GetReflectionFactoryAction
            dup
            invokespecial sun.reflect.ReflectionFactory$GetReflectionFactoryAction.<init>:()V
         2: .line 3066
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast sun.reflect.ReflectionFactory
         3: .line 3065
            putstatic java.lang.Class.reflectionFactory:Lsun/reflect/ReflectionFactory;
         4: .line 3069
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Class.reflectionFactory:Lsun/reflect/ReflectionFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void checkInitted();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 3076
            getstatic java.lang.Class.initted:Z
            ifeq 1
            return
         1: .line 3077
      StackMap locals:
      StackMap stack:
            new java.lang.Class$3
            dup
            invokespecial java.lang.Class$3.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         2: .line 3103
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public T[] getEnumConstants();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3116
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnumConstantsShared:()[Ljava/lang/Object;
            astore 1 /* values */
        start local 1 // java.lang.Object[] values
         1: .line 3117
            aload 1 /* values */
            ifnull 2
            aload 1 /* values */
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            goto 3
      StackMap locals: java.lang.Object[]
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object[]
         3: areturn
        end local 1 // java.lang.Object[] values
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/lang/Class<TT;>;
            1    4     1  values  [Ljava/lang/Object;
    Signature: ()[TT;

  T[] getEnumConstantsShared();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3127
            aload 0 /* this */
            getfield java.lang.Class.enumConstants:[Ljava/lang/Object;
            ifnonnull 10
         1: .line 3128
            aload 0 /* this */
            invokevirtual java.lang.Class.isEnum:()Z
            ifne 2
            aconst_null
            areturn
         2: .line 3130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "values"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 1 /* values */
        start local 1 // java.lang.reflect.Method values
         3: .line 3132
            new java.lang.Class$4
            dup
            aload 0 /* this */
            aload 1 /* values */
            invokespecial java.lang.Class$4.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Method;)V
         4: .line 3131
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 3138
            aload 0 /* this */
            aload 1 /* values */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            putfield java.lang.Class.enumConstants:[Ljava/lang/Object;
        end local 1 // java.lang.reflect.Method values
         6: .line 3139
            goto 10
         7: .line 3142
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            pop
            aconst_null
            areturn
         8: .line 3143
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
            aconst_null
            areturn
         9: .line 3144
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
            aconst_null
            areturn
        10: .line 3146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Class.enumConstants:[Ljava/lang/Object;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Ljava/lang/Class<TT;>;
            3    6     1  values  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.reflect.InvocationTargetException
           2     6       8  Class java.lang.NoSuchMethodException
           2     6       9  Class java.lang.IllegalAccessException
    Signature: ()[TT;

  java.util.Map<java.lang.String, T> enumConstantDirectory();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3158
            aload 0 /* this */
            getfield java.lang.Class.enumConstantDirectory:Ljava/util/Map;
            ifnonnull 13
         1: .line 3159
            aload 0 /* this */
            invokevirtual java.lang.Class.getEnumConstantsShared:()[Ljava/lang/Object;
            astore 1 /* universe */
        start local 1 // java.lang.Object[] universe
         2: .line 3160
            aload 1 /* universe */
            ifnonnull 6
         3: .line 3161
            new java.lang.IllegalArgumentException
            dup
         4: .line 3162
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 " is not an enum type"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 3161
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 3163
      StackMap locals: java.lang.Object[]
      StackMap stack:
            new java.util.HashMap
            dup
            iconst_2
            aload 1 /* universe */
            arraylength
            imul
            invokespecial java.util.HashMap.<init>:(I)V
            astore 2 /* m */
        start local 2 // java.util.Map m
         7: .line 3164
            aload 1 /* universe */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 11
      StackMap locals: java.lang.Class java.lang.Object[] java.util.Map top int int java.lang.Object[]
      StackMap stack:
         8: aload 6
            iload 4
            aaload
            astore 3 /* constant */
        start local 3 // java.lang.Object constant
         9: .line 3165
            aload 2 /* m */
            aload 3 /* constant */
            checkcast java.lang.Enum
            invokevirtual java.lang.Enum.name:()Ljava/lang/String;
            aload 3 /* constant */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.Object constant
        10: .line 3164
            iinc 4 1
      StackMap locals:
      StackMap stack:
        11: iload 4
            iload 5
            if_icmplt 8
        12: .line 3166
            aload 0 /* this */
            aload 2 /* m */
            putfield java.lang.Class.enumConstantDirectory:Ljava/util/Map;
        end local 2 // java.util.Map m
        end local 1 // java.lang.Object[] universe
        13: .line 3168
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.Class.enumConstantDirectory:Ljava/util/Map;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Ljava/lang/Class<TT;>;
            2   13     1  universe  [Ljava/lang/Object;
            7   13     2         m  Ljava/util/Map<Ljava/lang/String;TT;>;
            9   10     3  constant  TT;
    Signature: ()Ljava/util/Map<Ljava/lang/String;TT;>;

  public T cast();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Object obj
         0: .line 3185
            aload 1 /* obj */
            ifnull 2
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 3186
            new java.lang.ClassCastException
            dup
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.lang.Class.cannotCastMsg:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3187
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/Class<TT;>;
            0    3     1   obj  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)TT;
    MethodParameters:
      Name  Flags
      obj   

  private java.lang.String cannotCastMsg(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Object obj
         0: .line 3191
            new java.lang.StringBuilder
            dup
            ldc "Cannot cast "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            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;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Class<TT;>;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public <U> java.lang.Class<? extends U> asSubclass(java.lang.Class<U>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Class clazz
         0: .line 3215
            aload 1 /* clazz */
            aload 0 /* this */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 3216
            aload 0 /* this */
            areturn
         2: .line 3218
      StackMap locals:
      StackMap stack:
            new java.lang.ClassCastException
            dup
            aload 0 /* this */
            invokevirtual java.lang.Class.toString:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljava/lang/Class<TT;>;
            0    3     1  clazz  Ljava/lang/Class<TU;>;
    Signature: <U:Ljava/lang/Object;>(Ljava/lang/Class<TU;>;)Ljava/lang/Class<+TU;>;
    MethodParameters:
       Name  Flags
      clazz  

  public <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Class annotationClass
         0: .line 3226
            aload 1 /* annotationClass */
            ifnonnull 2
         1: .line 3227
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 3229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Class.initAnnotationsIfNecessary:()V
         3: .line 3230
            aload 0 /* this */
            getfield java.lang.Class.annotations:Ljava/util/Map;
            aload 1 /* annotationClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Ljava/lang/Class<TT;>;
            0    4     1  annotationClass  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
                 Name  Flags
      annotationClass  

  public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class this
        start local 1 // java.lang.Class annotationClass
         0: .line 3239
            aload 1 /* annotationClass */
            ifnonnull 2
         1: .line 3240
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 3242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Ljava/lang/Class<TT;>;
            0    4     1  annotationClass  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
    MethodParameters:
                 Name  Flags
      annotationClass  

  public java.lang.annotation.Annotation[] getAnnotations();
    descriptor: ()[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3250
            aload 0 /* this */
            invokevirtual java.lang.Class.initAnnotationsIfNecessary:()V
         1: .line 3251
            aload 0 /* this */
            getfield java.lang.Class.annotations:Ljava/util/Map;
            invokestatic sun.reflect.annotation.AnnotationParser.toArray:(Ljava/util/Map;)[Ljava/lang/annotation/Annotation;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  public java.lang.annotation.Annotation[] getDeclaredAnnotations();
    descriptor: ()[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3258
            aload 0 /* this */
            invokevirtual java.lang.Class.initAnnotationsIfNecessary:()V
         1: .line 3259
            aload 0 /* this */
            getfield java.lang.Class.declaredAnnotations:Ljava/util/Map;
            invokestatic sun.reflect.annotation.AnnotationParser.toArray:(Ljava/util/Map;)[Ljava/lang/annotation/Annotation;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/Class<TT;>;

  private void clearAnnotationCachesOnClassRedefinition();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3271
            aload 0 /* this */
            getfield java.lang.Class.lastAnnotationsRedefinedCount:I
            aload 0 /* this */
            getfield java.lang.Class.classRedefinedCount:I
            if_icmpeq 3
         1: .line 3272
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            dup_x1
            putfield java.lang.Class.declaredAnnotations:Ljava/util/Map;
            putfield java.lang.Class.annotations:Ljava/util/Map;
         2: .line 3273
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.Class.classRedefinedCount:I
            putfield java.lang.Class.lastAnnotationsRedefinedCount:I
         3: .line 3275
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/Class<TT;>;

  private synchronized void initAnnotationsIfNecessary();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3278
            aload 0 /* this */
            invokevirtual java.lang.Class.clearAnnotationCachesOnClassRedefinition:()V
         1: .line 3279
            aload 0 /* this */
            getfield java.lang.Class.annotations:Ljava/util/Map;
            ifnull 3
         2: .line 3280
            return
         3: .line 3281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 3282
            aload 0 /* this */
            invokevirtual java.lang.Class.getRawAnnotations:()[B
            aload 0 /* this */
            invokevirtual java.lang.Class.getConstantPool:()Lsun/reflect/ConstantPool;
            aload 0 /* this */
         5: .line 3281
            invokestatic sun.reflect.annotation.AnnotationParser.parseAnnotations:([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;
            putfield java.lang.Class.declaredAnnotations:Ljava/util/Map;
         6: .line 3283
            aload 0 /* this */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 1 /* superClass */
        start local 1 // java.lang.Class superClass
         7: .line 3284
            aload 1 /* superClass */
            ifnonnull 10
         8: .line 3285
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.Class.declaredAnnotations:Ljava/util/Map;
            putfield java.lang.Class.annotations:Ljava/util/Map;
         9: .line 3286
            goto 19
        10: .line 3287
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield java.lang.Class.annotations:Ljava/util/Map;
        11: .line 3288
            aload 1 /* superClass */
            invokevirtual java.lang.Class.initAnnotationsIfNecessary:()V
        12: .line 3289
            aload 1 /* superClass */
            getfield java.lang.Class.annotations:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 17
      StackMap locals: java.lang.Class java.lang.Class top java.util.Iterator
      StackMap stack:
        13: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* e */
        start local 2 // java.util.Map$Entry e
        14: .line 3290
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* annotationClass */
        start local 4 // java.lang.Class annotationClass
        15: .line 3291
            aload 4 /* annotationClass */
            invokestatic sun.reflect.annotation.AnnotationType.getInstance:(Ljava/lang/Class;)Lsun/reflect/annotation/AnnotationType;
            invokevirtual sun.reflect.annotation.AnnotationType.isInherited:()Z
            ifeq 17
        16: .line 3292
            aload 0 /* this */
            getfield java.lang.Class.annotations:Ljava/util/Map;
            aload 4 /* annotationClass */
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.Class annotationClass
        end local 2 // java.util.Map$Entry e
        17: .line 3289
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 3294
            aload 0 /* this */
            getfield java.lang.Class.annotations:Ljava/util/Map;
            aload 0 /* this */
            getfield java.lang.Class.declaredAnnotations:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        19: .line 3296
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            return
        end local 1 // java.lang.Class superClass
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Ljava/lang/Class<TT;>;
            7   20     1       superClass  Ljava/lang/Class<*>;
           14   17     2                e  Ljava/util/Map$Entry<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;
           15   17     4  annotationClass  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;

  boolean casAnnotationType(sun.reflect.annotation.AnnotationType, sun.reflect.annotation.AnnotationType);
    descriptor: (Lsun/reflect/annotation/AnnotationType;Lsun/reflect/annotation/AnnotationType;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Class this
        start local 1 // sun.reflect.annotation.AnnotationType oldType
        start local 2 // sun.reflect.annotation.AnnotationType newType
         0: .line 3304
            aload 0 /* this */
            aload 1 /* oldType */
            aload 2 /* newType */
            invokestatic java.lang.Class$Atomic.casAnnotationType:(Ljava/lang/Class;Lsun/reflect/annotation/AnnotationType;Lsun/reflect/annotation/AnnotationType;)Z
            ireturn
        end local 2 // sun.reflect.annotation.AnnotationType newType
        end local 1 // sun.reflect.annotation.AnnotationType oldType
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/lang/Class<TT;>;
            0    1     1  oldType  Lsun/reflect/annotation/AnnotationType;
            0    1     2  newType  Lsun/reflect/annotation/AnnotationType;
    MethodParameters:
         Name  Flags
      oldType  
      newType  

  sun.reflect.annotation.AnnotationType getAnnotationType();
    descriptor: ()Lsun/reflect/annotation/AnnotationType;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class this
         0: .line 3308
            aload 0 /* this */
            getfield java.lang.Class.annotationType:Lsun/reflect/annotation/AnnotationType;
            areturn
        end local 0 // java.lang.Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/Class<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/reflect/GenericDeclaration;Ljava/lang/reflect/Type;Ljava/lang/reflect/AnnotatedElement;
SourceFile: "Class.java"
NestMembers:
  java.lang.Class$1  java.lang.Class$2  java.lang.Class$3  java.lang.Class$4  java.lang.Class$Atomic  java.lang.Class$EnclosingMethodInfo  java.lang.Class$MethodArray  java.lang.Class$ReflectionData  java.lang.Class$SecurityManagerHelper
InnerClasses:
  java.lang.Class$1
  java.lang.Class$2
  java.lang.Class$3
  java.lang.Class$4
  private Atomic = java.lang.Class$Atomic of java.lang.Class
  private final EnclosingMethodInfo = java.lang.Class$EnclosingMethodInfo of java.lang.Class
  MethodArray = java.lang.Class$MethodArray of java.lang.Class
  ReflectionData = java.lang.Class$ReflectionData of java.lang.Class
  private SecurityManagerHelper = java.lang.Class$SecurityManagerHelper of java.lang.Class
  ClassValueMap = java.lang.ClassValue$ClassValueMap of java.lang.ClassValue
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final GetReflectionFactoryAction = sun.reflect.ReflectionFactory$GetReflectionFactoryAction of sun.reflect.ReflectionFactory