public class sun.invoke.anon.ConstantPoolPatch
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.invoke.anon.ConstantPoolPatch
  super_class: java.lang.Object
{
  final sun.invoke.anon.ConstantPoolParser outer;
    descriptor: Lsun/invoke/anon/ConstantPoolParser;
    flags: (0x0010) ACC_FINAL

  final java.lang.Object[] patchArray;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

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

  private static final java.util.Map<java.lang.Class<?>, java.lang.Byte> CONSTANT_VALUE_CLASS_TAG;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Byte;>;

  private static final java.lang.Class[] CONSTANT_VALUE_CLASS;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, 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=7, args_size=0
         0: .line 48
            ldc Lsun/invoke/anon/ConstantPoolPatch;
            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 sun.invoke.anon.ConstantPoolPatch.$assertionsDisabled:Z
         3: .line 420
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
         4: .line 419
            putstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS_TAG:Ljava/util/Map;
         5: .line 421
            bipush 16
            anewarray java.lang.Class
            putstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS:[Ljava/lang/Class;
         6: .line 423
            bipush 6
            anewarray java.lang.Object[]
            dup
            iconst_0
         7: .line 424
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iconst_3
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
            dup
            iconst_1
         8: .line 425
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Ljava/lang/Long;
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
            dup
            iconst_2
         9: .line 426
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Ljava/lang/Float;
            aastore
            dup
            iconst_1
            iconst_4
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
            dup
            iconst_3
        10: .line 427
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Ljava/lang/Double;
            aastore
            dup
            iconst_1
            bipush 6
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
            dup
            iconst_4
        11: .line 428
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            bipush 8
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
            dup
            iconst_5
        12: .line 429
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            bipush 7
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
        13: .line 423
            astore 0 /* values */
        start local 0 // java.lang.Object[][] values
        14: .line 431
            aload 0 /* values */
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 21
      StackMap locals: java.lang.Object[][] top int int java.lang.Object[][]
      StackMap stack:
        15: aload 4
            iload 2
            aaload
            astore 1 /* value */
        start local 1 // java.lang.Object[] value
        16: .line 432
            aload 1 /* value */
            iconst_0
            aaload
            checkcast java.lang.Class
            astore 5 /* cls */
        start local 5 // java.lang.Class cls
        17: .line 433
            aload 1 /* value */
            iconst_1
            aaload
            checkcast java.lang.Byte
            astore 6 /* tag */
        start local 6 // java.lang.Byte tag
        18: .line 434
            getstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS_TAG:Ljava/util/Map;
            aload 5 /* cls */
            aload 6 /* tag */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 435
            getstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS:[Ljava/lang/Class;
            aload 6 /* tag */
            invokevirtual java.lang.Byte.byteValue:()B
            aload 5 /* cls */
            aastore
        end local 6 // java.lang.Byte tag
        end local 5 // java.lang.Class cls
        end local 1 // java.lang.Object[] value
        20: .line 431
            iinc 2 1
      StackMap locals:
      StackMap stack:
        21: iload 2
            iload 3
            if_icmplt 15
        end local 0 // java.lang.Object[][] values
        22: .line 437
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
           14   22     0  values  [[Ljava/lang/Object;
           16   20     1   value  [Ljava/lang/Object;
           17   20     5     cls  Ljava/lang/Class<*>;
           18   20     6     tag  Ljava/lang/Byte;

  void <init>(sun.invoke.anon.ConstantPoolParser);
    descriptor: (Lsun/invoke/anon/ConstantPoolParser;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // sun.invoke.anon.ConstantPoolParser outer
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 1 /* outer */
            putfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
         2: .line 54
            aload 0 /* this */
            aload 1 /* outer */
            invokevirtual sun.invoke.anon.ConstantPoolParser.getLength:()I
            anewarray java.lang.Object
            putfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
         3: .line 55
            return
        end local 1 // sun.invoke.anon.ConstantPoolParser outer
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    4     1  outer  Lsun/invoke/anon/ConstantPoolParser;
    MethodParameters:
       Name  Flags
      outer  

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // byte[] classFile
         0: .line 65
            aload 0 /* this */
            new sun.invoke.anon.ConstantPoolParser
            dup
            aload 1 /* classFile */
            invokespecial sun.invoke.anon.ConstantPoolParser.<init>:([B)V
            invokespecial sun.invoke.anon.ConstantPoolPatch.<init>:(Lsun/invoke/anon/ConstantPoolParser;)V
         1: .line 66
            return
        end local 1 // byte[] classFile
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lsun/invoke/anon/ConstantPoolPatch;
            0    2     1  classFile  [B
    Exceptions:
      throws sun.invoke.anon.InvalidConstantPoolFormatException
    MethodParameters:
           Name  Flags
      classFile  

  public void <init>(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // java.lang.Class templateClass
         0: .line 76
            aload 0 /* this */
            new sun.invoke.anon.ConstantPoolParser
            dup
            aload 1 /* templateClass */
            invokespecial sun.invoke.anon.ConstantPoolParser.<init>:(Ljava/lang/Class;)V
            invokespecial sun.invoke.anon.ConstantPoolPatch.<init>:(Lsun/invoke/anon/ConstantPoolParser;)V
         1: .line 77
            return
        end local 1 // java.lang.Class templateClass
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lsun/invoke/anon/ConstantPoolPatch;
            0    2     1  templateClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException, sun.invoke.anon.InvalidConstantPoolFormatException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
               Name  Flags
      templateClass  

  public void <init>(sun.invoke.anon.ConstantPoolPatch);
    descriptor: (Lsun/invoke/anon/ConstantPoolPatch;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // sun.invoke.anon.ConstantPoolPatch patch
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 87
            aload 0 /* this */
            aload 1 /* patch */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            putfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
         2: .line 88
            aload 0 /* this */
            aload 1 /* patch */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            putfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
         3: .line 89
            return
        end local 1 // sun.invoke.anon.ConstantPoolPatch patch
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    4     1  patch  Lsun/invoke/anon/ConstantPoolPatch;
    MethodParameters:
       Name  Flags
      patch  

  public sun.invoke.anon.ConstantPoolParser getParser();
    descriptor: ()Lsun/invoke/anon/ConstantPoolParser;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
         0: .line 93
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            areturn
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/invoke/anon/ConstantPoolPatch;

  public byte getTag(int);
    descriptor: (I)B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
         0: .line 98
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            iload 1 /* index */
            invokevirtual sun.invoke.anon.ConstantPoolParser.getTag:(I)B
            ireturn
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public java.lang.Object getPatch(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
         0: .line 107
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aaload
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 108
            aload 2 /* value */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 109
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.getTag:(I)B
            tableswitch { // 9 - 12
                    9: 3
                   10: 3
                   11: 3
                   12: 6
              default: 8
          }
         3: .line 113
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.String
            ifeq 8
         4: .line 114
            iconst_2
            aload 2 /* value */
            checkcast java.lang.String
            invokestatic sun.invoke.anon.ConstantPoolPatch.stripSemis:(ILjava/lang/String;)[Ljava/lang/String;
            astore 2 /* value */
         5: .line 115
            goto 8
         6: .line 117
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.String
            ifeq 8
         7: .line 118
            iconst_1
            aload 2 /* value */
            checkcast java.lang.String
            invokestatic sun.invoke.anon.ConstantPoolPatch.stripSemis:(ILjava/lang/String;)[Ljava/lang/String;
            astore 2 /* value */
         8: .line 121
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 2 // java.lang.Object value
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    9     1  index  I
            1    9     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      index  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
         0: .line 126
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 127
            return
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/invoke/anon/ConstantPoolPatch;

  public void clear(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
         0: .line 131
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aconst_null
            aastore
         1: .line 132
            return
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    2     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public java.lang.Object[] getPatches();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
         0: .line 136
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            areturn
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/invoke/anon/ConstantPoolPatch;

  public java.lang.Object[] getOriginalCP();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
         0: .line 141
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            arraylength
            iconst_m1
            invokevirtual sun.invoke.anon.ConstantPoolPatch.getOriginalCP:(III)[Ljava/lang/Object;
            areturn
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/invoke/anon/ConstantPoolPatch;
    Exceptions:
      throws sun.invoke.anon.InvalidConstantPoolFormatException

  public void putPatches(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.Object>, java.util.Map<java.lang.Object, java.lang.Object>, );
    descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=8, args_size=5
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // java.util.Map utf8Map
        start local 2 // java.util.Map classMap
        start local 3 // java.util.Map valueMap
        start local 4 // boolean deleteUsedEntries
         0: .line 158
            iload 4 /* deleteUsedEntries */
            ifeq 11
         1: .line 159
            aload 1 /* utf8Map */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
      StackMap locals:
      StackMap stack: java.util.HashSet
         3: astore 5 /* usedUtf8Keys */
        start local 5 // java.util.HashSet usedUtf8Keys
         4: .line 160
            aload 2 /* classMap */
            ifnonnull 5
            aconst_null
            goto 6
      StackMap locals: java.util.HashSet
      StackMap stack:
         5: new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
      StackMap locals:
      StackMap stack: java.util.HashSet
         6: astore 6 /* usedClassKeys */
        start local 6 // java.util.HashSet usedClassKeys
         7: .line 161
            aload 3 /* valueMap */
            ifnonnull 8
            aconst_null
            goto 9
      StackMap locals: java.util.HashSet
      StackMap stack:
         8: new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
      StackMap locals:
      StackMap stack: java.util.HashSet
         9: astore 7 /* usedValueKeys */
        start local 7 // java.util.HashSet usedValueKeys
        10: .line 162
            goto 14
        end local 7 // java.util.HashSet usedValueKeys
        end local 6 // java.util.HashSet usedClassKeys
        end local 5 // java.util.HashSet usedUtf8Keys
        11: .line 163
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* usedUtf8Keys */
        start local 5 // java.util.HashSet usedUtf8Keys
        12: .line 164
            aconst_null
            astore 6 /* usedClassKeys */
        start local 6 // java.util.HashSet usedClassKeys
        13: .line 165
            aconst_null
            astore 7 /* usedValueKeys */
        start local 7 // java.util.HashSet usedValueKeys
        14: .line 168
      StackMap locals: java.util.HashSet java.util.HashSet java.util.HashSet
      StackMap stack:
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            new sun.invoke.anon.ConstantPoolPatch$1
            dup
            aload 0 /* this */
            aload 1 /* utf8Map */
            aload 5 /* usedUtf8Keys */
            aload 3 /* valueMap */
            aload 7 /* usedValueKeys */
            aload 2 /* classMap */
            aload 6 /* usedClassKeys */
            invokespecial sun.invoke.anon.ConstantPoolPatch$1.<init>:(Lsun/invoke/anon/ConstantPoolPatch;Ljava/util/Map;Ljava/util/HashSet;Ljava/util/Map;Ljava/util/HashSet;Ljava/util/Map;Ljava/util/HashSet;)V
            invokevirtual sun.invoke.anon.ConstantPoolParser.parse:(Lsun/invoke/anon/ConstantPoolVisitor;)V
        15: .line 193
            aload 5 /* usedUtf8Keys */
            ifnull 16
            aload 1 /* utf8Map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 5 /* usedUtf8Keys */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        16: .line 194
      StackMap locals:
      StackMap stack:
            aload 6 /* usedClassKeys */
            ifnull 17
            aload 2 /* classMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 6 /* usedClassKeys */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        17: .line 195
      StackMap locals:
      StackMap stack:
            aload 7 /* usedValueKeys */
            ifnull 18
            aload 3 /* valueMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 7 /* usedValueKeys */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        18: .line 196
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.util.HashSet usedValueKeys
        end local 6 // java.util.HashSet usedClassKeys
        end local 5 // java.util.HashSet usedUtf8Keys
        end local 4 // boolean deleteUsedEntries
        end local 3 // java.util.Map valueMap
        end local 2 // java.util.Map classMap
        end local 1 // java.util.Map utf8Map
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lsun/invoke/anon/ConstantPoolPatch;
            0   19     1            utf8Map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   19     2           classMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0   19     3           valueMap  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            0   19     4  deleteUsedEntries  Z
            4   11     5       usedUtf8Keys  Ljava/util/HashSet<Ljava/lang/String;>;
           12   19     5       usedUtf8Keys  Ljava/util/HashSet<Ljava/lang/String;>;
            7   11     6      usedClassKeys  Ljava/util/HashSet<Ljava/lang/String;>;
           13   19     6      usedClassKeys  Ljava/util/HashSet<Ljava/lang/String;>;
           10   11     7      usedValueKeys  Ljava/util/HashSet<Ljava/lang/Object;>;
           14   19     7      usedValueKeys  Ljava/util/HashSet<Ljava/lang/Object;>;
    Exceptions:
      throws sun.invoke.anon.InvalidConstantPoolFormatException
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;Z)V
    MethodParameters:
                   Name  Flags
      utf8Map            final
      classMap           final
      valueMap           final
      deleteUsedEntries  

  java.lang.Object[] getOriginalCP(int, int, int);
    descriptor: (III)[Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int startIndex
        start local 2 // int endIndex
        start local 3 // int tagMask
         0: .line 201
            iload 2 /* endIndex */
            iload 1 /* startIndex */
            isub
            anewarray java.lang.Object
            astore 4 /* cpArray */
        start local 4 // java.lang.Object[] cpArray
         1: .line 202
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            new sun.invoke.anon.ConstantPoolPatch$2
            dup
            aload 0 /* this */
            iload 1 /* startIndex */
            iload 2 /* endIndex */
            iload 3 /* tagMask */
            aload 4 /* cpArray */
            invokespecial sun.invoke.anon.ConstantPoolPatch$2.<init>:(Lsun/invoke/anon/ConstantPoolPatch;III[Ljava/lang/Object;)V
            invokevirtual sun.invoke.anon.ConstantPoolParser.parse:(Lsun/invoke/anon/ConstantPoolVisitor;)V
         2: .line 242
            aload 4 /* cpArray */
            areturn
        end local 4 // java.lang.Object[] cpArray
        end local 3 // int tagMask
        end local 2 // int endIndex
        end local 1 // int startIndex
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lsun/invoke/anon/ConstantPoolPatch;
            0    3     1  startIndex  I
            0    3     2    endIndex  I
            0    3     3     tagMask  I
            1    3     4     cpArray  [Ljava/lang/Object;
    Exceptions:
      throws sun.invoke.anon.InvalidConstantPoolFormatException
    MethodParameters:
            Name  Flags
      startIndex  final
      endIndex    final
      tagMask     final

  void writeHead(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // java.io.OutputStream out
         0: .line 249
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            aload 1 /* out */
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            invokevirtual sun.invoke.anon.ConstantPoolParser.writePatchedHead:(Ljava/io/OutputStream;[Ljava/lang/Object;)V
         1: .line 250
            return
        end local 1 // java.io.OutputStream out
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/invoke/anon/ConstantPoolPatch;
            0    2     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  void writeTail(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // java.io.OutputStream out
         0: .line 256
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            aload 1 /* out */
            invokevirtual sun.invoke.anon.ConstantPoolParser.writeTail:(Ljava/io/OutputStream;)V
         1: .line 257
            return
        end local 1 // java.io.OutputStream out
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/invoke/anon/ConstantPoolPatch;
            0    2     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  private void checkConstantTag(byte, java.lang.Object);
    descriptor: (BLjava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // byte tag
        start local 2 // java.lang.Object value
         0: .line 260
            aload 2 /* value */
            ifnonnull 4
         1: .line 261
            new java.lang.IllegalArgumentException
            dup
         2: .line 262
            ldc "invalid null constant value"
         3: .line 261
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 263
      StackMap locals:
      StackMap stack:
            iload 1 /* tag */
            invokestatic sun.invoke.anon.ConstantPoolPatch.classForTag:(B)Ljava/lang/Class;
            aload 2 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 13
         5: .line 264
            new java.lang.IllegalArgumentException
            dup
         6: .line 265
            new java.lang.StringBuilder
            dup
            ldc "invalid constant value"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 266
            iload 1 /* tag */
            ifne 8
            ldc ""
            goto 9
         8: .line 267
      StackMap locals: sun.invoke.anon.ConstantPoolPatch int java.lang.Object
      StackMap stack: new 5 new 5 java.lang.StringBuilder
            new java.lang.StringBuilder
            dup
            ldc " for tag "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* tag */
            invokestatic sun.invoke.anon.ConstantPoolVisitor.tagName:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 266
      StackMap locals: sun.invoke.anon.ConstantPoolPatch int java.lang.Object
      StackMap stack: new 5 new 5 java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 268
            ldc " of class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 265
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 264
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 269
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // byte tag
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0   14     1    tag  B
            0   14     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      tag    
      value  

  private void checkTag(int, byte);
    descriptor: (IB)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // byte putTag
         0: .line 272
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            getfield sun.invoke.anon.ConstantPoolParser.tags:[B
            iload 1 /* index */
            baload
            istore 3 /* tag */
        start local 3 // byte tag
         1: .line 273
            iload 3 /* tag */
            iload 2 /* putTag */
            if_icmpeq 8
         2: .line 274
            new java.lang.IllegalArgumentException
            dup
         3: .line 275
            new java.lang.StringBuilder
            dup
            ldc "invalid put operation for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 276
            iload 2 /* putTag */
            invokestatic sun.invoke.anon.ConstantPoolVisitor.tagName:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 277
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " found "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* tag */
            invokestatic sun.invoke.anon.ConstantPoolVisitor.tagName:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 275
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 274
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 278
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // byte tag
        end local 2 // byte putTag
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lsun/invoke/anon/ConstantPoolPatch;
            0    9     1   index  I
            0    9     2  putTag  B
            1    9     3     tag  B
    MethodParameters:
        Name  Flags
      index   
      putTag  

  private void checkTagMask(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // int tagBitMask
         0: .line 281
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.outer:Lsun/invoke/anon/ConstantPoolParser;
            getfield sun.invoke.anon.ConstantPoolParser.tags:[B
            iload 1 /* index */
            baload
            istore 3 /* tag */
        start local 3 // byte tag
         1: .line 282
            iload 3 /* tag */
            bipush 31
            iand
            iload 3 /* tag */
            if_icmpne 2
            iconst_1
            iload 3 /* tag */
            ishl
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* tagBit */
        start local 4 // int tagBit
         4: .line 283
            iload 4 /* tagBit */
            iload 2 /* tagBitMask */
            iand
            ifne 10
         5: .line 284
            new java.lang.IllegalArgumentException
            dup
         6: .line 285
            new java.lang.StringBuilder
            dup
            ldc "invalid put operation at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 286
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " found "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* tag */
            invokestatic sun.invoke.anon.ConstantPoolVisitor.tagName:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 285
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 284
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 287
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // int tagBit
        end local 3 // byte tag
        end local 2 // int tagBitMask
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lsun/invoke/anon/ConstantPoolPatch;
            0   11     1       index  I
            0   11     2  tagBitMask  I
            1   11     3         tag  B
            4   11     4      tagBit  I
    MethodParameters:
            Name  Flags
      index       
      tagBitMask  

  private static void checkMemberName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String memberName
         0: .line 290
            aload 0 /* memberName */
            bipush 59
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 2
         1: .line 291
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "memberName "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* memberName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " contains a ';'"
            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
         2: .line 292
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String memberName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  memberName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      memberName  

  public void putUTF8(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // java.lang.String utf8
         0: .line 304
            aload 2 /* utf8 */
            ifnonnull 1
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.clear:(I)V
            return
         1: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            iconst_1
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTag:(IB)V
         2: .line 306
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* utf8 */
            aastore
         3: .line 307
            return
        end local 2 // java.lang.String utf8
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    4     1  index  I
            0    4     2   utf8  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      index  
      utf8   

  public void putConstantValue(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // java.lang.Object value
         0: .line 330
            aload 2 /* value */
            ifnonnull 1
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.clear:(I)V
            return
         1: .line 331
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic sun.invoke.anon.ConstantPoolPatch.tagForConstant:(Ljava/lang/Class;)B
            istore 3 /* tag */
        start local 3 // byte tag
         2: .line 332
            aload 0 /* this */
            iload 3 /* tag */
            aload 2 /* value */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkConstantTag:(BLjava/lang/Object;)V
         3: .line 333
            aload 0 /* this */
            iload 1 /* index */
            iload 3 /* tag */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTag:(IB)V
         4: .line 334
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* value */
            aastore
         5: .line 335
            return
        end local 3 // byte tag
        end local 2 // java.lang.Object value
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0    6     1  index  I
            0    6     2  value  Ljava/lang/Object;
            2    6     3    tag  B
    MethodParameters:
       Name  Flags
      index  
      value  

  public void putConstantValue(int, byte, java.lang.Object);
    descriptor: (IBLjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // byte tag
        start local 3 // java.lang.Object value
         0: .line 358
            aload 3 /* value */
            ifnonnull 1
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.clear:(I)V
            return
         1: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            iload 2 /* tag */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTag:(IB)V
         2: .line 360
            iload 2 /* tag */
            bipush 7
            if_icmpne 5
            aload 3 /* value */
            instanceof java.lang.String
            ifeq 5
         3: .line 361
            aload 3 /* value */
            checkcast java.lang.String
            invokestatic sun.invoke.anon.ConstantPoolPatch.checkClassName:(Ljava/lang/String;)V
         4: .line 362
            goto 7
      StackMap locals:
      StackMap stack:
         5: iload 2 /* tag */
            bipush 8
            if_icmpeq 7
         6: .line 366
            aload 0 /* this */
            iload 2 /* tag */
            aload 3 /* value */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkConstantTag:(BLjava/lang/Object;)V
         7: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            iload 2 /* tag */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTag:(IB)V
         8: .line 369
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aload 3 /* value */
            aastore
         9: .line 370
            return
        end local 3 // java.lang.Object value
        end local 2 // byte tag
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/invoke/anon/ConstantPoolPatch;
            0   10     1  index  I
            0   10     2    tag  B
            0   10     3  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      index  
      tag    
      value  

  public void putDescriptor(int, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // java.lang.String memberName
        start local 3 // java.lang.String signature
         0: .line 384
            aload 0 /* this */
            iload 1 /* index */
            bipush 12
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTag:(IB)V
         1: .line 385
            aload 2 /* memberName */
            invokestatic sun.invoke.anon.ConstantPoolPatch.checkMemberName:(Ljava/lang/String;)V
         2: .line 386
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* memberName */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 3 /* signature */
            aastore
            invokestatic sun.invoke.anon.ConstantPoolPatch.addSemis:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            aastore
         3: .line 387
            return
        end local 3 // java.lang.String signature
        end local 2 // java.lang.String memberName
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lsun/invoke/anon/ConstantPoolPatch;
            0    4     1       index  I
            0    4     2  memberName  Ljava/lang/String;
            0    4     3   signature  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      index       
      memberName  
      signature   

  public void putMemberRef(int, byte, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (IBLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
        start local 1 // int index
        start local 2 // byte tag
        start local 3 // java.lang.String className
        start local 4 // java.lang.String memberName
        start local 5 // java.lang.String signature
         0: .line 405
            aload 0 /* this */
            iload 2 /* tag */
            bipush 11
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTagMask:(II)V
         1: .line 406
            aload 0 /* this */
            iload 1 /* index */
            iload 2 /* tag */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.checkTag:(IB)V
         2: .line 407
            aload 3 /* className */
            invokestatic sun.invoke.anon.ConstantPoolPatch.checkClassName:(Ljava/lang/String;)V
         3: .line 408
            aload 4 /* memberName */
            invokestatic sun.invoke.anon.ConstantPoolPatch.checkMemberName:(Ljava/lang/String;)V
         4: .line 409
            aload 5 /* signature */
            ldc "("
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            iload 2 /* tag */
            bipush 9
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: sun.invoke.anon.ConstantPoolPatch int int java.lang.String java.lang.String java.lang.String
      StackMap stack: int int
         6: if_icmpne 8
         7: .line 410
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad signature: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* signature */
            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 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 1 /* index */
            aload 3 /* className */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* memberName */
            aastore
            dup
            iconst_1
            aload 5 /* signature */
            aastore
            invokestatic sun.invoke.anon.ConstantPoolPatch.addSemis:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            aastore
         9: .line 412
            return
        end local 5 // java.lang.String signature
        end local 4 // java.lang.String memberName
        end local 3 // java.lang.String className
        end local 2 // byte tag
        end local 1 // int index
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/invoke/anon/ConstantPoolPatch;
            0   10     1       index  I
            0   10     2         tag  B
            0   10     3   className  Ljava/lang/String;
            0   10     4  memberName  Ljava/lang/String;
            0   10     5   signature  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      index       
      tag         
      className   
      memberName  
      signature   

  static java.lang.Class<?> classForTag(byte);
    descriptor: (B)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte tag
         0: .line 440
            iload 0 /* tag */
            sipush 255
            iand
            getstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS:[Ljava/lang/Class;
            arraylength
            if_icmplt 2
         1: .line 441
            aconst_null
            areturn
         2: .line 442
      StackMap locals:
      StackMap stack:
            getstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS:[Ljava/lang/Class;
            iload 0 /* tag */
            aaload
            areturn
        end local 0 // byte tag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   tag  B
    Signature: (B)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      tag   

  static byte tagForConstant(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class cls
         0: .line 446
            getstatic sun.invoke.anon.ConstantPoolPatch.CONSTANT_VALUE_CLASS_TAG:Ljava/util/Map;
            aload 0 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Byte
            astore 1 /* tag */
        start local 1 // java.lang.Byte tag
         1: .line 447
            aload 1 /* tag */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: java.lang.Byte
      StackMap stack:
         2: aload 1 /* tag */
            invokevirtual java.lang.Byte.byteValue:()B
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.lang.Byte tag
        end local 0 // java.lang.Class cls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   cls  Ljava/lang/Class<*>;
            1    4     1   tag  Ljava/lang/Byte;
    Signature: (Ljava/lang/Class<*>;)B
    MethodParameters:
      Name  Flags
      cls   

  private static void checkClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String className
         0: .line 451
            aload 0 /* className */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 1
            aload 0 /* className */
            bipush 59
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 2
         1: .line 452
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid class name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* className */
            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
         2: .line 453
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  static java.lang.String addSemis(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String[] names
         0: .line 456
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_5
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
         1: .line 457
            aload 2 /* buf */
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 458
            aload 1 /* names */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: java.lang.String java.lang.String[] java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* name2 */
        start local 3 // java.lang.String name2
         4: .line 459
            aload 2 /* buf */
            bipush 59
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* name2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String name2
         5: .line 458
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 3
         7: .line 461
            aload 2 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* res */
        start local 3 // java.lang.String res
         8: .line 462
            getstatic sun.invoke.anon.ConstantPoolPatch.$assertionsDisabled:Z
            ifne 9
            aload 1 /* names */
            arraylength
            aload 3 /* res */
            invokestatic sun.invoke.anon.ConstantPoolPatch.stripSemis:(ILjava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            aload 0 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 463
      StackMap locals: java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String
      StackMap stack:
            getstatic sun.invoke.anon.ConstantPoolPatch.$assertionsDisabled:Z
            ifne 10
            aload 1 /* names */
            arraylength
            aload 3 /* res */
            invokestatic sun.invoke.anon.ConstantPoolPatch.stripSemis:(ILjava/lang/String;)[Ljava/lang/String;
            iconst_1
            aaload
            aload 1 /* names */
            iconst_0
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 464
      StackMap locals:
      StackMap stack:
            getstatic sun.invoke.anon.ConstantPoolPatch.$assertionsDisabled:Z
            ifne 12
            aload 1 /* names */
            arraylength
            iconst_1
            if_icmpeq 12
        11: .line 465
            aload 1 /* names */
            arraylength
            aload 3 /* res */
            invokestatic sun.invoke.anon.ConstantPoolPatch.stripSemis:(ILjava/lang/String;)[Ljava/lang/String;
            iconst_2
            aaload
            aload 1 /* names */
            iconst_1
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 466
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            areturn
        end local 3 // java.lang.String res
        end local 2 // java.lang.StringBuilder buf
        end local 1 // java.lang.String[] names
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   name  Ljava/lang/String;
            0   13     1  names  [Ljava/lang/String;
            1   13     2    buf  Ljava/lang/StringBuilder;
            4    5     3  name2  Ljava/lang/String;
            8   13     3    res  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      name   
      names  

  static java.lang.String[] stripSemis(int, java.lang.String);
    descriptor: (ILjava/lang/String;)[Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // int count
        start local 1 // java.lang.String string
         0: .line 470
            iload 0 /* count */
            iconst_1
            iadd
            anewarray java.lang.String
            astore 2 /* res */
        start local 2 // java.lang.String[] res
         1: .line 471
            iconst_0
            istore 3 /* pos */
        start local 3 // int pos
         2: .line 472
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 9
         4: .line 473
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 1 /* string */
            bipush 59
            iload 3 /* pos */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* pos2 */
        start local 5 // int pos2
         5: .line 474
            iload 5 /* pos2 */
            ifge 6
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            istore 5 /* pos2 */
         6: .line 475
      StackMap locals: int
      StackMap stack:
            aload 2 /* res */
            iload 4 /* i */
            aload 1 /* string */
            iload 3 /* pos */
            iload 5 /* pos2 */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
         7: .line 476
            iload 5 /* pos2 */
            istore 3 /* pos */
        end local 5 // int pos2
         8: .line 472
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 0 /* count */
            if_icmplt 4
        end local 4 // int i
        10: .line 478
            aload 2 /* res */
            iload 0 /* count */
            aload 1 /* string */
            iload 3 /* pos */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
        11: .line 479
            aload 2 /* res */
            areturn
        end local 3 // int pos
        end local 2 // java.lang.String[] res
        end local 1 // java.lang.String string
        end local 0 // int count
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0   count  I
            0   12     1  string  Ljava/lang/String;
            1   12     2     res  [Ljava/lang/String;
            2   12     3     pos  I
            3   10     4       i  I
            5    8     5    pos2  I
    MethodParameters:
        Name  Flags
      count   
      string  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // sun.invoke.anon.ConstantPoolPatch this
         0: .line 483
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 484
            aload 1 /* buf */
            ldc "{"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 485
            aconst_null
            astore 2 /* origCP */
        start local 2 // java.lang.Object[] origCP
         3: .line 486
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 18
         5: .line 487
      StackMap locals: java.lang.StringBuilder java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            ifnonnull 6
            goto 17
         6: .line 488
      StackMap locals:
      StackMap stack:
            aload 2 /* origCP */
            ifnull 9
         7: .line 489
            aload 1 /* buf */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 490
            goto 13
         9: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.invoke.anon.ConstantPoolPatch.getOriginalCP:()[Ljava/lang/Object;
            astore 2 /* origCP */
        10: .line 493
            goto 13
      StackMap locals:
      StackMap stack: sun.invoke.anon.InvalidConstantPoolFormatException
        11: pop
        12: .line 494
            iconst_0
            anewarray java.lang.Object
            astore 2 /* origCP */
        13: .line 497
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            aload 2 /* origCP */
            arraylength
            if_icmpge 14
            aload 2 /* origCP */
            iload 3 /* i */
            aaload
            goto 15
      StackMap locals:
      StackMap stack:
        14: ldc "?"
      StackMap locals:
      StackMap stack: java.lang.Object
        15: astore 4 /* orig */
        start local 4 // java.lang.Object orig
        16: .line 498
            aload 1 /* buf */
            aload 4 /* orig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.Object orig
        17: .line 486
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            aload 0 /* this */
            getfield sun.invoke.anon.ConstantPoolPatch.patchArray:[Ljava/lang/Object;
            arraylength
            if_icmplt 5
        end local 3 // int i
        19: .line 500
            aload 1 /* buf */
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 501
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.Object[] origCP
        end local 1 // java.lang.StringBuilder buf
        end local 0 // sun.invoke.anon.ConstantPoolPatch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lsun/invoke/anon/ConstantPoolPatch;
            1   21     1     buf  Ljava/lang/StringBuilder;
            3   21     2  origCP  [Ljava/lang/Object;
            4   19     3       i  I
           16   17     4    orig  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           9    10      11  Class sun.invoke.anon.InvalidConstantPoolFormatException
}
SourceFile: "ConstantPoolPatch.java"
NestMembers:
  sun.invoke.anon.ConstantPoolPatch$1  sun.invoke.anon.ConstantPoolPatch$2
InnerClasses:
  sun.invoke.anon.ConstantPoolPatch$1
  sun.invoke.anon.ConstantPoolPatch$2