public final class java.lang.invoke.MethodHandles$Lookup
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.lang.invoke.MethodHandles$Lookup
  super_class: java.lang.Object
{
  private final java.lang.Class<?> lookupClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final int allowedModes;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int PUBLIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int PRIVATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PROTECTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int PACKAGE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int MODULE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int UNCONDITIONAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

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

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

  private static final int TRUSTED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private volatile java.security.ProtectionDomain cachedProtectionDomain;
    descriptor: Ljava/security/ProtectionDomain;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final java.lang.invoke.MethodHandles$Lookup IMPL_LOOKUP;
    descriptor: Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.invoke.MethodHandles$Lookup PUBLIC_LOOKUP;
    descriptor: Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static java.util.concurrent.ConcurrentHashMap<java.lang.invoke.MemberName, java.lang.invoke.DirectMethodHandle> LOOKASIDE_TABLE;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 635
            ldc Ljava/lang/invoke/MethodHandles;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
         3: .line 987
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
         4: .line 990
            new java.lang.invoke.MethodHandles$Lookup
            dup
            ldc Ljava/lang/Object;
            iconst_m1
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;I)V
            putstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
         5: .line 996
            new java.lang.invoke.MethodHandles$Lookup
            dup
            ldc Ljava/lang/Object;
            bipush 33
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;I)V
            putstatic java.lang.invoke.MethodHandles$Lookup.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
         6: .line 2531
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic java.lang.invoke.MethodHandles$Lookup.LOOKASIDE_TABLE:Ljava/util/concurrent/ConcurrentHashMap;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int fixmods(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int mods
         0: .line 704
            iload 0 /* mods */
            bipush 7
            iand
            istore 0 /* mods */
         1: .line 705
            iload 0 /* mods */
            ifeq 2
            iload 0 /* mods */
            goto 3
      StackMap locals:
      StackMap stack:
         2: bipush 56
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // int mods
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  mods  I
    MethodParameters:
      Name  Flags
      mods  

  public java.lang.Class<?> lookupClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 718
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            areturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: ()Ljava/lang/Class<*>;

  private java.lang.Class<?> lookupClassOrNull();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 723
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         2: areturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: ()Ljava/lang/Class<*>;

  public int lookupModes();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 755
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 63
            iand
            ireturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;

  void <init>(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class lookupClass
         0: .line 764
            aload 0 /* this */
            aload 1 /* lookupClass */
            bipush 31
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;I)V
         1: .line 766
            aload 1 /* lookupClass */
            invokestatic java.lang.invoke.MethodHandles$Lookup.checkUnprivilegedlookupClass:(Ljava/lang/Class;)V
         2: .line 767
            return
        end local 1 // java.lang.Class lookupClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1  lookupClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      lookupClass  

  private void <init>(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class lookupClass
        start local 2 // int allowedModes
         0: .line 769
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 770
            aload 0 /* this */
            aload 1 /* lookupClass */
            putfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
         2: .line 771
            aload 0 /* this */
            iload 2 /* allowedModes */
            putfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
         3: .line 772
            return
        end local 2 // int allowedModes
        end local 1 // java.lang.Class lookupClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1   lookupClass  Ljava/lang/Class<*>;
            0    4     2  allowedModes  I
    Signature: (Ljava/lang/Class<*>;I)V
    MethodParameters:
              Name  Flags
      lookupClass   
      allowedModes  

  public java.lang.invoke.MethodHandles$Lookup in(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class requestedLookupClass
         0: .line 815
            aload 1 /* requestedLookupClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 816
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 3
         2: .line 817
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 1 /* requestedLookupClass */
            bipush 31
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;I)V
            areturn
         3: .line 818
      StackMap locals:
      StackMap stack:
            aload 1 /* requestedLookupClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            if_acmpne 5
         4: .line 819
            aload 0 /* this */
            areturn
         5: .line 820
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 31
            iand
            istore 2 /* newModes */
        start local 2 // int newModes
         6: .line 821
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* requestedLookupClass */
            invokestatic sun.invoke.util.VerifyAccess.isSameModule:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 11
         7: .line 824
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 10
         8: .line 825
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 32
            iand
            ifne 10
         9: .line 826
            iconst_0
            istore 2 /* newModes */
            goto 11
        10: .line 828
      StackMap locals: int
      StackMap stack:
            iload 2 /* newModes */
            bipush -31
            iand
            istore 2 /* newModes */
        11: .line 830
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            bipush 8
            iand
            ifeq 14
        12: .line 831
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* requestedLookupClass */
            invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 14
        13: .line 832
            iload 2 /* newModes */
            bipush -15
            iand
            istore 2 /* newModes */
        14: .line 835
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            iconst_2
            iand
            ifeq 17
        15: .line 836
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* requestedLookupClass */
            invokestatic sun.invoke.util.VerifyAccess.isSamePackageMember:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 17
        16: .line 837
            iload 2 /* newModes */
            bipush -7
            iand
            istore 2 /* newModes */
        17: .line 839
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            iconst_1
            iand
            ifeq 20
        18: .line 840
            aload 1 /* requestedLookupClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 20
        19: .line 843
            iconst_0
            istore 2 /* newModes */
        20: .line 846
      StackMap locals:
      StackMap stack:
            aload 1 /* requestedLookupClass */
            invokestatic java.lang.invoke.MethodHandles$Lookup.checkUnprivilegedlookupClass:(Ljava/lang/Class;)V
        21: .line 847
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 1 /* requestedLookupClass */
            iload 2 /* newModes */
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;I)V
            areturn
        end local 2 // int newModes
        end local 1 // java.lang.Class requestedLookupClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   22     0                  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   22     1  requestedLookupClass  Ljava/lang/Class<*>;
            6   22     2              newModes  I
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandles$Lookup;
    MethodParameters:
                      Name  Flags
      requestedLookupClass  

  public java.lang.invoke.MethodHandles$Lookup dropLookupMode(int);
    descriptor: (I)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // int modeToDrop
         0: .line 870
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
            istore 2 /* oldModes */
        start local 2 // int oldModes
         1: .line 871
            iload 2 /* oldModes */
            iload 1 /* modeToDrop */
            iconst_4
            ior
            bipush 32
            ior
            iconst_m1
            ixor
            iand
            istore 3 /* newModes */
        start local 3 // int newModes
         2: .line 872
            iload 1 /* modeToDrop */
            lookupswitch { // 6
                    1: 3
                    2: 6
                    4: 6
                    8: 5
                   16: 4
                   32: 6
              default: 7
          }
         3: .line 873
      StackMap locals: int int
      StackMap stack:
            iload 3 /* newModes */
            bipush -64
            iand
            istore 3 /* newModes */
            goto 8
         4: .line 874
      StackMap locals:
      StackMap stack:
            iload 3 /* newModes */
            bipush -11
            iand
            istore 3 /* newModes */
            goto 8
         5: .line 875
      StackMap locals:
      StackMap stack:
            iload 3 /* newModes */
            bipush -3
            iand
            istore 3 /* newModes */
            goto 8
         6: .line 878
      StackMap locals:
      StackMap stack:
            goto 8
         7: .line 879
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            iload 1 /* modeToDrop */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not a valid mode to drop"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 881
      StackMap locals:
      StackMap stack:
            iload 3 /* newModes */
            iload 2 /* oldModes */
            if_icmpne 9
            aload 0 /* this */
            areturn
         9: .line 882
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            iload 3 /* newModes */
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;I)V
            areturn
        end local 3 // int newModes
        end local 2 // int oldModes
        end local 1 // int modeToDrop
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1  modeToDrop  I
            1   10     2    oldModes  I
            2   10     3    newModes  I
    MethodParameters:
            Name  Flags
      modeToDrop  

  public java.lang.Class<?> defineClass(byte[]);
    descriptor: ([B)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
         0: .line 924
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         1: .line 925
            aload 2 /* sm */
            ifnull 3
         2: .line 926
            aload 2 /* sm */
            new java.lang.RuntimePermission
            dup
            ldc "defineClass"
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         3: .line 927
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
            bipush 8
            iand
            ifne 5
         4: .line 928
            new java.lang.IllegalAccessException
            dup
            ldc "Lookup does not have PACKAGE access"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 929
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 6
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
            bipush 17
            iand
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 932
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            astore 1 /* bytes */
         7: .line 935
            new jdk.internal.org.objectweb.asm.ClassReader
            dup
            aload 1 /* bytes */
            invokespecial jdk.internal.org.objectweb.asm.ClassReader.<init>:([B)V
            astore 4 /* reader */
        start local 4 // jdk.internal.org.objectweb.asm.ClassReader reader
         8: .line 936
            aload 4 /* reader */
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.getClassName:()Ljava/lang/String;
            astore 3 /* name */
        end local 4 // jdk.internal.org.objectweb.asm.ClassReader reader
        start local 3 // java.lang.String name
         9: .line 937
            goto 14
        end local 3 // java.lang.String name
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        10: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
        11: .line 939
            new java.lang.ClassFormatError
            dup
            invokespecial java.lang.ClassFormatError.<init>:()V
            astore 5 /* cfe */
        start local 5 // java.lang.ClassFormatError cfe
        12: .line 940
            aload 5 /* cfe */
            aload 4 /* e */
            invokevirtual java.lang.ClassFormatError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        13: .line 941
            aload 5 /* cfe */
            athrow
        end local 5 // java.lang.ClassFormatError cfe
        end local 4 // java.lang.RuntimeException e
        start local 3 // java.lang.String name
        14: .line 946
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* name */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 6 /* index */
        start local 6 // int index
        15: .line 947
            iload 6 /* index */
            iconst_m1
            if_icmpne 19
        16: .line 948
            aload 3 /* name */
            astore 4 /* cn */
        start local 4 // java.lang.String cn
        17: .line 949
            ldc ""
            astore 5 /* pn */
        start local 5 // java.lang.String pn
        18: .line 950
            goto 21
        end local 5 // java.lang.String pn
        end local 4 // java.lang.String cn
        19: .line 951
      StackMap locals: java.lang.invoke.MethodHandles$Lookup byte[] java.lang.SecurityManager java.lang.String top top int
      StackMap stack:
            aload 3 /* name */
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 4 /* cn */
        start local 4 // java.lang.String cn
        20: .line 952
            aload 4 /* cn */
            iconst_0
            iload 6 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* pn */
        start local 5 // java.lang.String pn
        21: .line 954
      StackMap locals: java.lang.invoke.MethodHandles$Lookup byte[] java.lang.SecurityManager java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 5 /* pn */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 955
            new java.lang.IllegalArgumentException
            dup
            ldc "Class not in same package as lookup class"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 959
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 7 /* loader */
        start local 7 // java.lang.ClassLoader loader
        24: .line 960
            aload 7 /* loader */
            ifnull 25
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassProtectionDomain:()Ljava/security/ProtectionDomain;
            goto 26
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
        25: aconst_null
      StackMap locals:
      StackMap stack: java.security.ProtectionDomain
        26: astore 8 /* pd */
        start local 8 // java.security.ProtectionDomain pd
        27: .line 961
            ldc "__Lookup_defineClass__"
            astore 9 /* source */
        start local 9 // java.lang.String source
        28: .line 962
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangAccess:()Ljdk/internal/misc/JavaLangAccess;
            aload 7 /* loader */
            aload 4 /* cn */
            aload 1 /* bytes */
            aload 8 /* pd */
            aload 9 /* source */
            invokeinterface jdk.internal.misc.JavaLangAccess.defineClass:(Ljava/lang/ClassLoader;Ljava/lang/String;[BLjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
            astore 10 /* clazz */
        start local 10 // java.lang.Class clazz
        29: .line 963
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 33
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 32
        30: .line 964
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 965
            aload 0 /* this */
            aload 10 /* clazz */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.protectionDomain:(Ljava/lang/Class;)Ljava/security/ProtectionDomain;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassProtectionDomain:()Ljava/security/ProtectionDomain;
            if_acmpeq 33
      StackMap locals: java.security.ProtectionDomain java.lang.String java.lang.Class
      StackMap stack:
        32: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 966
      StackMap locals:
      StackMap stack:
            aload 10 /* clazz */
            areturn
        end local 10 // java.lang.Class clazz
        end local 9 // java.lang.String source
        end local 8 // java.security.ProtectionDomain pd
        end local 7 // java.lang.ClassLoader loader
        end local 6 // int index
        end local 5 // java.lang.String pn
        end local 4 // java.lang.String cn
        end local 3 // java.lang.String name
        end local 2 // java.lang.SecurityManager sm
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   34     1   bytes  [B
            1   34     2      sm  Ljava/lang/SecurityManager;
            9   10     3    name  Ljava/lang/String;
           14   34     3    name  Ljava/lang/String;
            8    9     4  reader  Ljdk/internal/org/objectweb/asm/ClassReader;
           11   14     4       e  Ljava/lang/RuntimeException;
           12   14     5     cfe  Ljava/lang/ClassFormatError;
           17   19     4      cn  Ljava/lang/String;
           20   34     4      cn  Ljava/lang/String;
           18   19     5      pn  Ljava/lang/String;
           21   34     5      pn  Ljava/lang/String;
           15   34     6   index  I
           24   34     7  loader  Ljava/lang/ClassLoader;
           27   34     8      pd  Ljava/security/ProtectionDomain;
           28   34     9  source  Ljava/lang/String;
           29   34    10   clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           7     9      10  Class java.lang.RuntimeException
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: ([B)Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      bytes  

  private java.security.ProtectionDomain lookupClassProtectionDomain();
    descriptor: ()Ljava/security/ProtectionDomain;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 970
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.cachedProtectionDomain:Ljava/security/ProtectionDomain;
            astore 1 /* pd */
        start local 1 // java.security.ProtectionDomain pd
         1: .line 971
            aload 1 /* pd */
            ifnonnull 3
         2: .line 972
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.protectionDomain:(Ljava/lang/Class;)Ljava/security/ProtectionDomain;
            dup
            astore 1 /* pd */
            putfield java.lang.invoke.MethodHandles$Lookup.cachedProtectionDomain:Ljava/security/ProtectionDomain;
         3: .line 974
      StackMap locals: java.security.ProtectionDomain
      StackMap stack:
            aload 1 /* pd */
            areturn
        end local 1 // java.security.ProtectionDomain pd
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            1    4     1    pd  Ljava/security/ProtectionDomain;

  private java.security.ProtectionDomain protectionDomain(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/security/ProtectionDomain;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class clazz
         0: .line 978
            aload 1 /* clazz */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Ljava/lang/Class;)Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/lang/Class.getProtectionDomain()Ljava/security/ProtectionDomain; (5)
                  ()Ljava/security/ProtectionDomain;
            astore 2 /* pa */
        start local 2 // java.security.PrivilegedAction pa
         1: .line 979
            aload 2 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.security.ProtectionDomain
            areturn
        end local 2 // java.security.PrivilegedAction pa
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1  clazz  Ljava/lang/Class<*>;
            1    2     2     pa  Ljava/security/PrivilegedAction<Ljava/security/ProtectionDomain;>;
    Signature: (Ljava/lang/Class<*>;)Ljava/security/ProtectionDomain;
    MethodParameters:
       Name  Flags
      clazz  

  private static void checkUnprivilegedlookupClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class lookupClass
         0: .line 999
            aload 0 /* lookupClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 1000
            aload 1 /* name */
            ldc "java.lang.invoke."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 1001
            new java.lang.StringBuilder
            dup
            ldc "illegal lookupClass: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* lookupClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 1002
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class lookupClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  lookupClass  Ljava/lang/Class<*>;
            1    4     1         name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      lookupClass  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 1039
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* cname */
        start local 1 // java.lang.String cname
         1: .line 1040
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            lookupswitch { // 8
                   -1: 9
                    0: 2
                    1: 3
                   17: 5
                   25: 6
                   27: 7
                   31: 8
                   33: 4
              default: 10
          }
         2: .line 1042
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/noaccess"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         3: .line 1044
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/public"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         4: .line 1046
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/publicLookup"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 1048
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         6: .line 1050
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/package"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 1052
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/private"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         8: .line 1054
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            areturn
         9: .line 1056
      StackMap locals:
      StackMap stack:
            ldc "/trusted"
            areturn
        10: .line 1058
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            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 */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* cname */
        11: .line 1059
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 12
            new java.lang.AssertionError
            dup
            aload 1 /* cname */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 1060
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            areturn
        end local 1 // java.lang.String cname
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            1   13     1  cname  Ljava/lang/String;

  public java.lang.invoke.MethodHandle findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
         0: .line 1102
            aload 0 /* this */
            bipush 6
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 4 /* method */
        start local 4 // java.lang.invoke.MemberName method
         1: .line 1103
            aload 0 /* this */
            bipush 6
            aload 1 /* refc */
            aload 4 /* method */
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerClass:(Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName method
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1    refc  Ljava/lang/Class<*>;
            0    2     2    name  Ljava/lang/String;
            0    2     3    type  Ljava/lang/invoke/MethodType;
            1    2     4  method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.MethodHandle findVirtual(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
         0: .line 1186
            aload 1 /* refc */
            ldc Ljava/lang/invoke/MethodHandle;
            if_acmpne 3
         1: .line 1187
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForMH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
        start local 4 // java.lang.invoke.MethodHandle mh
         2: .line 1188
            aload 4 /* mh */
            ifnull 6
            aload 4 /* mh */
            areturn
        end local 4 // java.lang.invoke.MethodHandle mh
         3: .line 1189
      StackMap locals:
      StackMap stack:
            aload 1 /* refc */
            ldc Ljava/lang/invoke/VarHandle;
            if_acmpne 6
         4: .line 1190
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForVH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
        start local 4 // java.lang.invoke.MethodHandle mh
         5: .line 1191
            aload 4 /* mh */
            ifnull 6
            aload 4 /* mh */
            areturn
        end local 4 // java.lang.invoke.MethodHandle mh
         6: .line 1193
      StackMap locals:
      StackMap stack:
            aload 1 /* refc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 7
            bipush 9
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_5
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* refKind */
        start local 4 // byte refKind
         9: .line 1194
            aload 0 /* this */
            iload 4 /* refKind */
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 5 /* method */
        start local 5 // java.lang.invoke.MemberName method
        10: .line 1195
            aload 0 /* this */
            iload 4 /* refKind */
            aload 1 /* refc */
            aload 5 /* method */
            aload 0 /* this */
            aload 5 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerClass:(Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName method
        end local 4 // byte refKind
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   11     1     refc  Ljava/lang/Class<*>;
            0   11     2     name  Ljava/lang/String;
            0   11     3     type  Ljava/lang/invoke/MethodType;
            2    3     4       mh  Ljava/lang/invoke/MethodHandle;
            5    6     4       mh  Ljava/lang/invoke/MethodHandle;
            9   11     4  refKind  B
           10   11     5   method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  private java.lang.invoke.MethodHandle findVirtualForMH(java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String name
        start local 2 // java.lang.invoke.MethodType type
         0: .line 1199
            ldc "invoke"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1200
            aload 2 /* type */
            invokestatic java.lang.invoke.MethodHandles.invoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 1201
      StackMap locals:
      StackMap stack:
            ldc "invokeExact"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 1202
            aload 2 /* type */
            invokestatic java.lang.invoke.MethodHandles.exactInvoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 1203
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 5
            aload 1 /* name */
            invokestatic java.lang.invoke.MemberName.isMethodHandleInvokeName:(Ljava/lang/String;)Z
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1204
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  name  Ljava/lang/String;
            0    6     2  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      name  
      type  

  private java.lang.invoke.MethodHandle findVirtualForVH(java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String name
        start local 2 // java.lang.invoke.MethodType type
         0: .line 1208
            aload 1 /* name */
            invokestatic java.lang.invoke.VarHandle$AccessMode.valueFromMethodName:(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessMode;
            aload 2 /* type */
            invokestatic java.lang.invoke.MethodHandles.varHandleInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
         1: areturn
         2: .line 1209
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
         3: .line 1210
            aconst_null
            areturn
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1  name  Ljava/lang/String;
            0    4     2  type  Ljava/lang/invoke/MethodType;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      name  
      type  

  public java.lang.invoke.MethodHandle findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MethodType type
         0: .line 1260
            aload 1 /* refc */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 2
         1: .line 1261
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no constructor for array class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* refc */
            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;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1263
      StackMap locals:
      StackMap stack:
            ldc "<init>"
            astore 3 /* name */
        start local 3 // java.lang.String name
         3: .line 1264
            aload 0 /* this */
            bipush 8
            aload 1 /* refc */
            aload 3 /* name */
            aload 2 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 4 /* ctor */
        start local 4 // java.lang.invoke.MemberName ctor
         4: .line 1265
            aload 0 /* this */
            aload 1 /* refc */
            aload 4 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructor:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName ctor
        end local 3 // java.lang.String name
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1  refc  Ljava/lang/Class<*>;
            0    5     2  type  Ljava/lang/invoke/MethodType;
            3    5     3  name  Ljava/lang/String;
            4    5     4  ctor  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      type  

  public java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String targetName
         0: .line 1289
            aload 1 /* targetName */
            iconst_0
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 2 /* targetClass */
        start local 2 // java.lang.Class targetClass
         1: .line 1290
            aload 0 /* this */
            aload 2 /* targetClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.accessClass:(Ljava/lang/Class;)Ljava/lang/Class;
            areturn
        end local 2 // java.lang.Class targetClass
        end local 1 // java.lang.String targetName
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   targetName  Ljava/lang/String;
            1    2     2  targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      targetName  

  public java.lang.Class<?> accessClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class targetClass
         0: .line 1311
            aload 1 /* targetClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 2
         1: .line 1312
            new java.lang.invoke.MemberName
            dup
            aload 1 /* targetClass */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
            ldc "access violation"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         2: .line 1314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* targetClass */
            aconst_null
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         3: .line 1315
            aload 1 /* targetClass */
            areturn
        end local 1 // java.lang.Class targetClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1  targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
             Name  Flags
      targetClass  

  public java.lang.invoke.MethodHandle findSpecial(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
        start local 4 // java.lang.Class specialCaller
         0: .line 1393
            aload 0 /* this */
            aload 4 /* specialCaller */
            aload 1 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSpecialCaller:(Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 1394
            aload 0 /* this */
            aload 4 /* specialCaller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.in:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
            astore 5 /* specialLookup */
        start local 5 // java.lang.invoke.MethodHandles$Lookup specialLookup
         2: .line 1395
            aload 5 /* specialLookup */
            bipush 7
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 6 /* method */
        start local 6 // java.lang.invoke.MemberName method
         3: .line 1396
            aload 5 /* specialLookup */
            bipush 7
            aload 1 /* refc */
            aload 6 /* method */
            aload 0 /* this */
            aload 6 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerClass:(Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 6 // java.lang.invoke.MemberName method
        end local 5 // java.lang.invoke.MethodHandles$Lookup specialLookup
        end local 4 // java.lang.Class specialCaller
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1           refc  Ljava/lang/Class<*>;
            0    4     2           name  Ljava/lang/String;
            0    4     3           type  Ljava/lang/invoke/MethodType;
            0    4     4  specialCaller  Ljava/lang/Class<*>;
            2    4     5  specialLookup  Ljava/lang/invoke/MethodHandles$Lookup;
            3    4     6         method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refc           
      name           
      type           
      specialCaller  

  public java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 1418
            aload 0 /* this */
            iconst_1
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 1419
            aload 0 /* this */
            iconst_1
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.MethodHandle findSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 1441
            aload 0 /* this */
            iconst_3
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 1442
            aload 0 /* this */
            iconst_3
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.VarHandle findVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class recv
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 1514
            aload 0 /* this */
            iconst_1
            aload 1 /* recv */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* getField */
        start local 4 // java.lang.invoke.MemberName getField
         1: .line 1515
            aload 0 /* this */
            iconst_3
            aload 1 /* recv */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 5 /* putField */
        start local 5 // java.lang.invoke.MemberName putField
         2: .line 1516
            aload 0 /* this */
            iconst_1
            iconst_3
            aload 1 /* recv */
            aload 4 /* getField */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class recv
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1      recv  Ljava/lang/Class<*>;
            0    3     2      name  Ljava/lang/String;
            0    3     3      type  Ljava/lang/Class<*>;
            1    3     4  getField  Ljava/lang/invoke/MemberName;
            2    3     5  putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
      Name  Flags
      recv  
      name  
      type  

  public java.lang.invoke.MethodHandle findStaticGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 1539
            aload 0 /* this */
            iconst_2
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 1540
            aload 0 /* this */
            iconst_2
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.MethodHandle findStaticSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 1563
            aload 0 /* this */
            iconst_4
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 1564
            aload 0 /* this */
            iconst_4
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.VarHandle findStaticVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class decl
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 1638
            aload 0 /* this */
            iconst_2
            aload 1 /* decl */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* getField */
        start local 4 // java.lang.invoke.MemberName getField
         1: .line 1639
            aload 0 /* this */
            iconst_4
            aload 1 /* decl */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 5 /* putField */
        start local 5 // java.lang.invoke.MemberName putField
         2: .line 1640
            aload 0 /* this */
            iconst_2
            iconst_4
            aload 1 /* decl */
            aload 4 /* getField */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class decl
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1      decl  Ljava/lang/Class<*>;
            0    3     2      name  Ljava/lang/String;
            0    3     3      type  Ljava/lang/Class<*>;
            1    3     4  getField  Ljava/lang/invoke/MemberName;
            2    3     5  putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
      Name  Flags
      decl  
      name  
      type  

  public java.lang.invoke.MethodHandle bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
         0: .line 1693
            aload 1 /* receiver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* refc */
        start local 4 // java.lang.Class refc
         1: .line 1694
            aload 0 /* this */
            bipush 7
            aload 4 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 5 /* method */
        start local 5 // java.lang.invoke.MemberName method
         2: .line 1695
            aload 0 /* this */
            aload 4 /* refc */
            aload 5 /* method */
            aload 0 /* this */
            aload 5 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerClass:(Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoRestrictInvokeSpecial:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
        start local 6 // java.lang.invoke.MethodHandle mh
         3: .line 1696
            aload 6 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.leadingReferenceParameter:()Ljava/lang/Class;
            aload 1 /* receiver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 9
         4: .line 1697
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The restricted defining class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 1698
            aload 6 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.leadingReferenceParameter:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1699
            ldc " is not assignable from receiver class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1700
            aload 1 /* receiver */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 1697
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1702
      StackMap locals: java.lang.Class java.lang.invoke.MemberName java.lang.invoke.MethodHandle
      StackMap stack:
            aload 6 /* mh */
            iconst_0
            aload 1 /* receiver */
            invokevirtual java.lang.invoke.MethodHandle.bindArgumentL:(ILjava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            aload 5 /* method */
            invokevirtual java.lang.invoke.BoundMethodHandle.setVarargs:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 6 // java.lang.invoke.MethodHandle mh
        end local 5 // java.lang.invoke.MemberName method
        end local 4 // java.lang.Class refc
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object receiver
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1  receiver  Ljava/lang/Object;
            0   10     2      name  Ljava/lang/String;
            0   10     3      type  Ljava/lang/invoke/MethodType;
            1   10     4      refc  Ljava/lang/Class<+Ljava/lang/Object;>;
            2   10     5    method  Ljava/lang/invoke/MemberName;
            3   10     6        mh  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    MethodParameters:
          Name  Flags
      receiver  
      name      
      type      

  public java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
         0: .line 1732
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/invoke/MethodHandle;
            if_acmpne 3
         1: .line 1733
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectForMH:(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
            astore 2 /* mh */
        start local 2 // java.lang.invoke.MethodHandle mh
         2: .line 1734
            aload 2 /* mh */
            ifnull 3
            aload 2 /* mh */
            areturn
        end local 2 // java.lang.invoke.MethodHandle mh
         3: .line 1736
      StackMap locals:
      StackMap stack:
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/invoke/VarHandle;
            if_acmpne 6
         4: .line 1737
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectForVH:(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
            astore 2 /* mh */
        start local 2 // java.lang.invoke.MethodHandle mh
         5: .line 1738
            aload 2 /* mh */
            ifnull 6
            aload 2 /* mh */
            areturn
        end local 2 // java.lang.invoke.MethodHandle mh
         6: .line 1740
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;)V
            astore 2 /* method */
        start local 2 // java.lang.invoke.MemberName method
         7: .line 1741
            aload 2 /* method */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            istore 3 /* refKind */
        start local 3 // byte refKind
         8: .line 1742
            iload 3 /* refKind */
            bipush 7
            if_icmpne 10
         9: .line 1743
            iconst_5
            istore 3 /* refKind */
        10: .line 1744
      StackMap locals: java.lang.invoke.MemberName int
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 11
            aload 2 /* method */
            invokevirtual java.lang.invoke.MemberName.isMethod:()Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1746
      StackMap locals:
      StackMap stack:
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.isAccessible:()Z
            ifeq 12
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandles$Lookup
        13: astore 4 /* lookup */
        start local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        14: .line 1747
            aload 4 /* lookup */
            iload 3 /* refKind */
            aload 2 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* method */
            aload 0 /* this */
            aload 2 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerClass:(Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 3 // byte refKind
        end local 2 // java.lang.invoke.MemberName method
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   15     1        m  Ljava/lang/reflect/Method;
            2    3     2       mh  Ljava/lang/invoke/MethodHandle;
            5    6     2       mh  Ljava/lang/invoke/MethodHandle;
            7   15     2   method  Ljava/lang/invoke/MemberName;
            8   15     3  refKind  B
           14   15     4   lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      m     

  private java.lang.invoke.MethodHandle unreflectForMH(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
         0: .line 1751
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MemberName.isMethodHandleInvokeName:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1752
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;)V
            invokestatic java.lang.invoke.MethodHandleImpl.fakeMethodHandleInvoke:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 1753
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1     m  Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      m     

  private java.lang.invoke.MethodHandle unreflectForVH(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
         0: .line 1757
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MemberName.isVarHandleMethodInvokeName:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1758
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;)V
            invokestatic java.lang.invoke.MethodHandleImpl.fakeVarHandleInvoke:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 1759
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1     m  Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      m     

  public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
        start local 2 // java.lang.Class specialCaller
         0: .line 1793
            aload 0 /* this */
            aload 2 /* specialCaller */
            aconst_null
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSpecialCaller:(Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 1794
            aload 0 /* this */
            aload 2 /* specialCaller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.in:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
            astore 3 /* specialLookup */
        start local 3 // java.lang.invoke.MethodHandles$Lookup specialLookup
         2: .line 1795
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            iconst_1
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;Z)V
            astore 4 /* method */
        start local 4 // java.lang.invoke.MemberName method
         3: .line 1796
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 4 /* method */
            invokevirtual java.lang.invoke.MemberName.isMethod:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1798
      StackMap locals: java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MemberName
      StackMap stack:
            aload 3 /* specialLookup */
            bipush 7
            aload 4 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 4 /* method */
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerClass:(Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName method
        end local 3 // java.lang.invoke.MethodHandles$Lookup specialLookup
        end local 2 // java.lang.Class specialCaller
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1              m  Ljava/lang/reflect/Method;
            0    5     2  specialCaller  Ljava/lang/Class<*>;
            2    5     3  specialLookup  Ljava/lang/invoke/MethodHandles$Lookup;
            3    5     4         method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/reflect/Method;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      m              
      specialCaller  

  public java.lang.invoke.MethodHandle unreflectConstructor(java.lang.reflect.Constructor<?>);
    descriptor: (Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Constructor c
         0: .line 1826
            new java.lang.invoke.MemberName
            dup
            aload 1 /* c */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Constructor;)V
            astore 2 /* ctor */
        start local 2 // java.lang.invoke.MemberName ctor
         1: .line 1827
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 2
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1829
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 1 /* c */
            invokevirtual java.lang.reflect.Constructor.isAccessible:()Z
            ifeq 3
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandles$Lookup
         4: astore 3 /* lookup */
        start local 3 // java.lang.invoke.MethodHandles$Lookup lookup
         5: .line 1830
            aload 3 /* lookup */
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.reflect.Constructor c
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1       c  Ljava/lang/reflect/Constructor<*>;
            1    6     2    ctor  Ljava/lang/invoke/MemberName;
            5    6     3  lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/reflect/Constructor<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      c     

  public java.lang.invoke.MethodHandle unreflectGetter(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
         0: .line 1852
            aload 0 /* this */
            aload 1 /* f */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectField:(Ljava/lang/reflect/Field;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1     f  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      f     

  private java.lang.invoke.MethodHandle unreflectField(java.lang.reflect.Field, boolean);
    descriptor: (Ljava/lang/reflect/Field;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
        start local 2 // boolean isSetter
         0: .line 1855
            new java.lang.invoke.MemberName
            dup
            aload 1 /* f */
            iload 2 /* isSetter */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Field;Z)V
            astore 3 /* field */
        start local 3 // java.lang.invoke.MemberName field
         1: .line 1856
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 5
            iload 2 /* isSetter */
            ifeq 3
         2: .line 1857
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsSetter:(B)Z
            ifne 5
            goto 4
         3: .line 1858
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsGetter:(B)Z
            ifne 5
      StackMap locals:
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1860
      StackMap locals:
      StackMap stack:
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.isAccessible:()Z
            ifeq 6
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandles$Lookup
         7: astore 4 /* lookup */
        start local 4 // java.lang.invoke.MethodHandles$Lookup lookup
         8: .line 1861
            aload 4 /* lookup */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // boolean isSetter
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1         f  Ljava/lang/reflect/Field;
            0    9     2  isSetter  Z
            1    9     3     field  Ljava/lang/invoke/MemberName;
            8    9     4    lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
          Name  Flags
      f         
      isSetter  

  public java.lang.invoke.MethodHandle unreflectSetter(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
         0: .line 1883
            aload 0 /* this */
            aload 1 /* f */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectField:(Ljava/lang/reflect/Field;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1     f  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      f     

  public java.lang.invoke.VarHandle unreflectVarHandle(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
         0: .line 1958
            new java.lang.invoke.MemberName
            dup
            aload 1 /* f */
            iconst_0
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Field;Z)V
            astore 2 /* getField */
        start local 2 // java.lang.invoke.MemberName getField
         1: .line 1959
            new java.lang.invoke.MemberName
            dup
            aload 1 /* f */
            iconst_1
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Field;Z)V
            astore 3 /* putField */
        start local 3 // java.lang.invoke.MemberName putField
         2: .line 1960
            aload 0 /* this */
            aload 2 /* getField */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            aload 3 /* putField */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
         3: .line 1961
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* getField */
            aload 3 /* putField */
         4: .line 1960
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleNoSecurityManager:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 3 // java.lang.invoke.MemberName putField
        end local 2 // java.lang.invoke.MemberName getField
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1         f  Ljava/lang/reflect/Field;
            1    5     2  getField  Ljava/lang/invoke/MemberName;
            2    5     3  putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      f     

  public java.lang.invoke.MethodHandleInfo revealDirect(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MethodHandle target
         0: .line 1983
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
            astore 2 /* member */
        start local 2 // java.lang.invoke.MemberName member
         1: .line 1984
            aload 2 /* member */
            ifnull 4
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.isResolved:()Z
            ifne 5
         2: .line 1985
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.isMethodHandleInvoke:()Z
            ifne 5
         3: .line 1986
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.isVarHandleMethodInvoke:()Z
            ifne 5
         4: .line 1987
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            ldc "not a direct method handle"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 1988
      StackMap locals:
      StackMap stack:
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            astore 3 /* defc */
        start local 3 // java.lang.Class defc
         6: .line 1989
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            istore 4 /* refKind */
        start local 4 // byte refKind
         7: .line 1990
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 8
            iload 4 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsValid:(I)Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 1991
      StackMap locals: java.lang.Class int
      StackMap stack:
            iload 4 /* refKind */
            bipush 7
            if_icmpne 10
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.isInvokeSpecial:()Z
            ifne 10
         9: .line 1995
            iconst_5
            istore 4 /* refKind */
        10: .line 1996
      StackMap locals:
      StackMap stack:
            iload 4 /* refKind */
            iconst_5
            if_icmpne 12
            aload 3 /* defc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 12
        11: .line 1998
            bipush 9
            istore 4 /* refKind */
        12: .line 2001
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* refKind */
            aload 3 /* defc */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
        13: .line 2002
            aload 0 /* this */
            aload 3 /* defc */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
        14: .line 2003
            goto 17
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
        15: astore 5 /* ex */
        start local 5 // java.lang.IllegalAccessException ex
        16: .line 2004
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.IllegalAccessException ex
        17: .line 2006
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpeq 21
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.isCallerSensitive:()Z
            ifeq 21
        18: .line 2007
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.internalCallerClass:()Ljava/lang/Class;
            astore 5 /* callerClass */
        start local 5 // java.lang.Class callerClass
        19: .line 2008
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasPrivateAccess:()Z
            ifeq 20
            aload 5 /* callerClass */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 21
        20: .line 2009
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "method handle is caller sensitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* callerClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class callerClass
        21: .line 2012
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.InfoFromMemberName
            dup
            aload 0 /* this */
            aload 2 /* member */
            iload 4 /* refKind */
            invokespecial java.lang.invoke.InfoFromMemberName.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/invoke/MemberName;B)V
            areturn
        end local 4 // byte refKind
        end local 3 // java.lang.Class defc
        end local 2 // java.lang.invoke.MemberName member
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   22     1       target  Ljava/lang/invoke/MethodHandle;
            1   22     2       member  Ljava/lang/invoke/MemberName;
            6   22     3         defc  Ljava/lang/Class<*>;
            7   22     4      refKind  B
           16   17     5           ex  Ljava/lang/IllegalAccessException;
           19   21     5  callerClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
          12    14      15  Class java.lang.IllegalAccessException
    MethodParameters:
        Name  Flags
      target  

  java.lang.invoke.MemberName resolveOrFail(byte, java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.String name
        start local 4 // java.lang.Class type
         0: .line 2018
            aload 0 /* this */
            aload 2 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         1: .line 2019
            aload 3 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2020
            aload 4 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2021
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            new java.lang.invoke.MemberName
            dup
            aload 2 /* refc */
            aload 3 /* name */
            aload 4 /* type */
            iload 1 /* refKind */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;B)V
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
         4: .line 2022
            ldc Ljava/lang/NoSuchFieldException;
         5: .line 2021
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 4 // java.lang.Class type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  refKind  B
            0    6     2     refc  Ljava/lang/Class<*>;
            0    6     3     name  Ljava/lang/String;
            0    6     4     type  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MemberName;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      name     
      type     

  java.lang.invoke.MemberName resolveOrFail(byte, java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.String name
        start local 4 // java.lang.invoke.MethodType type
         0: .line 2026
            aload 0 /* this */
            aload 2 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         1: .line 2027
            aload 3 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2028
            aload 4 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2029
            aload 0 /* this */
            iload 1 /* refKind */
            aload 3 /* name */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkMethodName:(BLjava/lang/String;)V
         4: .line 2030
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            new java.lang.invoke.MemberName
            dup
            aload 2 /* refc */
            aload 3 /* name */
            aload 4 /* type */
            iload 1 /* refKind */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
         5: .line 2031
            ldc Ljava/lang/NoSuchMethodException;
         6: .line 2030
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 4 // java.lang.invoke.MethodType type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    7     1  refKind  B
            0    7     2     refc  Ljava/lang/Class<*>;
            0    7     3     name  Ljava/lang/String;
            0    7     4     type  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      name     
      type     

  java.lang.invoke.MemberName resolveOrFail(byte, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.invoke.MemberName member
         0: .line 2035
            aload 0 /* this */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         1: .line 2036
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2037
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getType:()Ljava/lang/Object;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2038
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            aload 2 /* member */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
         4: .line 2039
            ldc Ljava/lang/ReflectiveOperationException;
         5: .line 2038
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 2 // java.lang.invoke.MemberName member
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  refKind  B
            0    6     2   member  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.ReflectiveOperationException
    MethodParameters:
         Name  Flags
      refKind  
      member   

  java.lang.invoke.MemberName resolveOrNull(byte, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.invoke.MemberName member
         0: .line 2044
            aload 0 /* this */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.isClassAccessible:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 2045
            aconst_null
            areturn
         2: .line 2047
      StackMap locals:
      StackMap stack:
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2048
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getType:()Ljava/lang/Object;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2049
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            aload 2 /* member */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrNull:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 2 // java.lang.invoke.MemberName member
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1  refKind  B
            0    5     2   member  Ljava/lang/invoke/MemberName;
    MethodParameters:
         Name  Flags
      refKind  
      member   

  void checkSymbolicClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
         0: .line 2053
            aload 0 /* this */
            aload 1 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.isClassAccessible:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 2054
            new java.lang.invoke.MemberName
            dup
            aload 1 /* refc */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
            ldc "symbolic reference class is not accessible"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         2: .line 2056
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1  refc  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      refc  

  boolean isClassAccessible(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
         0: .line 2059
            aload 1 /* refc */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 2060
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
            astore 2 /* caller */
        start local 2 // java.lang.Class caller
         2: .line 2061
            aload 2 /* caller */
            ifnull 3
            aload 1 /* refc */
            aload 2 /* caller */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 3
            iconst_0
            ireturn
      StackMap locals: java.lang.Class
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // java.lang.Class caller
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1    refc  Ljava/lang/Class<*>;
            2    4     2  caller  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      refc  

  void checkMethodName(byte, java.lang.String);
    descriptor: (BLjava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.String name
         0: .line 2066
            aload 2 /* name */
            ldc "<"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
            iload 1 /* refKind */
            bipush 8
            if_icmpeq 2
         1: .line 2067
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            ldc "illegal method name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            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
         2: .line 2068
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String name
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1  refKind  B
            0    3     2     name  Ljava/lang/String;
    Exceptions:
      throws java.lang.NoSuchMethodException
    MethodParameters:
         Name  Flags
      refKind  
      name     

  java.lang.Class<?> findBoundCallerClass(java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/invoke/MemberName;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName m
         0: .line 2077
            aconst_null
            astore 2 /* callerClass */
        start local 2 // java.lang.Class callerClass
         1: .line 2078
            aload 1 /* m */
            invokestatic java.lang.invoke.MethodHandleNatives.isCallerSensitive:(Ljava/lang/invoke/MemberName;)Z
            ifeq 6
         2: .line 2080
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasPrivateAccess:()Z
            ifeq 5
         3: .line 2081
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            astore 2 /* callerClass */
         4: .line 2082
            goto 6
         5: .line 2083
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.IllegalAccessException
            dup
            ldc "Attempt to lookup caller-sensitive method using restricted lookup object"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 2086
      StackMap locals:
      StackMap stack:
            aload 2 /* callerClass */
            areturn
        end local 2 // java.lang.Class callerClass
        end local 1 // java.lang.invoke.MemberName m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    7     1            m  Ljava/lang/invoke/MemberName;
            1    7     2  callerClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/invoke/MemberName;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      m     

  public boolean hasPrivateAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 2095
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_2
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/invoke/MethodHandles$Lookup;

  void checkSecurityManager(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName m
         0: .line 2104
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* smgr */
        start local 3 // java.lang.SecurityManager smgr
         1: .line 2105
            aload 3 /* smgr */
            ifnonnull 2
            return
         2: .line 2106
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 3
            return
         3: .line 2109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasPrivateAccess:()Z
            istore 4 /* fullPowerLookup */
        start local 4 // boolean fullPowerLookup
         4: .line 2110
            iload 4 /* fullPowerLookup */
            ifeq 6
         5: .line 2111
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* refc */
            invokestatic sun.invoke.util.VerifyAccess.classLoaderIsAncestor:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 7
         6: .line 2112
      StackMap locals: int
      StackMap stack:
            aload 1 /* refc */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
         7: .line 2115
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            ifnonnull 11
         8: .line 2117
            iload 4 /* fullPowerLookup */
            ifne 10
         9: .line 2118
            aload 3 /* smgr */
            getstatic sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        10: .line 2120
      StackMap locals:
      StackMap stack:
            return
        11: .line 2124
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.isPublic:()Z
            ifeq 12
            return
        12: .line 2125
      StackMap locals:
      StackMap stack:
            iload 4 /* fullPowerLookup */
            ifne 14
        13: .line 2126
            aload 3 /* smgr */
            getstatic sun.security.util.SecurityConstants.CHECK_MEMBER_ACCESS_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        14: .line 2130
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            astore 5 /* defc */
        start local 5 // java.lang.Class defc
        15: .line 2131
            iload 4 /* fullPowerLookup */
            ifne 17
            aload 5 /* defc */
            aload 1 /* refc */
            if_acmpeq 17
        16: .line 2132
            aload 5 /* defc */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        17: .line 2134
      StackMap locals: java.lang.Class
      StackMap stack:
            return
        end local 5 // java.lang.Class defc
        end local 4 // boolean fullPowerLookup
        end local 3 // java.lang.SecurityManager smgr
        end local 2 // java.lang.invoke.MemberName m
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   18     1             refc  Ljava/lang/Class<*>;
            0   18     2                m  Ljava/lang/invoke/MemberName;
            1   18     3             smgr  Ljava/lang/SecurityManager;
            4   18     4  fullPowerLookup  Z
           15   18     5             defc  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
      Name  Flags
      refc  
      m     

  void checkMethod(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName m
         0: .line 2137
            iload 1 /* refKind */
            bipush 6
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* wantStatic */
        start local 4 // boolean wantStatic
         3: .line 2139
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
            ifeq 6
         4: .line 2140
            ldc "expected a method, not a constructor"
            astore 5 /* message */
        start local 5 // java.lang.String message
         5: goto 15
        end local 5 // java.lang.String message
         6: .line 2141
      StackMap locals: int
      StackMap stack:
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isMethod:()Z
            ifne 9
         7: .line 2142
            ldc "expected a method"
            astore 5 /* message */
        start local 5 // java.lang.String message
         8: goto 15
        end local 5 // java.lang.String message
         9: .line 2143
      StackMap locals:
      StackMap stack:
            iload 4 /* wantStatic */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            if_icmpeq 14
        10: .line 2144
            iload 4 /* wantStatic */
            ifeq 11
            ldc "expected a static method"
            goto 12
      StackMap locals:
      StackMap stack:
        11: ldc "expected a non-static method"
      StackMap locals:
      StackMap stack: java.lang.String
        12: astore 5 /* message */
        start local 5 // java.lang.String message
        13: goto 15
        end local 5 // java.lang.String message
        14: .line 2146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
            return
        start local 5 // java.lang.String message
        15: .line 2147
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* m */
            aload 5 /* message */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 5 // java.lang.String message
        end local 4 // boolean wantStatic
        end local 3 // java.lang.invoke.MemberName m
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   16     1     refKind  B
            0   16     2        refc  Ljava/lang/Class<*>;
            0   16     3           m  Ljava/lang/invoke/MemberName;
            3   16     4  wantStatic  Z
            5    6     5     message  Ljava/lang/String;
            8    9     5     message  Ljava/lang/String;
           13   14     5     message  Ljava/lang/String;
           15   16     5     message  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      m        

  void checkField(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName m
         0: .line 2151
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* wantStatic */
        start local 4 // boolean wantStatic
         3: .line 2153
            iload 4 /* wantStatic */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            if_icmpeq 8
         4: .line 2154
            iload 4 /* wantStatic */
            ifeq 5
            ldc "expected a static field"
            goto 6
      StackMap locals: int
      StackMap stack:
         5: ldc "expected a non-static field"
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 5 /* message */
        start local 5 // java.lang.String message
         7: goto 9
        end local 5 // java.lang.String message
         8: .line 2156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
            return
        start local 5 // java.lang.String message
         9: .line 2157
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* m */
            aload 5 /* message */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 5 // java.lang.String message
        end local 4 // boolean wantStatic
        end local 3 // java.lang.invoke.MemberName m
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1     refKind  B
            0   10     2        refc  Ljava/lang/Class<*>;
            0   10     3           m  Ljava/lang/invoke/MemberName;
            3   10     4  wantStatic  Z
            7    8     5     message  Ljava/lang/String;
            9   10     5     message  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      m        

  void checkAccess(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName m
         0: .line 2162
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 3 /* m */
            iload 1 /* refKind */
            invokevirtual java.lang.invoke.MemberName.referenceKindIsConsistentWith:(I)Z
            ifeq 3
         1: .line 2163
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsValid:(I)Z
            ifeq 3
         2: .line 2164
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsField:(B)Z
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isField:()Z
            if_icmpeq 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            istore 4 /* allowedModes */
        start local 4 // int allowedModes
         5: .line 2166
            iload 4 /* allowedModes */
            iconst_m1
            if_icmpne 6
            return
         6: .line 2167
      StackMap locals: int
      StackMap stack:
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getModifiers:()I
            istore 5 /* mods */
        start local 5 // int mods
         7: .line 2168
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifeq 13
         8: .line 2169
            iload 1 /* refKind */
            iconst_5
            if_icmpne 13
         9: .line 2170
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 13
        10: .line 2171
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            ldc "clone"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 2172
            aload 2 /* refc */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 13
        12: .line 2186
            iload 5 /* mods */
            iconst_5
            ixor
            istore 5 /* mods */
        13: .line 2188
      StackMap locals: int
      StackMap stack:
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifeq 15
            iload 1 /* refKind */
            bipush 8
            if_icmpne 15
        14: .line 2190
            iload 5 /* mods */
            iconst_4
            ixor
            istore 5 /* mods */
        15: .line 2192
      StackMap locals:
      StackMap stack:
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifeq 18
        16: .line 2193
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsSetter:(B)Z
            ifeq 18
        17: .line 2194
            aload 3 /* m */
            ldc "unexpected set of a final field"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        18: .line 2195
      StackMap locals:
      StackMap stack:
            iload 5 /* mods */
            invokestatic java.lang.invoke.MethodHandles$Lookup.fixmods:(I)I
            istore 6 /* requestedModes */
        start local 6 // int requestedModes
        19: .line 2196
            iload 6 /* requestedModes */
            iload 4 /* allowedModes */
            iand
            ifeq 25
        20: .line 2197
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
        21: .line 2198
            iload 5 /* mods */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            iload 4 /* allowedModes */
        22: .line 2197
            invokestatic sun.invoke.util.VerifyAccess.isMemberAccessible:(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Class;I)Z
        23: .line 2198
            ifeq 28
        24: .line 2199
            return
        25: .line 2202
      StackMap locals: int
      StackMap stack:
            iload 6 /* requestedModes */
            iconst_4
            iand
            ifeq 28
            iload 4 /* allowedModes */
            bipush 8
            iand
            ifeq 28
        26: .line 2203
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifeq 28
        27: .line 2204
            return
        28: .line 2206
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            aload 0 /* this */
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.accessFailedMessage:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/String;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 6 // int requestedModes
        end local 5 // int mods
        end local 4 // int allowedModes
        end local 3 // java.lang.invoke.MemberName m
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   29     1         refKind  B
            0   29     2            refc  Ljava/lang/Class<*>;
            0   29     3               m  Ljava/lang/invoke/MemberName;
            5   29     4    allowedModes  I
            7   29     5            mods  I
           19   29     6  requestedModes  I
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      m        

  java.lang.String accessFailedMessage(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName m
         0: .line 2210
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            astore 3 /* defc */
        start local 3 // java.lang.Class defc
         1: .line 2211
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.getModifiers:()I
            istore 4 /* mods */
        start local 4 // int mods
         2: .line 2213
            aload 3 /* defc */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         3: .line 2214
            aload 3 /* defc */
            aload 1 /* refc */
            if_acmpeq 5
         4: .line 2215
            aload 1 /* refc */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         5: .line 2213
      StackMap locals: java.lang.Class int
      StackMap stack:
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 5 /* classOK */
        start local 5 // boolean classOK
         8: .line 2216
            iload 5 /* classOK */
            ifne 15
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 8
            iand
            ifeq 15
         9: .line 2217
            aload 3 /* defc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            bipush 31
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifeq 13
        10: .line 2218
            aload 3 /* defc */
            aload 1 /* refc */
            if_acmpeq 12
        11: .line 2219
            aload 1 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            bipush 31
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifeq 13
        12: .line 2217
      StackMap locals: int
      StackMap stack:
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 5 /* classOK */
        15: .line 2221
      StackMap locals:
      StackMap stack:
            iload 5 /* classOK */
            ifne 17
        16: .line 2222
            ldc "class is not public"
            areturn
        17: .line 2223
      StackMap locals:
      StackMap stack:
            iload 4 /* mods */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 19
        18: .line 2224
            ldc "access to public member failed"
            areturn
        19: .line 2225
      StackMap locals:
      StackMap stack:
            iload 4 /* mods */
            invokestatic java.lang.reflect.Modifier.isPrivate:(I)Z
            ifeq 21
        20: .line 2226
            ldc "member is private"
            areturn
        21: .line 2227
      StackMap locals:
      StackMap stack:
            iload 4 /* mods */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifeq 23
        22: .line 2228
            ldc "member is protected"
            areturn
        23: .line 2229
      StackMap locals:
      StackMap stack:
            ldc "member is private to package"
            areturn
        end local 5 // boolean classOK
        end local 4 // int mods
        end local 3 // java.lang.Class defc
        end local 2 // java.lang.invoke.MemberName m
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   24     1     refc  Ljava/lang/Class<*>;
            0   24     2        m  Ljava/lang/invoke/MemberName;
            1   24     3     defc  Ljava/lang/Class<*>;
            2   24     4     mods  I
            8   24     5  classOK  Z
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      refc  
      m     

  private void checkSpecialCaller(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class specialCaller
        start local 2 // java.lang.Class refc
         0: .line 2233
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            istore 3 /* allowedModes */
        start local 3 // int allowedModes
         1: .line 2234
            iload 3 /* allowedModes */
            iconst_m1
            if_icmpne 2
            return
         2: .line 2235
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasPrivateAccess:()Z
            ifeq 5
         3: .line 2236
            aload 1 /* specialCaller */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 8
         4: .line 2238
            aload 2 /* refc */
            ifnull 5
            aload 2 /* refc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 5
            aload 2 /* refc */
            aload 1 /* specialCaller */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         5: .line 2239
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MemberName
            dup
            aload 1 /* specialCaller */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
         6: .line 2240
            ldc "no private access for invokespecial"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
         7: .line 2239
            athrow
         8: .line 2241
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int allowedModes
        end local 2 // java.lang.Class refc
        end local 1 // java.lang.Class specialCaller
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1  specialCaller  Ljava/lang/Class<*>;
            0    9     2           refc  Ljava/lang/Class<*>;
            1    9     3   allowedModes  I
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
               Name  Flags
      specialCaller  
      refc           

  private boolean restrictProtectedReceiver(java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/invoke/MemberName;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName method
         0: .line 2246
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.isProtected:()Z
            ifeq 4
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifne 4
         1: .line 2247
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpeq 4
         2: .line 2248
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 2249
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifeq 5
         4: .line 2250
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 2251
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.invoke.MemberName method
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  method  Ljava/lang/invoke/MemberName;
    MethodParameters:
        Name  Flags
      method  

  private java.lang.invoke.MethodHandle restrictReceiver(java.lang.invoke.MemberName, java.lang.invoke.DirectMethodHandle, java.lang.Class<?>);
    descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName method
        start local 2 // java.lang.invoke.DirectMethodHandle mh
        start local 3 // java.lang.Class caller
         0: .line 2254
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 1
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2256
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 3 /* caller */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 2257
            aload 1 /* method */
            ldc "caller class must be a subclass below the method"
            aload 3 /* caller */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         3: .line 2259
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            invokevirtual java.lang.invoke.DirectMethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* rawType */
        start local 4 // java.lang.invoke.MethodType rawType
         4: .line 2260
            aload 3 /* caller */
            aload 4 /* rawType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
            aload 2 /* mh */
            areturn
         5: .line 2261
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 4 /* rawType */
            iconst_0
            aload 3 /* caller */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 5 /* narrowType */
        start local 5 // java.lang.invoke.MethodType narrowType
         6: .line 2262
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 7
            aload 2 /* mh */
            invokevirtual java.lang.invoke.DirectMethodHandle.isVarargsCollector:()Z
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 2263
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 8
            aload 2 /* mh */
            aload 5 /* narrowType */
            iconst_1
            invokevirtual java.lang.invoke.DirectMethodHandle.viewAsTypeChecks:(Ljava/lang/invoke/MethodType;Z)Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 2264
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            aload 5 /* narrowType */
            aload 2 /* mh */
            getfield java.lang.invoke.DirectMethodHandle.form:Ljava/lang/invoke/LambdaForm;
            invokevirtual java.lang.invoke.DirectMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 5 // java.lang.invoke.MethodType narrowType
        end local 4 // java.lang.invoke.MethodType rawType
        end local 3 // java.lang.Class caller
        end local 2 // java.lang.invoke.DirectMethodHandle mh
        end local 1 // java.lang.invoke.MemberName method
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1      method  Ljava/lang/invoke/MemberName;
            0    9     2          mh  Ljava/lang/invoke/DirectMethodHandle;
            0    9     3      caller  Ljava/lang/Class<*>;
            4    9     4     rawType  Ljava/lang/invoke/MethodType;
            6    9     5  narrowType  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      method  
      mh      
      caller  

  private java.lang.invoke.MethodHandle getDirectMethod(byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.Class<?>);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName method
        start local 4 // java.lang.Class boundCallerClass
         0: .line 2271
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            iconst_1
            iconst_1
            aload 4 /* boundCallerClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.Class boundCallerClass
        end local 3 // java.lang.invoke.MemberName method
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1           refKind  B
            0    1     2              refc  Ljava/lang/Class<*>;
            0    1     3            method  Ljava/lang/invoke/MemberName;
            0    1     4  boundCallerClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                  Name  Flags
      refKind           
      refc              
      method            
      boundCallerClass  

  private java.lang.invoke.MethodHandle getDirectMethodNoRestrictInvokeSpecial(java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName method
        start local 3 // java.lang.Class boundCallerClass
         0: .line 2277
            aload 0 /* this */
            bipush 7
            aload 1 /* refc */
            aload 2 /* method */
            iconst_1
            iconst_0
            aload 3 /* boundCallerClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.Class boundCallerClass
        end local 2 // java.lang.invoke.MemberName method
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1              refc  Ljava/lang/Class<*>;
            0    1     2            method  Ljava/lang/invoke/MemberName;
            0    1     3  boundCallerClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                  Name  Flags
      refc              
      method            
      boundCallerClass  

  private java.lang.invoke.MethodHandle getDirectMethodNoSecurityManager(byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.Class<?>);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName method
        start local 4 // java.lang.Class boundCallerClass
         0: .line 2283
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            iconst_0
            iconst_1
            aload 4 /* boundCallerClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.Class boundCallerClass
        end local 3 // java.lang.invoke.MemberName method
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1           refKind  B
            0    1     2              refc  Ljava/lang/Class<*>;
            0    1     3            method  Ljava/lang/invoke/MemberName;
            0    1     4  boundCallerClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                  Name  Flags
      refKind           
      refc              
      method            
      boundCallerClass  

  private java.lang.invoke.MethodHandle getDirectMethodCommon(byte, java.lang.Class<?>, java.lang.invoke.MemberName, boolean, boolean, java.lang.Class<?>);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=7
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName method
        start local 4 // boolean checkSecurity
        start local 5 // boolean doRestrict
        start local 6 // java.lang.Class boundCallerClass
         0: .line 2290
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         1: .line 2292
            iload 4 /* checkSecurity */
            ifeq 3
         2: .line 2293
            aload 0 /* this */
            aload 2 /* refc */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         3: .line 2294
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.isMethodHandleInvoke:()Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2296
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            bipush 7
            if_icmpne 24
         5: .line 2297
            aload 2 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 24
         6: .line 2298
            aload 2 /* refc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 24
         7: .line 2299
            aload 2 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            if_acmpeq 24
         8: .line 2300
            aload 2 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 24
         9: .line 2301
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 10
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            ldc "<init>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 2310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            astore 7 /* refcAsSuper */
        start local 7 // java.lang.Class refcAsSuper
        11: .line 2313
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 7 /* refcAsSuper */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 7 /* refcAsSuper */
        12: .line 2314
            new java.lang.invoke.MemberName
            dup
            aload 7 /* refcAsSuper */
        13: .line 2315
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
        14: .line 2316
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
        15: .line 2317
            bipush 7
        16: .line 2314
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
            astore 8 /* m2 */
        start local 8 // java.lang.invoke.MemberName m2
        17: .line 2318
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            aload 8 /* m2 */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrNull:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 8 /* m2 */
        18: .line 2319
            aload 8 /* m2 */
            ifnonnull 20
        19: .line 2320
            aload 2 /* refc */
            aload 7 /* refcAsSuper */
            if_acmpne 11
        20: .line 2321
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 8 /* m2 */
            ifnonnull 21
            new java.lang.InternalError
            dup
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 2322
      StackMap locals:
      StackMap stack:
            aload 8 /* m2 */
            astore 3 /* method */
        22: .line 2323
            aload 7 /* refcAsSuper */
            astore 2 /* refc */
        23: .line 2325
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
        end local 8 // java.lang.invoke.MemberName m2
        end local 7 // java.lang.Class refcAsSuper
        24: .line 2328
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokestatic java.lang.invoke.DirectMethodHandle.make:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/DirectMethodHandle;
            astore 7 /* dmh */
        start local 7 // java.lang.invoke.DirectMethodHandle dmh
        25: .line 2329
            aload 7 /* dmh */
            astore 8 /* mh */
        start local 8 // java.lang.invoke.MethodHandle mh
        26: .line 2331
            iload 5 /* doRestrict */
            ifeq 27
            iload 1 /* refKind */
            bipush 7
            if_icmpeq 28
        27: .line 2332
      StackMap locals: java.lang.invoke.DirectMethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 29
            aload 0 /* this */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictProtectedReceiver:(Ljava/lang/invoke/MemberName;)Z
            ifeq 29
        28: .line 2333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* method */
            aload 7 /* dmh */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictReceiver:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        29: .line 2335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* method */
            aload 8 /* mh */
            aload 6 /* boundCallerClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.maybeBindCaller:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        30: .line 2336
            aload 8 /* mh */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandle.setVarargs:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        31: .line 2337
            aload 8 /* mh */
            areturn
        end local 8 // java.lang.invoke.MethodHandle mh
        end local 7 // java.lang.invoke.DirectMethodHandle dmh
        end local 6 // java.lang.Class boundCallerClass
        end local 5 // boolean doRestrict
        end local 4 // boolean checkSecurity
        end local 3 // java.lang.invoke.MemberName method
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   32     1           refKind  B
            0   32     2              refc  Ljava/lang/Class<*>;
            0   32     3            method  Ljava/lang/invoke/MemberName;
            0   32     4     checkSecurity  Z
            0   32     5        doRestrict  Z
            0   32     6  boundCallerClass  Ljava/lang/Class<*>;
           11   24     7       refcAsSuper  Ljava/lang/Class<*>;
           17   24     8                m2  Ljava/lang/invoke/MemberName;
           25   32     7               dmh  Ljava/lang/invoke/DirectMethodHandle;
           26   32     8                mh  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;ZZLjava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                  Name  Flags
      refKind           
      refc              
      method            
      checkSecurity     
      doRestrict        
      boundCallerClass  

  private java.lang.invoke.MethodHandle maybeBindCaller(java.lang.invoke.MemberName, java.lang.invoke.MethodHandle, java.lang.Class<?>);
    descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName method
        start local 2 // java.lang.invoke.MethodHandle mh
        start local 3 // java.lang.Class boundCallerClass
         0: .line 2342
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpeq 1
            aload 1 /* method */
            invokestatic java.lang.invoke.MethodHandleNatives.isCallerSensitive:(Ljava/lang/invoke/MemberName;)Z
            ifne 2
         1: .line 2343
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            areturn
         2: .line 2344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            astore 4 /* hostClass */
        start local 4 // java.lang.Class hostClass
         3: .line 2345
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasPrivateAccess:()Z
            ifne 5
         4: .line 2346
            aload 3 /* boundCallerClass */
            astore 4 /* hostClass */
         5: .line 2347
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* mh */
            aload 4 /* hostClass */
            invokestatic java.lang.invoke.MethodHandleImpl.bindCaller:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 5 /* cbmh */
        start local 5 // java.lang.invoke.MethodHandle cbmh
         6: .line 2349
            aload 5 /* cbmh */
            areturn
        end local 5 // java.lang.invoke.MethodHandle cbmh
        end local 4 // java.lang.Class hostClass
        end local 3 // java.lang.Class boundCallerClass
        end local 2 // java.lang.invoke.MethodHandle mh
        end local 1 // java.lang.invoke.MemberName method
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    7     1            method  Ljava/lang/invoke/MemberName;
            0    7     2                mh  Ljava/lang/invoke/MethodHandle;
            0    7     3  boundCallerClass  Ljava/lang/Class<*>;
            3    7     4         hostClass  Ljava/lang/Class<*>;
            6    7     5              cbmh  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                  Name  Flags
      method            
      mh                
      boundCallerClass  

  private java.lang.invoke.MethodHandle getDirectField(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName field
         0: .line 2354
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* field */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refKind  B
            0    1     2     refc  Ljava/lang/Class<*>;
            0    1     3    field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      field    

  private java.lang.invoke.MethodHandle getDirectFieldNoSecurityManager(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName field
         0: .line 2359
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* field */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refKind  B
            0    1     2     refc  Ljava/lang/Class<*>;
            0    1     3    field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      field    

  private java.lang.invoke.MethodHandle getDirectFieldCommon(byte, java.lang.Class<?>, java.lang.invoke.MemberName, boolean);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName field
        start local 4 // boolean checkSecurity
         0: .line 2364
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         1: .line 2366
            iload 4 /* checkSecurity */
            ifeq 3
         2: .line 2367
            aload 0 /* this */
            aload 2 /* refc */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         3: .line 2368
      StackMap locals:
      StackMap stack:
            aload 2 /* refc */
            aload 3 /* field */
            invokestatic java.lang.invoke.DirectMethodHandle.make:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/DirectMethodHandle;
            astore 5 /* dmh */
        start local 5 // java.lang.invoke.DirectMethodHandle dmh
         4: .line 2369
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 7
         5: .line 2370
            aload 0 /* this */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictProtectedReceiver:(Ljava/lang/invoke/MemberName;)Z
            ifeq 7
         6: .line 2369
            iconst_1
            goto 8
      StackMap locals: java.lang.invoke.DirectMethodHandle
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 6 /* doRestrict */
        start local 6 // boolean doRestrict
         9: .line 2371
            iload 6 /* doRestrict */
            ifeq 11
        10: .line 2372
            aload 0 /* this */
            aload 3 /* field */
            aload 5 /* dmh */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictReceiver:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        11: .line 2373
      StackMap locals: int
      StackMap stack:
            aload 5 /* dmh */
            areturn
        end local 6 // boolean doRestrict
        end local 5 // java.lang.invoke.DirectMethodHandle dmh
        end local 4 // boolean checkSecurity
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   12     1        refKind  B
            0   12     2           refc  Ljava/lang/Class<*>;
            0   12     3          field  Ljava/lang/invoke/MemberName;
            0   12     4  checkSecurity  Z
            4   12     5            dmh  Ljava/lang/invoke/DirectMethodHandle;
            9   12     6     doRestrict  Z
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refKind        
      refc           
      field          
      checkSecurity  

  private java.lang.invoke.VarHandle getFieldVarHandle(byte, byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MemberName);
    descriptor: (BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte getRefKind
        start local 2 // byte putRefKind
        start local 3 // java.lang.Class refc
        start local 4 // java.lang.invoke.MemberName getField
        start local 5 // java.lang.invoke.MemberName putField
         0: .line 2379
            aload 0 /* this */
            iload 1 /* getRefKind */
            iload 2 /* putRefKind */
            aload 3 /* refc */
            aload 4 /* getField */
            aload 5 /* putField */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class refc
        end local 2 // byte putRefKind
        end local 1 // byte getRefKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  getRefKind  B
            0    1     2  putRefKind  B
            0    1     3        refc  Ljava/lang/Class<*>;
            0    1     4    getField  Ljava/lang/invoke/MemberName;
            0    1     5    putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BBLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
            Name  Flags
      getRefKind  
      putRefKind  
      refc        
      getField    
      putField    

  private java.lang.invoke.VarHandle getFieldVarHandleNoSecurityManager(byte, byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MemberName);
    descriptor: (BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte getRefKind
        start local 2 // byte putRefKind
        start local 3 // java.lang.Class refc
        start local 4 // java.lang.invoke.MemberName getField
        start local 5 // java.lang.invoke.MemberName putField
         0: .line 2385
            aload 0 /* this */
            iload 1 /* getRefKind */
            iload 2 /* putRefKind */
            aload 3 /* refc */
            aload 4 /* getField */
            aload 5 /* putField */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class refc
        end local 2 // byte putRefKind
        end local 1 // byte getRefKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  getRefKind  B
            0    1     2  putRefKind  B
            0    1     3        refc  Ljava/lang/Class<*>;
            0    1     4    getField  Ljava/lang/invoke/MemberName;
            0    1     5    putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BBLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
            Name  Flags
      getRefKind  
      putRefKind  
      refc        
      getField    
      putField    

  private java.lang.invoke.VarHandle getFieldVarHandleCommon(byte, byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MemberName, boolean);
    descriptor: (BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=7
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte getRefKind
        start local 2 // byte putRefKind
        start local 3 // java.lang.Class refc
        start local 4 // java.lang.invoke.MemberName getField
        start local 5 // java.lang.invoke.MemberName putField
        start local 6 // boolean checkSecurity
         0: .line 2390
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 1
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2391
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 3
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isGetter:()Z
            ifeq 2
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MemberName.isSetter:()Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 2392
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            iload 1 /* getRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsStatic:(B)Z
            iload 2 /* putRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsStatic:(B)Z
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2393
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 6
            iload 1 /* getRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsGetter:(B)Z
            ifeq 5
            iload 2 /* putRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsSetter:(B)Z
            ifne 6
      StackMap locals:
      StackMap stack:
         5: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 2395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* getRefKind */
            aload 3 /* refc */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         7: .line 2396
            iload 6 /* checkSecurity */
            ifeq 9
         8: .line 2397
            aload 0 /* this */
            aload 3 /* refc */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         9: .line 2399
      StackMap locals:
      StackMap stack:
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MemberName.isFinal:()Z
            ifne 13
        10: .line 2404
            aload 0 /* this */
            iload 2 /* putRefKind */
            aload 3 /* refc */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
        11: .line 2405
            iload 6 /* checkSecurity */
            ifeq 13
        12: .line 2406
            aload 0 /* this */
            aload 3 /* refc */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
        13: .line 2409
      StackMap locals:
      StackMap stack:
            iload 1 /* getRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 16
        14: .line 2410
            aload 0 /* this */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictProtectedReceiver:(Ljava/lang/invoke/MemberName;)Z
            ifeq 16
        15: .line 2409
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 7 /* doRestrict */
        start local 7 // boolean doRestrict
        18: .line 2411
            iload 7 /* doRestrict */
            ifeq 23
        19: .line 2412
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 20
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 2414
      StackMap locals: int
      StackMap stack:
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 22
        21: .line 2415
            aload 4 /* getField */
            ldc "caller class must be a subclass below the method"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        22: .line 2417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            astore 3 /* refc */
        23: .line 2419
      StackMap locals:
      StackMap stack:
            aload 4 /* getField */
            aload 3 /* refc */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.getFieldType:()Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 24
            iconst_1
            goto 25
      StackMap locals: java.lang.invoke.MethodHandles$Lookup int int java.lang.Class java.lang.invoke.MemberName java.lang.invoke.MemberName int int
      StackMap stack: java.lang.invoke.MemberName java.lang.Class java.lang.Class
        24: iconst_0
      StackMap locals: java.lang.invoke.MethodHandles$Lookup int int java.lang.Class java.lang.invoke.MemberName java.lang.invoke.MemberName int int
      StackMap stack: java.lang.invoke.MemberName java.lang.Class java.lang.Class int
        25: invokestatic java.lang.invoke.VarHandles.makeFieldHandle:(Ljava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 7 // boolean doRestrict
        end local 6 // boolean checkSecurity
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class refc
        end local 2 // byte putRefKind
        end local 1 // byte getRefKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   26     1     getRefKind  B
            0   26     2     putRefKind  B
            0   26     3           refc  Ljava/lang/Class<*>;
            0   26     4       getField  Ljava/lang/invoke/MemberName;
            0   26     5       putField  Ljava/lang/invoke/MemberName;
            0   26     6  checkSecurity  Z
           18   26     7     doRestrict  Z
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BBLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
    MethodParameters:
               Name  Flags
      getRefKind     
      putRefKind     
      refc           
      getField       
      putField       
      checkSecurity  

  private java.lang.invoke.MethodHandle getDirectConstructor(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName ctor
         0: .line 2424
            aload 0 /* this */
            aload 1 /* refc */
            aload 2 /* ctor */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refc  Ljava/lang/Class<*>;
            0    1     2  ctor  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      ctor  

  private java.lang.invoke.MethodHandle getDirectConstructorNoSecurityManager(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName ctor
         0: .line 2429
            aload 0 /* this */
            aload 1 /* refc */
            aload 2 /* ctor */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refc  Ljava/lang/Class<*>;
            0    1     2  ctor  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      ctor  

  private java.lang.invoke.MethodHandle getDirectConstructorCommon(java.lang.Class<?>, java.lang.invoke.MemberName, boolean);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName ctor
        start local 3 // boolean checkSecurity
         0: .line 2434
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 1
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 8
            aload 1 /* refc */
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         2: .line 2437
            iload 3 /* checkSecurity */
            ifeq 4
         3: .line 2438
            aload 0 /* this */
            aload 1 /* refc */
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         4: .line 2439
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 5
            aload 2 /* ctor */
            invokestatic java.lang.invoke.MethodHandleNatives.isCallerSensitive:(Ljava/lang/invoke/MemberName;)Z
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 2440
      StackMap locals:
      StackMap stack:
            aload 2 /* ctor */
            invokestatic java.lang.invoke.DirectMethodHandle.make:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/DirectMethodHandle;
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.DirectMethodHandle.setVarargs:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // boolean checkSecurity
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1           refc  Ljava/lang/Class<*>;
            0    6     2           ctor  Ljava/lang/invoke/MemberName;
            0    6     3  checkSecurity  Z
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refc           
      ctor           
      checkSecurity  

  java.lang.invoke.MethodHandle linkMethodHandleConstant(byte, java.lang.Class<?>, java.lang.String, );
    descriptor: (BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class defc
        start local 3 // java.lang.String name
        start local 4 // java.lang.Object type
         0: .line 2447
            aload 4 /* type */
            instanceof java.lang.Class
            ifne 2
            aload 4 /* type */
            instanceof java.lang.invoke.MethodType
            ifne 2
         1: .line 2448
            new java.lang.InternalError
            dup
            ldc "unresolved MemberName"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2449
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MemberName
            dup
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* name */
            aload 4 /* type */
            invokespecial java.lang.invoke.MemberName.<init>:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* member */
        start local 5 // java.lang.invoke.MemberName member
         3: .line 2450
            getstatic java.lang.invoke.MethodHandles$Lookup.LOOKASIDE_TABLE:Ljava/util/concurrent/ConcurrentHashMap;
            aload 5 /* member */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 6 /* mh */
        start local 6 // java.lang.invoke.MethodHandle mh
         4: .line 2451
            aload 6 /* mh */
            ifnull 7
         5: .line 2452
            aload 0 /* this */
            aload 2 /* defc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         6: .line 2453
            aload 6 /* mh */
            areturn
         7: .line 2455
      StackMap locals: java.lang.invoke.MemberName java.lang.invoke.MethodHandle
      StackMap stack:
            aload 2 /* defc */
            ldc Ljava/lang/invoke/MethodHandle;
            if_acmpne 11
            iload 1 /* refKind */
            iconst_5
            if_icmpne 11
         8: .line 2457
            aload 0 /* this */
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForMH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
         9: .line 2458
            aload 6 /* mh */
            ifnull 15
        10: .line 2459
            aload 6 /* mh */
            areturn
        11: .line 2461
      StackMap locals:
      StackMap stack:
            aload 2 /* defc */
            ldc Ljava/lang/invoke/VarHandle;
            if_acmpne 15
            iload 1 /* refKind */
            iconst_5
            if_icmpne 15
        12: .line 2463
            aload 0 /* this */
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForVH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
        13: .line 2464
            aload 6 /* mh */
            ifnull 15
        14: .line 2465
            aload 6 /* mh */
            areturn
        15: .line 2468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* refKind */
            aload 5 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
            astore 7 /* resolved */
        start local 7 // java.lang.invoke.MemberName resolved
        16: .line 2469
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 7 /* resolved */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
        17: .line 2470
            aload 6 /* mh */
            instanceof java.lang.invoke.DirectMethodHandle
            ifeq 24
        18: .line 2471
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 7 /* resolved */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.canBeCached:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Z
            ifeq 24
        19: .line 2472
            aload 6 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
            astore 8 /* key */
        start local 8 // java.lang.invoke.MemberName key
        20: .line 2473
            aload 8 /* key */
            ifnull 22
        21: .line 2474
            aload 8 /* key */
            invokevirtual java.lang.invoke.MemberName.asNormalOriginal:()Ljava/lang/invoke/MemberName;
            astore 8 /* key */
        22: .line 2476
      StackMap locals: java.lang.invoke.MemberName java.lang.invoke.MemberName
      StackMap stack:
            aload 5 /* member */
            aload 8 /* key */
            invokevirtual java.lang.invoke.MemberName.equals:(Ljava/lang/invoke/MemberName;)Z
            ifeq 24
        23: .line 2477
            getstatic java.lang.invoke.MethodHandles$Lookup.LOOKASIDE_TABLE:Ljava/util/concurrent/ConcurrentHashMap;
            aload 8 /* key */
            aload 6 /* mh */
            checkcast java.lang.invoke.DirectMethodHandle
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.invoke.MemberName key
        24: .line 2480
      StackMap locals:
      StackMap stack:
            aload 6 /* mh */
            areturn
        end local 7 // java.lang.invoke.MemberName resolved
        end local 6 // java.lang.invoke.MethodHandle mh
        end local 5 // java.lang.invoke.MemberName member
        end local 4 // java.lang.Object type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class defc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   25     1   refKind  B
            0   25     2      defc  Ljava/lang/Class<*>;
            0   25     3      name  Ljava/lang/String;
            0   25     4      type  Ljava/lang/Object;
            3   25     5    member  Ljava/lang/invoke/MemberName;
            4   25     6        mh  Ljava/lang/invoke/MethodHandle;
           16   25     7  resolved  Ljava/lang/invoke/MemberName;
           20   24     8       key  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.ReflectiveOperationException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      defc     
      name     
      type     

  private boolean canBeCached(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class defc
        start local 3 // java.lang.invoke.MemberName member
         0: .line 2484
            iload 1 /* refKind */
            bipush 7
            if_icmpne 2
         1: .line 2485
            iconst_0
            ireturn
         2: .line 2487
      StackMap locals:
      StackMap stack:
            aload 2 /* defc */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         3: .line 2488
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         4: .line 2489
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.isPublic:()Z
            ifeq 6
         5: .line 2490
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.isCallerSensitive:()Z
            ifeq 7
         6: .line 2491
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 2493
      StackMap locals:
      StackMap stack:
            aload 2 /* defc */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* loader */
        start local 4 // java.lang.ClassLoader loader
         8: .line 2494
            aload 4 /* loader */
            ifnull 17
         9: .line 2495
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* sysl */
        start local 5 // java.lang.ClassLoader sysl
        10: .line 2496
            iconst_0
            istore 6 /* found */
        start local 6 // boolean found
        11: .line 2497
            goto 14
        12: .line 2498
      StackMap locals: java.lang.ClassLoader java.lang.ClassLoader int
      StackMap stack:
            aload 4 /* loader */
            aload 5 /* sysl */
            if_acmpne 13
            iconst_1
            istore 6 /* found */
            goto 15
        13: .line 2499
      StackMap locals:
      StackMap stack:
            aload 5 /* sysl */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 5 /* sysl */
        14: .line 2497
      StackMap locals:
      StackMap stack:
            aload 5 /* sysl */
            ifnonnull 12
        15: .line 2501
      StackMap locals:
      StackMap stack:
            iload 6 /* found */
            ifne 17
        16: .line 2502
            iconst_0
            ireturn
        end local 6 // boolean found
        end local 5 // java.lang.ClassLoader sysl
        17: .line 2506
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            iload 1 /* refKind */
        18: .line 2507
            new java.lang.invoke.MemberName
            dup
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.getType:()Ljava/lang/Object;
            invokespecial java.lang.invoke.MemberName.<init>:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 2506
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrNull:(BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
            astore 5 /* resolved2 */
        start local 5 // java.lang.invoke.MemberName resolved2
        20: .line 2508
            aload 5 /* resolved2 */
            ifnonnull 22
        21: .line 2509
            iconst_0
            ireturn
        22: .line 2511
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 0 /* this */
            aload 2 /* defc */
            aload 5 /* resolved2 */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
        end local 5 // java.lang.invoke.MemberName resolved2
        23: .line 2512
            goto 26
      StackMap locals: java.lang.invoke.MethodHandles$Lookup int java.lang.Class java.lang.invoke.MemberName java.lang.ClassLoader
      StackMap stack: java.lang.SecurityException
        24: pop
        25: .line 2513
            iconst_0
            ireturn
        26: .line 2515
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.ClassLoader loader
        end local 3 // java.lang.invoke.MemberName member
        end local 2 // java.lang.Class defc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   27     1    refKind  B
            0   27     2       defc  Ljava/lang/Class<*>;
            0   27     3     member  Ljava/lang/invoke/MemberName;
            8   27     4     loader  Ljava/lang/ClassLoader;
           10   17     5       sysl  Ljava/lang/ClassLoader;
           11   17     6      found  Z
           20   23     5  resolved2  Ljava/lang/invoke/MemberName;
      Exception table:
        from    to  target  type
          17    21      24  Class java.lang.SecurityException
          22    23      24  Class java.lang.SecurityException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Z
    MethodParameters:
         Name  Flags
      refKind  
      defc     
      member   

  private java.lang.invoke.MethodHandle getDirectMethodForConstant(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class defc
        start local 3 // java.lang.invoke.MemberName member
         0: .line 2520
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsField:(B)Z
            ifeq 2
         1: .line 2521
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 2522
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsMethod:(B)Z
            ifeq 4
         3: .line 2523
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* member */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 2524
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            bipush 8
            if_icmpne 6
         5: .line 2525
            aload 0 /* this */
            aload 2 /* defc */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         6: .line 2528
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "bad MethodHandle constant #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* member */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.invoke.MemberName member
        end local 2 // java.lang.Class defc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    7     1  refKind  B
            0    7     2     defc  Ljava/lang/Class<*>;
            0    7     3   member  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.ReflectiveOperationException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      defc     
      member   
}
SourceFile: "MethodHandles.java"
NestHost: java.lang.invoke.MethodHandles
InnerClasses:
  Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final AccessMode = java.lang.invoke.VarHandle$AccessMode of java.lang.invoke.VarHandle