abstract class java.lang.invoke.DelegatingMethodHandle extends java.lang.invoke.MethodHandle
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: java.lang.invoke.DelegatingMethodHandle
  super_class: java.lang.invoke.MethodHandle
{
  static final java.lang.invoke.LambdaForm$NamedFunction NF_getTarget;
    descriptor: Ljava/lang/invoke/LambdaForm$NamedFunction;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  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=7, locals=1, args_size=0
         0: .line 40
            ldc Ljava/lang/invoke/DelegatingMethodHandle;
            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.DelegatingMethodHandle.$assertionsDisabled:Z
         3: .line 162
            new java.lang.invoke.MemberName
            dup
            ldc Ljava/lang/invoke/DelegatingMethodHandle;
            ldc "getTarget"
         4: .line 163
            ldc Ljava/lang/invoke/MethodHandle;
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            iconst_5
         5: .line 162
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
            astore 0 /* member */
        start local 0 // java.lang.invoke.MemberName member
         6: .line 164
            new java.lang.invoke.LambdaForm$NamedFunction
            dup
         7: .line 165
            invokestatic java.lang.invoke.MemberName.getFactory:()Ljava/lang/invoke/MemberName$Factory;
         8: .line 166
            iconst_5
            aload 0 /* member */
            ldc Ljava/lang/invoke/DelegatingMethodHandle;
            ldc Ljava/lang/NoSuchMethodException;
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
         9: .line 164
            invokespecial java.lang.invoke.LambdaForm$NamedFunction.<init>:(Ljava/lang/invoke/MemberName;)V
            putstatic java.lang.invoke.DelegatingMethodHandle.NF_getTarget:Ljava/lang/invoke/LambdaForm$NamedFunction;
        end local 0 // java.lang.invoke.MemberName member
        10: .line 167
            goto 13
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
        11: astore 0 /* ex */
        start local 0 // java.lang.ReflectiveOperationException ex
        12: .line 168
            aload 0 /* ex */
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Exception;)Ljava/lang/InternalError;
            athrow
        end local 0 // java.lang.ReflectiveOperationException ex
        13: .line 174
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            ldc Ljava/lang/invoke/DelegatingMethodHandle$Holder;
            invokevirtual jdk.internal.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
        14: .line 175
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            6   10     0  member  Ljava/lang/invoke/MemberName;
           12   13     0      ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           3    10      11  Class java.lang.ReflectiveOperationException

  protected void <init>(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
        start local 1 // java.lang.invoke.MethodHandle target
         0: .line 42
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 1 /* target */
            invokespecial java.lang.invoke.DelegatingMethodHandle.<init>:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)V
         1: .line 43
            return
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/lang/invoke/DelegatingMethodHandle;
            0    2     1  target  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      target  

  protected void <init>(java.lang.invoke.MethodType, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
        start local 1 // java.lang.invoke.MethodType type
        start local 2 // java.lang.invoke.MethodHandle target
         0: .line 46
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* target */
            invokestatic java.lang.invoke.DelegatingMethodHandle.chooseDelegatingForm:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/LambdaForm;
            invokespecial java.lang.invoke.MethodHandle.<init>:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)V
         1: .line 47
            return
        end local 2 // java.lang.invoke.MethodHandle target
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/lang/invoke/DelegatingMethodHandle;
            0    2     1    type  Ljava/lang/invoke/MethodType;
            0    2     2  target  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      type    
      target  

  protected void <init>(java.lang.invoke.MethodType, java.lang.invoke.LambdaForm);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
        start local 1 // java.lang.invoke.MethodType type
        start local 2 // java.lang.invoke.LambdaForm form
         0: .line 50
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* form */
            invokespecial java.lang.invoke.MethodHandle.<init>:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)V
         1: .line 51
            return
        end local 2 // java.lang.invoke.LambdaForm form
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/invoke/DelegatingMethodHandle;
            0    2     1  type  Ljava/lang/invoke/MethodType;
            0    2     2  form  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
      Name  Flags
      type  
      form  

  protected abstract java.lang.invoke.MethodHandle getTarget();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  abstract java.lang.invoke.MethodHandle asTypeUncached(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      newType  

  java.lang.invoke.MemberName internalMemberName();
    descriptor: ()Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
         0: .line 61
            aload 0 /* this */
            invokevirtual java.lang.invoke.DelegatingMethodHandle.getTarget:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
            areturn
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/DelegatingMethodHandle;

  boolean isInvokeSpecial();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
         0: .line 66
            aload 0 /* this */
            invokevirtual java.lang.invoke.DelegatingMethodHandle.getTarget:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.isInvokeSpecial:()Z
            ireturn
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/DelegatingMethodHandle;

  java.lang.Class<?> internalCallerClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
         0: .line 71
            aload 0 /* this */
            invokevirtual java.lang.invoke.DelegatingMethodHandle.getTarget:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.internalCallerClass:()Ljava/lang/Class;
            areturn
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/DelegatingMethodHandle;
    Signature: ()Ljava/lang/Class<*>;

  java.lang.invoke.MethodHandle copyWith(java.lang.invoke.MethodType, java.lang.invoke.LambdaForm);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
        start local 1 // java.lang.invoke.MethodType mt
        start local 2 // java.lang.invoke.LambdaForm lf
         0: .line 77
            ldc "do not use this"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.invoke.LambdaForm lf
        end local 1 // java.lang.invoke.MethodType mt
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/DelegatingMethodHandle;
            0    1     1    mt  Ljava/lang/invoke/MethodType;
            0    1     2    lf  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
      Name  Flags
      mt    
      lf    

  java.lang.String internalProperties();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
         0: .line 82
            new java.lang.StringBuilder
            dup
            ldc "\n& Class="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 83
            ldc "\n& Target="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.invoke.DelegatingMethodHandle.getTarget:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.debugString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 82
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/DelegatingMethodHandle;

  java.lang.invoke.BoundMethodHandle rebind();
    descriptor: ()Ljava/lang/invoke/BoundMethodHandle;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.DelegatingMethodHandle this
         0: .line 88
            aload 0 /* this */
            invokevirtual java.lang.invoke.DelegatingMethodHandle.getTarget:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 0 // java.lang.invoke.DelegatingMethodHandle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/DelegatingMethodHandle;

  private static java.lang.invoke.LambdaForm chooseDelegatingForm(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/LambdaForm;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle target
         0: .line 92
            aload 0 /* target */
            instanceof java.lang.invoke.SimpleMethodHandle
            ifeq 2
         1: .line 93
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.internalForm:()Ljava/lang/invoke/LambdaForm;
            areturn
         2: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            bipush 8
            ldc Ljava/lang/invoke/DelegatingMethodHandle;
            getstatic java.lang.invoke.DelegatingMethodHandle.NF_getTarget:Ljava/lang/invoke/LambdaForm$NamedFunction;
            invokestatic java.lang.invoke.DelegatingMethodHandle.makeReinvokerForm:(Ljava/lang/invoke/MethodHandle;ILjava/lang/Object;Ljava/lang/invoke/LambdaForm$NamedFunction;)Ljava/lang/invoke/LambdaForm;
            areturn
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      target  

  static java.lang.invoke.LambdaForm makeReinvokerForm(java.lang.invoke.MethodHandle, int, java.lang.Object, java.lang.invoke.LambdaForm$NamedFunction);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/Object;Ljava/lang/invoke/LambdaForm$NamedFunction;)Ljava/lang/invoke/LambdaForm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int whichCache
        start local 2 // java.lang.Object constraint
        start local 3 // java.lang.invoke.LambdaForm$NamedFunction getTargetFn
         0: .line 102
            aload 0 /* target */
            iload 1 /* whichCache */
            aload 2 /* constraint */
            iconst_1
            aload 3 /* getTargetFn */
            aconst_null
            invokestatic java.lang.invoke.DelegatingMethodHandle.makeReinvokerForm:(Ljava/lang/invoke/MethodHandle;ILjava/lang/Object;ZLjava/lang/invoke/LambdaForm$NamedFunction;Ljava/lang/invoke/LambdaForm$NamedFunction;)Ljava/lang/invoke/LambdaForm;
            areturn
        end local 3 // java.lang.invoke.LambdaForm$NamedFunction getTargetFn
        end local 2 // java.lang.Object constraint
        end local 1 // int whichCache
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0       target  Ljava/lang/invoke/MethodHandle;
            0    1     1   whichCache  I
            0    1     2   constraint  Ljava/lang/Object;
            0    1     3  getTargetFn  Ljava/lang/invoke/LambdaForm$NamedFunction;
    MethodParameters:
             Name  Flags
      target       
      whichCache   
      constraint   
      getTargetFn  

  static java.lang.invoke.LambdaForm makeReinvokerForm(java.lang.invoke.MethodHandle, int, java.lang.Object, boolean, java.lang.invoke.LambdaForm$NamedFunction, java.lang.invoke.LambdaForm$NamedFunction);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/Object;ZLjava/lang/invoke/LambdaForm$NamedFunction;Ljava/lang/invoke/LambdaForm$NamedFunction;)Ljava/lang/invoke/LambdaForm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=18, args_size=6
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int whichCache
        start local 2 // java.lang.Object constraint
        start local 3 // boolean forceInline
        start local 4 // java.lang.invoke.LambdaForm$NamedFunction getTargetFn
        start local 5 // java.lang.invoke.LambdaForm$NamedFunction preActionFn
         0: .line 111
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            astore 6 /* mtype */
        start local 6 // java.lang.invoke.MethodType mtype
         1: .line 112
            iload 1 /* whichCache */
            invokestatic java.lang.invoke.DelegatingMethodHandle.whichKind:(I)Ljava/lang/invoke/LambdaForm$Kind;
            astore 7 /* kind */
        start local 7 // java.lang.invoke.LambdaForm$Kind kind
         2: .line 113
            iload 1 /* whichCache */
            iflt 5
         3: .line 114
            aload 6 /* mtype */
            invokevirtual java.lang.invoke.MethodType.parameterSlotCount:()I
            sipush 253
         4: .line 113
            if_icmpgt 5
            iconst_0
            goto 6
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Kind
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 8 /* customized */
        start local 8 // boolean customized
         7: .line 115
            aload 5 /* preActionFn */
            ifnull 8
            iconst_1
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 9 /* hasPreAction */
        start local 9 // boolean hasPreAction
        10: .line 117
            iload 8 /* customized */
            ifne 13
        11: .line 118
            aload 6 /* mtype */
            invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
            iload 1 /* whichCache */
            invokevirtual java.lang.invoke.MethodTypeForm.cachedLambdaForm:(I)Ljava/lang/invoke/LambdaForm;
            astore 10 /* form */
        start local 10 // java.lang.invoke.LambdaForm form
        12: .line 119
            aload 10 /* form */
            ifnull 13
            aload 10 /* form */
            areturn
        end local 10 // java.lang.invoke.LambdaForm form
        13: .line 123
      StackMap locals: int
      StackMap stack:
            iconst_1
            aload 6 /* mtype */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iadd
            istore 11 /* ARG_LIMIT */
        start local 11 // int ARG_LIMIT
        14: .line 124
            iload 11 /* ARG_LIMIT */
            istore 12 /* nameCursor */
        start local 12 // int nameCursor
        15: .line 125
            iload 9 /* hasPreAction */
            ifeq 16
            iload 12 /* nameCursor */
            iinc 12 /* nameCursor */ 1
            goto 17
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.Object int java.lang.invoke.LambdaForm$NamedFunction java.lang.invoke.LambdaForm$NamedFunction java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Kind int int top int int
      StackMap stack:
        16: iconst_m1
      StackMap locals:
      StackMap stack: int
        17: istore 13 /* PRE_ACTION */
        start local 13 // int PRE_ACTION
        18: .line 126
            iload 8 /* customized */
            ifeq 19
            iconst_m1
            goto 20
      StackMap locals: int
      StackMap stack:
        19: iload 12 /* nameCursor */
            iinc 12 /* nameCursor */ 1
      StackMap locals:
      StackMap stack: int
        20: istore 14 /* NEXT_MH */
        start local 14 // int NEXT_MH
        21: .line 127
            iload 12 /* nameCursor */
            iinc 12 /* nameCursor */ 1
            istore 15 /* REINVOKE */
        start local 15 // int REINVOKE
        22: .line 128
            iload 12 /* nameCursor */
            iload 11 /* ARG_LIMIT */
            isub
            aload 6 /* mtype */
            invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
            astore 16 /* names */
        start local 16 // java.lang.invoke.LambdaForm$Name[] names
        23: .line 129
            getstatic java.lang.invoke.DelegatingMethodHandle.$assertionsDisabled:Z
            ifne 24
            aload 16 /* names */
            arraylength
            iload 12 /* nameCursor */
            if_icmpeq 24
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        24: .line 130
      StackMap locals: int int java.lang.invoke.LambdaForm$Name[]
      StackMap stack:
            aload 16 /* names */
            iconst_0
            aload 16 /* names */
            iconst_0
            aaload
            aload 2 /* constraint */
            invokevirtual java.lang.invoke.LambdaForm$Name.withConstraint:(Ljava/lang/Object;)Ljava/lang/invoke/LambdaForm$Name;
            aastore
        25: .line 132
            iload 9 /* hasPreAction */
            ifeq 27
        26: .line 133
            aload 16 /* names */
            iload 13 /* PRE_ACTION */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 5 /* preActionFn */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 16 /* names */
            iconst_0
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        27: .line 135
      StackMap locals:
      StackMap stack:
            iload 8 /* customized */
            ifeq 31
        28: .line 136
            aload 16 /* names */
            iconst_1
            iload 11 /* ARG_LIMIT */
            ldc [Ljava/lang/Object;
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
            astore 17 /* targetArgs */
        start local 17 // java.lang.Object[] targetArgs
        29: .line 137
            aload 16 /* names */
            iload 15 /* REINVOKE */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 0 /* target */
            aload 17 /* targetArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)V
            aastore
        30: .line 138
            goto 35
        end local 17 // java.lang.Object[] targetArgs
        31: .line 139
      StackMap locals:
      StackMap stack:
            aload 16 /* names */
            iload 14 /* NEXT_MH */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 4 /* getTargetFn */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 16 /* names */
            iconst_0
            aaload
            aastore
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
            aastore
        32: .line 140
            aload 16 /* names */
            iconst_0
            iload 11 /* ARG_LIMIT */
            ldc [Ljava/lang/Object;
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
            astore 17 /* targetArgs */
        start local 17 // java.lang.Object[] targetArgs
        33: .line 141
            aload 17 /* targetArgs */
            iconst_0
            aload 16 /* names */
            iload 14 /* NEXT_MH */
            aaload
            aastore
        34: .line 142
            aload 16 /* names */
            iload 15 /* REINVOKE */
            new java.lang.invoke.LambdaForm$Name
            dup
            aload 6 /* mtype */
            aload 17 /* targetArgs */
            invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)V
            aastore
        35: .line 144
      StackMap locals: java.lang.Object[]
      StackMap stack:
            new java.lang.invoke.LambdaForm
            dup
            iload 11 /* ARG_LIMIT */
            aload 16 /* names */
            iload 3 /* forceInline */
            aload 7 /* kind */
            invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;ZLjava/lang/invoke/LambdaForm$Kind;)V
            astore 10 /* form */
        start local 10 // java.lang.invoke.LambdaForm form
        36: .line 145
            iload 8 /* customized */
            ifne 38
        37: .line 146
            aload 6 /* mtype */
            invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
            iload 1 /* whichCache */
            aload 10 /* form */
            invokevirtual java.lang.invoke.MethodTypeForm.setCachedLambdaForm:(ILjava/lang/invoke/LambdaForm;)Ljava/lang/invoke/LambdaForm;
            astore 10 /* form */
        38: .line 148
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.Object int java.lang.invoke.LambdaForm$NamedFunction java.lang.invoke.LambdaForm$NamedFunction java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Kind int int java.lang.invoke.LambdaForm int int int int int java.lang.invoke.LambdaForm$Name[] java.lang.Object[]
      StackMap stack:
            aload 10 /* form */
            areturn
        end local 17 // java.lang.Object[] targetArgs
        end local 16 // java.lang.invoke.LambdaForm$Name[] names
        end local 15 // int REINVOKE
        end local 14 // int NEXT_MH
        end local 13 // int PRE_ACTION
        end local 12 // int nameCursor
        end local 11 // int ARG_LIMIT
        end local 10 // java.lang.invoke.LambdaForm form
        end local 9 // boolean hasPreAction
        end local 8 // boolean customized
        end local 7 // java.lang.invoke.LambdaForm$Kind kind
        end local 6 // java.lang.invoke.MethodType mtype
        end local 5 // java.lang.invoke.LambdaForm$NamedFunction preActionFn
        end local 4 // java.lang.invoke.LambdaForm$NamedFunction getTargetFn
        end local 3 // boolean forceInline
        end local 2 // java.lang.Object constraint
        end local 1 // int whichCache
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   39     0        target  Ljava/lang/invoke/MethodHandle;
            0   39     1    whichCache  I
            0   39     2    constraint  Ljava/lang/Object;
            0   39     3   forceInline  Z
            0   39     4   getTargetFn  Ljava/lang/invoke/LambdaForm$NamedFunction;
            0   39     5   preActionFn  Ljava/lang/invoke/LambdaForm$NamedFunction;
            1   39     6         mtype  Ljava/lang/invoke/MethodType;
            2   39     7          kind  Ljava/lang/invoke/LambdaForm$Kind;
            7   39     8    customized  Z
           10   39     9  hasPreAction  Z
           12   13    10          form  Ljava/lang/invoke/LambdaForm;
           36   39    10          form  Ljava/lang/invoke/LambdaForm;
           14   39    11     ARG_LIMIT  I
           15   39    12    nameCursor  I
           18   39    13    PRE_ACTION  I
           21   39    14       NEXT_MH  I
           22   39    15      REINVOKE  I
           23   39    16         names  [Ljava/lang/invoke/LambdaForm$Name;
           29   31    17    targetArgs  [Ljava/lang/Object;
           33   39    17    targetArgs  [Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      target       
      whichCache   
      constraint   
      forceInline  
      getTargetFn  
      preActionFn  

  private static java.lang.invoke.LambdaForm$Kind whichKind(int);
    descriptor: (I)Ljava/lang/invoke/LambdaForm$Kind;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int whichCache
         0: .line 152
            iload 0 /* whichCache */
            tableswitch { // 7 - 8
                    7: 1
                    8: 2
              default: 3
          }
         1: .line 153
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.LambdaForm$Kind.BOUND_REINVOKER:Ljava/lang/invoke/LambdaForm$Kind;
            areturn
         2: .line 154
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.LambdaForm$Kind.DELEGATE:Ljava/lang/invoke/LambdaForm$Kind;
            areturn
         3: .line 155
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.LambdaForm$Kind.REINVOKER:Ljava/lang/invoke/LambdaForm$Kind;
            areturn
        end local 0 // int whichCache
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  whichCache  I
    MethodParameters:
            Name  Flags
      whichCache  

  java.lang.Object internalProperties();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual java.lang.invoke.DelegatingMethodHandle.internalProperties:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DelegatingMethodHandle.java"
NestMembers:
  java.lang.invoke.DelegatingMethodHandle$Holder
InnerClasses:
  final Holder = java.lang.invoke.DelegatingMethodHandle$Holder of java.lang.invoke.DelegatingMethodHandle
  final Kind = java.lang.invoke.LambdaForm$Kind of java.lang.invoke.LambdaForm
  final Name = java.lang.invoke.LambdaForm$Name of java.lang.invoke.LambdaForm
  NamedFunction = java.lang.invoke.LambdaForm$NamedFunction of java.lang.invoke.LambdaForm
  Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName