public class sun.misc.ProxyGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.misc.ProxyGenerator
  super_class: java.lang.Object
{
  private static final int CLASSFILE_MAJOR_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 49

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private static final java.lang.String superclassName;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/reflect/Proxy"

  private static final java.lang.String handlerFieldName;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "h"

  private static final boolean saveGeneratedFiles;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.reflect.Method hashCodeMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method equalsMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method toStringMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Class<?>[] interfaces;
    descriptor: [Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Signature: [Ljava/lang/Class<*>;

  private int accessFlags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private sun.misc.ProxyGenerator$ConstantPool cp;
    descriptor: Lsun/misc/ProxyGenerator$ConstantPool;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<sun.misc.ProxyGenerator$FieldInfo> fields;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lsun/misc/ProxyGenerator$FieldInfo;>;

  private java.util.List<sun.misc.ProxyGenerator$MethodInfo> methods;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lsun/misc/ProxyGenerator$MethodInfo;>;

  private java.util.Map<java.lang.String, java.util.List<sun.misc.ProxyGenerator$ProxyMethod>> proxyMethods;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;>;

  private int proxyMethodCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  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=6, locals=1, args_size=0
         0: .line 56
            ldc Lsun/misc/ProxyGenerator;
            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.misc.ProxyGenerator.$assertionsDisabled:Z
         3: .line 316
            new sun.security.action.GetBooleanAction
            dup
         4: .line 317
            ldc "sun.misc.ProxyGenerator.saveGeneratedFiles"
         5: .line 316
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         6: .line 315
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
         7: .line 317
            invokevirtual java.lang.Boolean.booleanValue:()Z
         8: .line 314
            putstatic sun.misc.ProxyGenerator.saveGeneratedFiles:Z
         9: .line 374
            ldc Ljava/lang/Object;
            ldc "hashCode"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic sun.misc.ProxyGenerator.hashCodeMethod:Ljava/lang/reflect/Method;
        10: .line 376
            ldc Ljava/lang/Object;
            ldc "equals"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        11: .line 375
            putstatic sun.misc.ProxyGenerator.equalsMethod:Ljava/lang/reflect/Method;
        12: .line 377
            ldc Ljava/lang/Object;
            ldc "toString"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic sun.misc.ProxyGenerator.toStringMethod:Ljava/lang/reflect/Method;
        13: .line 378
            goto 16
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        14: astore 0 /* e */
        start local 0 // java.lang.NoSuchMethodException e
        15: .line 379
            new java.lang.NoSuchMethodError
            dup
            aload 0 /* e */
            invokevirtual java.lang.NoSuchMethodException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodError.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.NoSuchMethodException e
        16: .line 381
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           15   16     0     e  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           9    13      14  Class java.lang.NoSuchMethodException

  public static byte[] generateProxyClass(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class[] interfaces
         0: .line 324
            aload 0 /* name */
            aload 1 /* interfaces */
            bipush 49
            invokestatic sun.misc.ProxyGenerator.generateProxyClass:(Ljava/lang/String;[Ljava/lang/Class;I)[B
            areturn
        end local 1 // java.lang.Class[] interfaces
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        name  Ljava/lang/String;
            0    1     1  interfaces  [Ljava/lang/Class;
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)[B
    MethodParameters:
            Name  Flags
      name        final
      interfaces  

  public static byte[] generateProxyClass(java.lang.String, java.lang.Class<?>[], );
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;I)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class[] interfaces
        start local 2 // int accessFlags
         0: .line 338
            new sun.misc.ProxyGenerator
            dup
            aload 0 /* name */
            aload 1 /* interfaces */
            iload 2 /* accessFlags */
            invokespecial sun.misc.ProxyGenerator.<init>:(Ljava/lang/String;[Ljava/lang/Class;I)V
            astore 3 /* gen */
        start local 3 // sun.misc.ProxyGenerator gen
         1: .line 339
            aload 3 /* gen */
            invokevirtual sun.misc.ProxyGenerator.generateClassFile:()[B
            astore 4 /* classFile */
        start local 4 // byte[] classFile
         2: .line 341
            getstatic sun.misc.ProxyGenerator.saveGeneratedFiles:Z
            ifeq 5
         3: .line 343
            new sun.misc.ProxyGenerator$1
            dup
            aload 0 /* name */
            aload 4 /* classFile */
            invokespecial sun.misc.ProxyGenerator$1.<init>:(Ljava/lang/String;[B)V
         4: .line 342
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 365
      StackMap locals: sun.misc.ProxyGenerator byte[]
      StackMap stack:
            aload 4 /* classFile */
            areturn
        end local 4 // byte[] classFile
        end local 3 // sun.misc.ProxyGenerator gen
        end local 2 // int accessFlags
        end local 1 // java.lang.Class[] interfaces
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         name  Ljava/lang/String;
            0    6     1   interfaces  [Ljava/lang/Class;
            0    6     2  accessFlags  I
            1    6     3          gen  Lsun/misc/ProxyGenerator;
            2    6     4    classFile  [B
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;I)[B
    MethodParameters:
             Name  Flags
      name         final
      interfaces   
      accessFlags  

  private void <init>(java.lang.String, java.lang.Class<?>[], );
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // java.lang.String className
        start local 2 // java.lang.Class[] interfaces
        start local 3 // int accessFlags
         0: .line 417
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 393
            aload 0 /* this */
            new sun.misc.ProxyGenerator$ConstantPool
            dup
            invokespecial sun.misc.ProxyGenerator$ConstantPool.<init>:()V
            putfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
         2: .line 396
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
         3: .line 399
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
         4: .line 405
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
         5: .line 408
            aload 0 /* this */
            iconst_0
            putfield sun.misc.ProxyGenerator.proxyMethodCount:I
         6: .line 418
            aload 0 /* this */
            aload 1 /* className */
            putfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
         7: .line 419
            aload 0 /* this */
            aload 2 /* interfaces */
            putfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
         8: .line 420
            aload 0 /* this */
            iload 3 /* accessFlags */
            putfield sun.misc.ProxyGenerator.accessFlags:I
         9: .line 421
            return
        end local 3 // int accessFlags
        end local 2 // java.lang.Class[] interfaces
        end local 1 // java.lang.String className
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lsun/misc/ProxyGenerator;
            0   10     1    className  Ljava/lang/String;
            0   10     2   interfaces  [Ljava/lang/Class;
            0   10     3  accessFlags  I
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;I)V
    MethodParameters:
             Name  Flags
      className    
      interfaces   
      accessFlags  

  private byte[] generateClassFile();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=1
        start local 0 // sun.misc.ProxyGenerator this
         0: .line 441
            aload 0 /* this */
            getstatic sun.misc.ProxyGenerator.hashCodeMethod:Ljava/lang/reflect/Method;
            ldc Ljava/lang/Object;
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         1: .line 442
            aload 0 /* this */
            getstatic sun.misc.ProxyGenerator.equalsMethod:Ljava/lang/reflect/Method;
            ldc Ljava/lang/Object;
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         2: .line 443
            aload 0 /* this */
            getstatic sun.misc.ProxyGenerator.toStringMethod:Ljava/lang/reflect/Method;
            ldc Ljava/lang/Object;
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         3: .line 450
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 11
      StackMap locals: sun.misc.ProxyGenerator top int int java.lang.Class[]
      StackMap stack:
         4: aload 4
            iload 2
            aaload
            astore 1 /* intf */
        start local 1 // java.lang.Class intf
         5: .line 451
            aload 1 /* intf */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: sun.misc.ProxyGenerator java.lang.Class int int java.lang.Class[] top int int java.lang.reflect.Method[]
      StackMap stack:
         6: aload 8
            iload 6
            aaload
            astore 5 /* m */
        start local 5 // java.lang.reflect.Method m
         7: .line 452
            aload 0 /* this */
            aload 5 /* m */
            aload 1 /* intf */
            invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
        end local 5 // java.lang.reflect.Method m
         8: .line 451
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 6
        end local 1 // java.lang.Class intf
        10: .line 450
            iinc 2 1
      StackMap locals: sun.misc.ProxyGenerator top int int java.lang.Class[]
      StackMap stack:
        11: iload 2
            iload 3
            if_icmplt 4
        12: .line 460
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 15
      StackMap locals: sun.misc.ProxyGenerator top java.util.Iterator
      StackMap stack:
        13: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 1 /* sigmethods */
        start local 1 // java.util.List sigmethods
        14: .line 461
            aload 1 /* sigmethods */
            invokestatic sun.misc.ProxyGenerator.checkReturnTypes:(Ljava/util/List;)V
        end local 1 // java.util.List sigmethods
        15: .line 460
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 469
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            aload 0 /* this */
            invokevirtual sun.misc.ProxyGenerator.generateConstructor:()Lsun/misc/ProxyGenerator$MethodInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 471
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 27
      StackMap locals:
      StackMap stack:
        18: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 1 /* sigmethods */
        start local 1 // java.util.List sigmethods
        19: .line 472
            aload 1 /* sigmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 26
      StackMap locals: sun.misc.ProxyGenerator java.util.List java.util.Iterator top java.util.Iterator
      StackMap stack:
        20: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 3 /* pm */
        start local 3 // sun.misc.ProxyGenerator$ProxyMethod pm
        21: .line 475
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            new sun.misc.ProxyGenerator$FieldInfo
            dup
            aload 0 /* this */
            aload 3 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.methodFieldName:Ljava/lang/String;
        22: .line 476
            ldc "Ljava/lang/reflect/Method;"
        23: .line 477
            bipush 10
            invokespecial sun.misc.ProxyGenerator$FieldInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
        24: .line 475
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 480
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            aload 3 /* pm */
            invokevirtual sun.misc.ProxyGenerator$ProxyMethod.generateMethod:()Lsun/misc/ProxyGenerator$MethodInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // sun.misc.ProxyGenerator$ProxyMethod pm
        26: .line 472
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        end local 1 // java.util.List sigmethods
        27: .line 471
      StackMap locals: sun.misc.ProxyGenerator top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        28: .line 484
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            aload 0 /* this */
            invokevirtual sun.misc.ProxyGenerator.generateStaticInitializer:()Lsun/misc/ProxyGenerator$MethodInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 486
            goto 32
      StackMap locals: sun.misc.ProxyGenerator
      StackMap stack: java.io.IOException
        30: astore 1 /* e */
        start local 1 // java.io.IOException e
        31: .line 487
            new java.lang.InternalError
            dup
            ldc "unexpected I/O Exception"
            aload 1 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        32: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ldc 65535
            if_icmple 34
        33: .line 491
            new java.lang.IllegalArgumentException
            dup
            ldc "method limit exceeded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ldc 65535
            if_icmple 36
        35: .line 494
            new java.lang.IllegalArgumentException
            dup
            ldc "field limit exceeded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            pop
        37: .line 506
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/reflect/Proxy"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            pop
        38: .line 507
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 42
      StackMap locals: sun.misc.ProxyGenerator top int int java.lang.Class[]
      StackMap stack:
        39: aload 4
            iload 2
            aaload
            astore 1 /* intf */
        start local 1 // java.lang.Class intf
        40: .line 508
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 1 /* intf */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            pop
        end local 1 // java.lang.Class intf
        41: .line 507
            iinc 2 1
      StackMap locals:
      StackMap stack:
        42: iload 2
            iload 3
            if_icmplt 39
        43: .line 515
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.setReadOnly:()V
        44: .line 517
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 1 /* bout */
        start local 1 // java.io.ByteArrayOutputStream bout
        45: .line 518
            new java.io.DataOutputStream
            dup
            aload 1 /* bout */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* dout */
        start local 2 // java.io.DataOutputStream dout
        46: .line 526
            aload 2 /* dout */
            ldc -889275714
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
        47: .line 528
            aload 2 /* dout */
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        48: .line 530
            aload 2 /* dout */
            bipush 49
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        49: .line 532
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 2 /* dout */
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.write:(Ljava/io/OutputStream;)V
        50: .line 535
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.accessFlags:I
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        51: .line 537
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        52: .line 539
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/reflect/Proxy"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        53: .line 542
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            arraylength
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        54: .line 544
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 60
      StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream top int int java.lang.Class[]
      StackMap stack:
        55: aload 6
            iload 4
            aaload
            astore 3 /* intf */
        start local 3 // java.lang.Class intf
        56: .line 545
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        57: .line 546
            aload 3 /* intf */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
        58: .line 545
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        end local 3 // java.lang.Class intf
        59: .line 544
            iinc 4 1
      StackMap locals:
      StackMap stack:
        60: iload 4
            iload 5
            if_icmplt 55
        61: .line 550
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        62: .line 552
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 65
      StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream top java.util.Iterator
      StackMap stack:
        63: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$FieldInfo
            astore 3 /* f */
        start local 3 // sun.misc.ProxyGenerator$FieldInfo f
        64: .line 553
            aload 3 /* f */
            aload 2 /* dout */
            invokevirtual sun.misc.ProxyGenerator$FieldInfo.write:(Ljava/io/DataOutputStream;)V
        end local 3 // sun.misc.ProxyGenerator$FieldInfo f
        65: .line 552
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 63
        66: .line 557
            aload 2 /* dout */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        67: .line 559
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 70
      StackMap locals:
      StackMap stack:
        68: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$MethodInfo
            astore 3 /* m */
        start local 3 // sun.misc.ProxyGenerator$MethodInfo m
        69: .line 560
            aload 3 /* m */
            aload 2 /* dout */
            invokevirtual sun.misc.ProxyGenerator$MethodInfo.write:(Ljava/io/DataOutputStream;)V
        end local 3 // sun.misc.ProxyGenerator$MethodInfo m
        70: .line 559
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 68
        71: .line 564
            aload 2 /* dout */
            iconst_0
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        72: .line 566
            goto 75
      StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream
      StackMap stack: java.io.IOException
        73: astore 3 /* e */
        start local 3 // java.io.IOException e
        74: .line 567
            new java.lang.InternalError
            dup
            ldc "unexpected I/O Exception"
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        75: .line 570
      StackMap locals:
      StackMap stack:
            aload 1 /* bout */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 2 // java.io.DataOutputStream dout
        end local 1 // java.io.ByteArrayOutputStream bout
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   76     0        this  Lsun/misc/ProxyGenerator;
            5   10     1        intf  Ljava/lang/Class<*>;
            7    8     5           m  Ljava/lang/reflect/Method;
           14   15     1  sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
           19   27     1  sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
           21   26     3          pm  Lsun/misc/ProxyGenerator$ProxyMethod;
           31   32     1           e  Ljava/io/IOException;
           40   41     1        intf  Ljava/lang/Class<*>;
           45   76     1        bout  Ljava/io/ByteArrayOutputStream;
           46   76     2        dout  Ljava/io/DataOutputStream;
           56   59     3        intf  Ljava/lang/Class<*>;
           64   65     3           f  Lsun/misc/ProxyGenerator$FieldInfo;
           69   70     3           m  Lsun/misc/ProxyGenerator$MethodInfo;
           74   75     3           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          16    29      30  Class java.io.IOException
          46    72      73  Class java.io.IOException

  private void addProxyMethod(java.lang.reflect.Method, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // java.lang.reflect.Method m
        start local 2 // java.lang.Class fromClass
         0: .line 587
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 588
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 4 /* parameterTypes */
        start local 4 // java.lang.Class[] parameterTypes
         2: .line 589
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 5 /* returnType */
        start local 5 // java.lang.Class returnType
         3: .line 590
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
            astore 6 /* exceptionTypes */
        start local 6 // java.lang.Class[] exceptionTypes
         4: .line 592
            new java.lang.StringBuilder
            dup
            aload 3 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* parameterTypes */
            invokestatic sun.misc.ProxyGenerator.getParameterDescriptors:([Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* sig */
        start local 7 // java.lang.String sig
         5: .line 593
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            aload 7 /* sig */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* sigmethods */
        start local 8 // java.util.List sigmethods
         6: .line 594
            aload 8 /* sigmethods */
            ifnull 22
         7: .line 595
            aload 8 /* sigmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 20
      StackMap locals: sun.misc.ProxyGenerator java.lang.reflect.Method java.lang.Class java.lang.String java.lang.Class[] java.lang.Class java.lang.Class[] java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 9 /* pm */
        start local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
         9: .line 596
            aload 5 /* returnType */
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
            if_acmpne 20
        10: .line 603
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* legalExceptions */
        start local 11 // java.util.List legalExceptions
        11: .line 605
            aload 6 /* exceptionTypes */
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
            aload 11 /* legalExceptions */
        12: .line 604
            invokestatic sun.misc.ProxyGenerator.collectCompatibleTypes:([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
        13: .line 607
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
            aload 6 /* exceptionTypes */
            aload 11 /* legalExceptions */
        14: .line 606
            invokestatic sun.misc.ProxyGenerator.collectCompatibleTypes:([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
        15: .line 608
            aload 9 /* pm */
            aload 11 /* legalExceptions */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Class
            putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
        16: .line 609
            aload 9 /* pm */
        17: .line 610
            aload 11 /* legalExceptions */
            aload 9 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
        18: .line 609
            putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
        19: .line 611
            return
        end local 11 // java.util.List legalExceptions
        end local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
        20: .line 595
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        21: .line 614
            goto 24
        22: .line 615
      StackMap locals: sun.misc.ProxyGenerator java.lang.reflect.Method java.lang.Class java.lang.String java.lang.Class[] java.lang.Class java.lang.Class[] java.lang.String java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* sigmethods */
        23: .line 616
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            aload 7 /* sig */
            aload 8 /* sigmethods */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 618
      StackMap locals:
      StackMap stack:
            aload 8 /* sigmethods */
            new sun.misc.ProxyGenerator$ProxyMethod
            dup
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* parameterTypes */
            aload 5 /* returnType */
        25: .line 619
            aload 6 /* exceptionTypes */
            aload 2 /* fromClass */
            invokespecial sun.misc.ProxyGenerator$ProxyMethod.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Class;)V
        26: .line 618
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 620
            return
        end local 8 // java.util.List sigmethods
        end local 7 // java.lang.String sig
        end local 6 // java.lang.Class[] exceptionTypes
        end local 5 // java.lang.Class returnType
        end local 4 // java.lang.Class[] parameterTypes
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class fromClass
        end local 1 // java.lang.reflect.Method m
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lsun/misc/ProxyGenerator;
            0   28     1                m  Ljava/lang/reflect/Method;
            0   28     2        fromClass  Ljava/lang/Class<*>;
            1   28     3             name  Ljava/lang/String;
            2   28     4   parameterTypes  [Ljava/lang/Class;
            3   28     5       returnType  Ljava/lang/Class<*>;
            4   28     6   exceptionTypes  [Ljava/lang/Class;
            5   28     7              sig  Ljava/lang/String;
            6   28     8       sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
            9   20     9               pm  Lsun/misc/ProxyGenerator$ProxyMethod;
           11   20    11  legalExceptions  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/lang/reflect/Method;Ljava/lang/Class<*>;)V
    MethodParameters:
           Name  Flags
      m          
      fromClass  

  private static void checkReturnTypes(java.util.List<sun.misc.ProxyGenerator$ProxyMethod>);
    descriptor: (Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.util.List methods
         0: .line 637
            aload 0 /* methods */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpge 2
         1: .line 638
            return
         2: .line 645
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 1 /* uncoveredReturnTypes */
        start local 1 // java.util.LinkedList uncoveredReturnTypes
         3: .line 648
            aload 0 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 31
      StackMap locals: java.util.List java.util.LinkedList top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 2 /* pm */
        start local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
         5: .line 649
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
            astore 4 /* newReturnType */
        start local 4 // java.lang.Class newReturnType
         6: .line 650
            aload 4 /* newReturnType */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 16
         7: .line 651
            new java.lang.IllegalArgumentException
            dup
         8: .line 652
            new java.lang.StringBuilder
            dup
            ldc "methods with same signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 653
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
        10: .line 654
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
        11: .line 653
            invokestatic sun.misc.ProxyGenerator.getFriendlyMethodSignature:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 655
            ldc " but incompatible return types: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 656
            aload 4 /* newReturnType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " and others"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 652
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 651
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 658
      StackMap locals: java.util.List java.util.LinkedList sun.misc.ProxyGenerator$ProxyMethod java.util.Iterator java.lang.Class
      StackMap stack:
            iconst_0
            istore 5 /* added */
        start local 5 // boolean added
        17: .line 664
            aload 1 /* uncoveredReturnTypes */
            invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
            astore 6 /* liter */
        start local 6 // java.util.ListIterator liter
        18: .line 665
            goto 28
        19: .line 666
      StackMap locals: int java.util.ListIterator
      StackMap stack:
            aload 6 /* liter */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* uncoveredReturnType */
        start local 7 // java.lang.Class uncoveredReturnType
        20: .line 672
            aload 4 /* newReturnType */
            aload 7 /* uncoveredReturnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 22
        21: .line 673
            getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
            ifne 31
            iload 5 /* added */
            ifeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 683
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 7 /* uncoveredReturnType */
            aload 4 /* newReturnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 28
        23: .line 685
            iload 5 /* added */
            ifne 27
        24: .line 686
            aload 6 /* liter */
            aload 4 /* newReturnType */
            invokeinterface java.util.ListIterator.set:(Ljava/lang/Object;)V
        25: .line 687
            iconst_1
            istore 5 /* added */
        26: .line 688
            goto 28
        27: .line 689
      StackMap locals:
      StackMap stack:
            aload 6 /* liter */
            invokeinterface java.util.ListIterator.remove:()V
        end local 7 // java.lang.Class uncoveredReturnType
        28: .line 665
      StackMap locals:
      StackMap stack:
            aload 6 /* liter */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 19
        29: .line 699
            iload 5 /* added */
            ifne 31
        30: .line 700
            aload 1 /* uncoveredReturnTypes */
            aload 4 /* newReturnType */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.ListIterator liter
        end local 5 // boolean added
        end local 4 // java.lang.Class newReturnType
        end local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
        31: .line 648
      StackMap locals: java.util.List java.util.LinkedList top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        32: .line 708
            aload 1 /* uncoveredReturnTypes */
            invokevirtual java.util.LinkedList.size:()I
            iconst_1
            if_icmple 40
        33: .line 709
            aload 0 /* methods */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 2 /* pm */
        start local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
        34: .line 710
            new java.lang.IllegalArgumentException
            dup
        35: .line 711
            new java.lang.StringBuilder
            dup
            ldc "methods with same signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 712
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
            aload 2 /* pm */
            getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
            invokestatic sun.misc.ProxyGenerator.getFriendlyMethodSignature:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 713
            ldc " but incompatible return types: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* uncoveredReturnTypes */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        38: .line 711
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 710
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // sun.misc.ProxyGenerator$ProxyMethod pm
        40: .line 715
      StackMap locals: java.util.List java.util.LinkedList
      StackMap stack:
            return
        end local 1 // java.util.LinkedList uncoveredReturnTypes
        end local 0 // java.util.List methods
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   41     0               methods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
            3   41     1  uncoveredReturnTypes  Ljava/util/LinkedList<Ljava/lang/Class<*>;>;
            5   31     2                    pm  Lsun/misc/ProxyGenerator$ProxyMethod;
            6   31     4         newReturnType  Ljava/lang/Class<*>;
           17   31     5                 added  Z
           18   31     6                 liter  Ljava/util/ListIterator<Ljava/lang/Class<*>;>;
           20   28     7   uncoveredReturnType  Ljava/lang/Class<*>;
           34   40     2                    pm  Lsun/misc/ProxyGenerator$ProxyMethod;
    Signature: (Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;)V
    MethodParameters:
         Name  Flags
      methods  

  private sun.misc.ProxyGenerator$MethodInfo generateConstructor();
    descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // sun.misc.ProxyGenerator this
         0: .line 1165
            new sun.misc.ProxyGenerator$MethodInfo
            dup
            aload 0 /* this */
         1: .line 1166
            ldc "<init>"
            ldc "(Ljava/lang/reflect/InvocationHandler;)V"
         2: .line 1167
            iconst_1
         3: .line 1165
            invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
            astore 1 /* minfo */
        start local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
         4: .line 1169
            new java.io.DataOutputStream
            dup
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* out */
        start local 2 // java.io.DataOutputStream out
         5: .line 1171
            aload 0 /* this */
            iconst_0
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
         6: .line 1173
            aload 0 /* this */
            iconst_1
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
         7: .line 1175
            aload 2 /* out */
            sipush 183
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         8: .line 1176
            aload 2 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
         9: .line 1177
            ldc "java/lang/reflect/Proxy"
        10: .line 1178
            ldc "<init>"
            ldc "(Ljava/lang/reflect/InvocationHandler;)V"
        11: .line 1176
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        12: .line 1180
            aload 2 /* out */
            sipush 177
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        13: .line 1182
            aload 1 /* minfo */
            bipush 10
            putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
        14: .line 1183
            aload 1 /* minfo */
            iconst_2
            putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
        15: .line 1184
            aload 1 /* minfo */
            iconst_0
            newarray 9
            putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
        16: .line 1186
            aload 1 /* minfo */
            areturn
        end local 2 // java.io.DataOutputStream out
        end local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lsun/misc/ProxyGenerator;
            4   17     1  minfo  Lsun/misc/ProxyGenerator$MethodInfo;
            5   17     2    out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException

  private sun.misc.ProxyGenerator$MethodInfo generateStaticInitializer();
    descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=11, args_size=1
        start local 0 // sun.misc.ProxyGenerator this
         0: .line 1193
            new sun.misc.ProxyGenerator$MethodInfo
            dup
            aload 0 /* this */
         1: .line 1194
            ldc "<clinit>"
            ldc "()V"
            bipush 8
         2: .line 1193
            invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
            astore 1 /* minfo */
        start local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
         3: .line 1196
            iconst_1
            istore 2 /* localSlot0 */
        start local 2 // int localSlot0
         4: .line 1197
            iconst_0
            istore 4 /* tryBegin */
        start local 4 // short tryBegin
         5: .line 1199
            new java.io.DataOutputStream
            dup
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* out */
        start local 6 // java.io.DataOutputStream out
         6: .line 1201
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* sigmethods */
        start local 7 // java.util.List sigmethods
         8: .line 1202
            aload 7 /* sigmethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 11
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream java.util.List java.util.Iterator top java.util.Iterator
      StackMap stack:
         9: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.misc.ProxyGenerator$ProxyMethod
            astore 9 /* pm */
        start local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
        10: .line 1203
            aload 9 /* pm */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator$ProxyMethod.codeFieldInitialization:(Ljava/io/DataOutputStream;)V
        end local 9 // sun.misc.ProxyGenerator$ProxyMethod pm
        11: .line 1202
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 7 // java.util.List sigmethods
        12: .line 1201
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 1207
            aload 6 /* out */
            sipush 177
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        14: .line 1209
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2s
            dup
            istore 3 /* pc */
        start local 3 // short pc
        15: istore 5 /* tryEnd */
        start local 5 // short tryEnd
        16: .line 1211
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
            new sun.misc.ProxyGenerator$ExceptionTableEntry
            dup
        17: .line 1212
            iload 4 /* tryBegin */
            iload 5 /* tryEnd */
            iload 3 /* pc */
        18: .line 1213
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/NoSuchMethodException"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
        19: .line 1211
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 1215
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
        21: .line 1217
            aload 6 /* out */
            sipush 187
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        22: .line 1218
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/NoSuchMethodError"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        23: .line 1220
            aload 6 /* out */
            bipush 89
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        24: .line 1222
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
        25: .line 1224
            aload 6 /* out */
            sipush 182
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        26: .line 1225
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        27: .line 1226
            ldc "java/lang/Throwable"
            ldc "getMessage"
            ldc "()Ljava/lang/String;"
        28: .line 1225
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        29: .line 1228
            aload 6 /* out */
            sipush 183
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        30: .line 1229
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        31: .line 1230
            ldc "java/lang/NoSuchMethodError"
            ldc "<init>"
            ldc "(Ljava/lang/String;)V"
        32: .line 1229
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        33: .line 1232
            aload 6 /* out */
            sipush 191
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        34: .line 1234
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2s
            istore 3 /* pc */
        35: .line 1236
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
            new sun.misc.ProxyGenerator$ExceptionTableEntry
            dup
        36: .line 1237
            iload 4 /* tryBegin */
            iload 5 /* tryEnd */
            iload 3 /* pc */
        37: .line 1238
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/ClassNotFoundException"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
        38: .line 1236
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 1240
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
        40: .line 1242
            aload 6 /* out */
            sipush 187
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        41: .line 1243
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            ldc "java/lang/NoClassDefFoundError"
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        42: .line 1245
            aload 6 /* out */
            bipush 89
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        43: .line 1247
            aload 0 /* this */
            iload 2 /* localSlot0 */
            aload 6 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
        44: .line 1249
            aload 6 /* out */
            sipush 182
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        45: .line 1250
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        46: .line 1251
            ldc "java/lang/Throwable"
            ldc "getMessage"
            ldc "()Ljava/lang/String;"
        47: .line 1250
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        48: .line 1253
            aload 6 /* out */
            sipush 183
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        49: .line 1254
            aload 6 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
        50: .line 1255
            ldc "java/lang/NoClassDefFoundError"
        51: .line 1256
            ldc "<init>"
            ldc "(Ljava/lang/String;)V"
        52: .line 1254
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        53: .line 1258
            aload 6 /* out */
            sipush 191
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        54: .line 1260
            aload 1 /* minfo */
            getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ldc 65535
            if_icmple 56
        55: .line 1261
            new java.lang.IllegalArgumentException
            dup
            ldc "code size limit exceeded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        56: .line 1264
      StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int int int int java.io.DataOutputStream
      StackMap stack:
            aload 1 /* minfo */
            bipush 10
            putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
        57: .line 1265
            aload 1 /* minfo */
            iload 2 /* localSlot0 */
            iconst_1
            iadd
            i2s
            putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
        58: .line 1266
            aload 1 /* minfo */
            iconst_0
            newarray 9
            putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
        59: .line 1268
            aload 1 /* minfo */
            areturn
        end local 6 // java.io.DataOutputStream out
        end local 5 // short tryEnd
        end local 4 // short tryBegin
        end local 3 // short pc
        end local 2 // int localSlot0
        end local 1 // sun.misc.ProxyGenerator$MethodInfo minfo
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   60     0        this  Lsun/misc/ProxyGenerator;
            3   60     1       minfo  Lsun/misc/ProxyGenerator$MethodInfo;
            4   60     2  localSlot0  I
           15   60     3          pc  S
            5   60     4    tryBegin  S
           16   60     5      tryEnd  S
            6   60     6         out  Ljava/io/DataOutputStream;
            8   12     7  sigmethods  Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
           10   11     9          pm  Lsun/misc/ProxyGenerator$ProxyMethod;
    Exceptions:
      throws java.io.IOException

  private void code_iload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1285
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 21
            bipush 26
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1286
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_lload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1291
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 22
            bipush 30
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1292
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_fload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1297
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 23
            bipush 34
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1298
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_dload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1303
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 24
            bipush 38
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1304
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_aload(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1309
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 25
            bipush 42
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1310
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void code_astore(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // java.io.DataOutputStream out
         0: .line 1339
            aload 0 /* this */
            iload 1 /* lvar */
            bipush 58
            bipush 75
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
         1: .line 1340
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/ProxyGenerator;
            0    2     1  lvar  I
            0    2     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      lvar  
      out   

  private void codeLocalLoadStore(int, int, int, java.io.DataOutputStream);
    descriptor: (IIILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int lvar
        start local 2 // int opcode
        start local 3 // int opcode_0
        start local 4 // java.io.DataOutputStream out
         0: .line 1355
            getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
            ifne 2
            iload 1 /* lvar */
            iflt 1
            iload 1 /* lvar */
            ldc 65535
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1356
      StackMap locals:
      StackMap stack:
            iload 1 /* lvar */
            iconst_3
            if_icmpgt 5
         3: .line 1357
            aload 4 /* out */
            iload 3 /* opcode_0 */
            iload 1 /* lvar */
            iadd
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 1358
            goto 12
      StackMap locals:
      StackMap stack:
         5: iload 1 /* lvar */
            sipush 255
            if_icmpgt 9
         6: .line 1359
            aload 4 /* out */
            iload 2 /* opcode */
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 1360
            aload 4 /* out */
            iload 1 /* lvar */
            sipush 255
            iand
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         8: .line 1361
            goto 12
         9: .line 1366
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            sipush 196
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        10: .line 1367
            aload 4 /* out */
            iload 2 /* opcode */
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
        11: .line 1368
            aload 4 /* out */
            iload 1 /* lvar */
            ldc 65535
            iand
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        12: .line 1370
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.io.DataOutputStream out
        end local 3 // int opcode_0
        end local 2 // int opcode
        end local 1 // int lvar
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/misc/ProxyGenerator;
            0   13     1      lvar  I
            0   13     2    opcode  I
            0   13     3  opcode_0  I
            0   13     4       out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      lvar      
      opcode    
      opcode_0  
      out       

  private void code_ldc(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int index
        start local 2 // java.io.DataOutputStream out
         0: .line 1380
            getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
            ifne 2
            iload 1 /* index */
            iflt 1
            iload 1 /* index */
            ldc 65535
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1381
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            sipush 255
            if_icmpgt 6
         3: .line 1382
            aload 2 /* out */
            bipush 18
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         4: .line 1383
            aload 2 /* out */
            iload 1 /* index */
            sipush 255
            iand
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         5: .line 1384
            goto 8
         6: .line 1385
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            bipush 19
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         7: .line 1386
            aload 2 /* out */
            iload 1 /* index */
            ldc 65535
            iand
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         8: .line 1388
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int index
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lsun/misc/ProxyGenerator;
            0    9     1  index  I
            0    9     2    out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  
      out    

  private void code_ipush(int, java.io.DataOutputStream);
    descriptor: (ILjava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // int value
        start local 2 // java.io.DataOutputStream out
         0: .line 1399
            iload 1 /* value */
            iconst_m1
            if_icmplt 3
            iload 1 /* value */
            iconst_5
            if_icmpgt 3
         1: .line 1400
            aload 2 /* out */
            iconst_3
            iload 1 /* value */
            iadd
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 1401
            goto 12
      StackMap locals:
      StackMap stack:
         3: iload 1 /* value */
            bipush -128
            if_icmplt 7
            iload 1 /* value */
            bipush 127
            if_icmpgt 7
         4: .line 1402
            aload 2 /* out */
            bipush 16
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         5: .line 1403
            aload 2 /* out */
            iload 1 /* value */
            sipush 255
            iand
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         6: .line 1404
            goto 12
      StackMap locals:
      StackMap stack:
         7: iload 1 /* value */
            sipush -32768
            if_icmplt 11
            iload 1 /* value */
            sipush 32767
            if_icmpgt 11
         8: .line 1405
            aload 2 /* out */
            bipush 17
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         9: .line 1406
            aload 2 /* out */
            iload 1 /* value */
            ldc 65535
            iand
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
        10: .line 1407
            goto 12
        11: .line 1408
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1410
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // int value
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lsun/misc/ProxyGenerator;
            0   13     1  value  I
            0   13     2    out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      value  
      out    

  private void codeClassForName(java.lang.Class<?>, java.io.DataOutputStream);
    descriptor: (Ljava/lang/Class;Ljava/io/DataOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.ProxyGenerator this
        start local 1 // java.lang.Class cl
        start local 2 // java.io.DataOutputStream out
         0: .line 1421
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
            aload 1 /* cl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getString:(Ljava/lang/String;)S
            aload 2 /* out */
            invokevirtual sun.misc.ProxyGenerator.code_ldc:(ILjava/io/DataOutputStream;)V
         1: .line 1423
            aload 2 /* out */
            sipush 184
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 1424
            aload 2 /* out */
            aload 0 /* this */
            getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
         3: .line 1425
            ldc "java/lang/Class"
         4: .line 1426
            ldc "forName"
            ldc "(Ljava/lang/String;)Ljava/lang/Class;"
         5: .line 1424
            invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
            invokevirtual java.io.DataOutputStream.writeShort:(I)V
         6: .line 1427
            return
        end local 2 // java.io.DataOutputStream out
        end local 1 // java.lang.Class cl
        end local 0 // sun.misc.ProxyGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/misc/ProxyGenerator;
            0    7     1    cl  Ljava/lang/Class<*>;
            0    7     2   out  Ljava/io/DataOutputStream;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;Ljava/io/DataOutputStream;)V
    MethodParameters:
      Name  Flags
      cl    
      out   

  private static java.lang.String dotToSlash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 1442
            aload 0 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.String getMethodDescriptor(java.lang.Class<?>[], java.lang.Class<?>);
    descriptor: ([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class[] parameterTypes
        start local 1 // java.lang.Class returnType
         0: .line 1452
            new java.lang.StringBuilder
            dup
            aload 0 /* parameterTypes */
            invokestatic sun.misc.ProxyGenerator.getParameterDescriptors:([Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 1453
            aload 1 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 2
            ldc "V"
            goto 3
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         2: aload 1 /* returnType */
            invokestatic sun.misc.ProxyGenerator.getFieldType:(Ljava/lang/Class;)Ljava/lang/String;
      StackMap locals: java.lang.Class[] java.lang.Class
      StackMap stack: java.lang.StringBuilder java.lang.String
         3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 1452
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Class returnType
        end local 0 // java.lang.Class[] parameterTypes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  parameterTypes  [Ljava/lang/Class;
            0    5     1      returnType  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      parameterTypes  
      returnType      

  private static java.lang.String getParameterDescriptors(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class[] parameterTypes
         0: .line 1464
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* desc */
        start local 1 // java.lang.StringBuilder desc
         1: .line 1465
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 1466
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* desc */
            aload 0 /* parameterTypes */
            iload 2 /* i */
            aaload
            invokestatic sun.misc.ProxyGenerator.getFieldType:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1465
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* parameterTypes */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 1468
            aload 1 /* desc */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 1469
            aload 1 /* desc */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder desc
        end local 0 // java.lang.Class[] parameterTypes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0  parameterTypes  [Ljava/lang/Class;
            1    8     1            desc  Ljava/lang/StringBuilder;
            2    6     2               i  I
    Signature: ([Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      parameterTypes  

  private static java.lang.String getFieldType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 1478
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 2
         1: .line 1479
            aload 0 /* type */
            invokestatic sun.misc.ProxyGenerator$PrimitiveTypeInfo.get:(Ljava/lang/Class;)Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
            getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.baseTypeString:Ljava/lang/String;
            areturn
         2: .line 1480
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 4
         3: .line 1488
            aload 0 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
         4: .line 1490
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "L"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.String getFriendlyMethodSignature(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class[] parameterTypes
         0: .line 1501
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sig */
        start local 2 // java.lang.StringBuilder sig
         1: .line 1502
            aload 2 /* sig */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 1503
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 17
         4: .line 1504
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 3 /* i */
            ifle 6
         5: .line 1505
            aload 2 /* sig */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 1507
      StackMap locals:
      StackMap stack:
            aload 1 /* parameterTypes */
            iload 3 /* i */
            aaload
            astore 4 /* parameterType */
        start local 4 // java.lang.Class parameterType
         7: .line 1508
            iconst_0
            istore 5 /* dimensions */
        start local 5 // int dimensions
         8: .line 1509
            goto 11
         9: .line 1510
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 4 /* parameterType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 4 /* parameterType */
        10: .line 1511
            iinc 5 /* dimensions */ 1
        11: .line 1509
      StackMap locals:
      StackMap stack:
            aload 4 /* parameterType */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 9
        12: .line 1513
            aload 2 /* sig */
            aload 4 /* parameterType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1514
            goto 15
        14: .line 1515
      StackMap locals:
      StackMap stack:
            aload 2 /* sig */
            ldc "[]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 1514
      StackMap locals:
      StackMap stack:
            iload 5 /* dimensions */
            iinc 5 /* dimensions */ -1
            ifgt 14
        end local 5 // int dimensions
        end local 4 // java.lang.Class parameterType
        16: .line 1503
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            aload 1 /* parameterTypes */
            arraylength
            if_icmplt 4
        end local 3 // int i
        18: .line 1518
            aload 2 /* sig */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 1519
            aload 2 /* sig */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sig
        end local 1 // java.lang.Class[] parameterTypes
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            name  Ljava/lang/String;
            0   20     1  parameterTypes  [Ljava/lang/Class;
            1   20     2             sig  Ljava/lang/StringBuilder;
            3   18     3               i  I
            7   16     4   parameterType  Ljava/lang/Class<*>;
            8   16     5      dimensions  I
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      name            
      parameterTypes  

  private static int getWordsPerType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 1532
            aload 0 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            aload 0 /* type */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 2
         1: .line 1533
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         2: .line 1535
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)I
    MethodParameters:
      Name  Flags
      type  

  private static void collectCompatibleTypes(java.lang.Class<?>[], java.lang.Class<?>[], java.util.List<java.lang.Class<?>>);
    descriptor: ([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=11, args_size=3
        start local 0 // java.lang.Class[] from
        start local 1 // java.lang.Class[] with
        start local 2 // java.util.List list
         0: .line 1552
            aload 0 /* from */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 11
      StackMap locals: java.lang.Class[] java.lang.Class[] java.util.List top int int java.lang.Class[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* fc */
        start local 3 // java.lang.Class fc
         2: .line 1553
            aload 2 /* list */
            aload 3 /* fc */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 10
         3: .line 1554
            aload 1 /* with */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 9
      StackMap locals: java.lang.Class[] java.lang.Class[] java.util.List java.lang.Class int int java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
         4: aload 10
            iload 8
            aaload
            astore 7 /* wc */
        start local 7 // java.lang.Class wc
         5: .line 1555
            aload 7 /* wc */
            aload 3 /* fc */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         6: .line 1556
            aload 2 /* list */
            aload 3 /* fc */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1557
            goto 10
        end local 7 // java.lang.Class wc
         8: .line 1554
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
         9: iload 8
            iload 9
            if_icmplt 4
        end local 3 // java.lang.Class fc
        10: .line 1552
      StackMap locals: java.lang.Class[] java.lang.Class[] java.util.List top int int java.lang.Class[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        11: iload 4
            iload 5
            if_icmplt 1
        12: .line 1562
            return
        end local 2 // java.util.List list
        end local 1 // java.lang.Class[] with
        end local 0 // java.lang.Class[] from
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  from  [Ljava/lang/Class;
            0   13     1  with  [Ljava/lang/Class;
            0   13     2  list  Ljava/util/List<Ljava/lang/Class<*>;>;
            2   10     3    fc  Ljava/lang/Class<*>;
            5    8     7    wc  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;[Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
    MethodParameters:
      Name  Flags
      from  
      with  
      list  

  private static java.util.List<java.lang.Class<?>> computeUniqueCatchList(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=1
        start local 0 // java.lang.Class[] exceptions
         0: .line 1586
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* uniqueList */
        start local 1 // java.util.List uniqueList
         1: .line 1589
            aload 1 /* uniqueList */
            ldc Ljava/lang/Error;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1590
            aload 1 /* uniqueList */
            ldc Ljava/lang/RuntimeException;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1593
            aload 0 /* exceptions */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 22
      StackMap locals: java.lang.Class[] java.util.List top int int java.lang.Class[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* ex */
        start local 2 // java.lang.Class ex
         5: .line 1594
            aload 2 /* ex */
            ldc Ljava/lang/Throwable;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         6: .line 1600
            aload 1 /* uniqueList */
            invokeinterface java.util.List.clear:()V
         7: .line 1601
            goto 23
         8: .line 1602
      StackMap locals: java.lang.Class[] java.util.List java.lang.Class int int java.lang.Class[]
      StackMap stack:
            ldc Ljava/lang/Throwable;
            aload 2 /* ex */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 10
         9: .line 1606
            goto 21
        10: .line 1612
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* j */
        start local 6 // int j
        11: goto 19
        12: .line 1613
      StackMap locals: int
      StackMap stack:
            aload 1 /* uniqueList */
            iload 6 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* ex2 */
        start local 7 // java.lang.Class ex2
        13: .line 1614
            aload 7 /* ex2 */
            aload 2 /* ex */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 15
        14: .line 1619
            goto 21
        15: .line 1620
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* ex */
            aload 7 /* ex2 */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 18
        16: .line 1625
            aload 1 /* uniqueList */
            iload 6 /* j */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        17: .line 1626
            goto 19
        18: .line 1627
      StackMap locals:
      StackMap stack:
            iinc 6 /* j */ 1
        end local 7 // java.lang.Class ex2
        19: .line 1612
      StackMap locals:
      StackMap stack:
            iload 6 /* j */
            aload 1 /* uniqueList */
            invokeinterface java.util.List.size:()I
            if_icmplt 12
        end local 6 // int j
        20: .line 1631
            aload 1 /* uniqueList */
            aload 2 /* ex */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Class ex
        21: .line 1593
      StackMap locals: java.lang.Class[] java.util.List top int int java.lang.Class[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        22: iload 3
            iload 4
            if_icmplt 4
        23: .line 1633
      StackMap locals: java.lang.Class[] java.util.List
      StackMap stack:
            aload 1 /* uniqueList */
            areturn
        end local 1 // java.util.List uniqueList
        end local 0 // java.lang.Class[] exceptions
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0  exceptions  [Ljava/lang/Class;
            1   24     1  uniqueList  Ljava/util/List<Ljava/lang/Class<*>;>;
            5   21     2          ex  Ljava/lang/Class<*>;
           11   20     6           j  I
           13   19     7         ex2  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
            Name  Flags
      exceptions  
}
SourceFile: "ProxyGenerator.java"
NestMembers:
  sun.misc.ProxyGenerator$1  sun.misc.ProxyGenerator$ConstantPool  sun.misc.ProxyGenerator$ConstantPool$Entry  sun.misc.ProxyGenerator$ConstantPool$IndirectEntry  sun.misc.ProxyGenerator$ConstantPool$ValueEntry  sun.misc.ProxyGenerator$ExceptionTableEntry  sun.misc.ProxyGenerator$FieldInfo  sun.misc.ProxyGenerator$MethodInfo  sun.misc.ProxyGenerator$PrimitiveTypeInfo  sun.misc.ProxyGenerator$ProxyMethod
InnerClasses:
  sun.misc.ProxyGenerator$1
  private ConstantPool = sun.misc.ProxyGenerator$ConstantPool of sun.misc.ProxyGenerator
  private ExceptionTableEntry = sun.misc.ProxyGenerator$ExceptionTableEntry of sun.misc.ProxyGenerator
  private FieldInfo = sun.misc.ProxyGenerator$FieldInfo of sun.misc.ProxyGenerator
  private MethodInfo = sun.misc.ProxyGenerator$MethodInfo of sun.misc.ProxyGenerator
  private PrimitiveTypeInfo = sun.misc.ProxyGenerator$PrimitiveTypeInfo of sun.misc.ProxyGenerator
  private ProxyMethod = sun.misc.ProxyGenerator$ProxyMethod of sun.misc.ProxyGenerator