final class com.google.inject.internal.ProxyFactory<T> implements com.google.inject.internal.ConstructionProxyFactory<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.inject.internal.ProxyFactory
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.google.inject.spi.InjectionPoint injectionPoint;
    descriptor: Lcom/google/inject/spi/InjectionPoint;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.common.collect.ImmutableMap<java.lang.reflect.Method, java.util.List<org.aopalliance.intercept.MethodInterceptor>> interceptors;
    descriptor: Lcom/google/common/collect/ImmutableMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/google/common/collect/ImmutableMap<Ljava/lang/reflect/Method;Ljava/util/List<Lorg/aopalliance/intercept/MethodInterceptor;>;>;

  private final java.lang.Class<T> declaringClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TT;>;

  private final java.util.List<java.lang.reflect.Method> methods;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/reflect/Method;>;

  private final net.sf.cglib.proxy.Callback[] callbacks;
    descriptor: [Lnet/sf/cglib/proxy/Callback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.google.inject.internal.BytecodeGen$Visibility visibility;
    descriptor: Lcom/google/inject/internal/BytecodeGen$Visibility;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 49
            ldc Lcom/google/inject/internal/ProxyFactory;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic com.google.inject.internal.ProxyFactory.logger:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.google.inject.spi.InjectionPoint, java.lang.Iterable<com.google.inject.internal.MethodAspect>);
    descriptor: (Lcom/google/inject/spi/InjectionPoint;Ljava/lang/Iterable;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=11, args_size=3
        start local 0 // com.google.inject.internal.ProxyFactory this
        start local 1 // com.google.inject.spi.InjectionPoint injectionPoint
        start local 2 // java.lang.Iterable methodAspects
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            getstatic com.google.inject.internal.BytecodeGen$Visibility.PUBLIC:Lcom/google/inject/internal/BytecodeGen$Visibility;
            putfield com.google.inject.internal.ProxyFactory.visibility:Lcom/google/inject/internal/BytecodeGen$Visibility;
         2: .line 64
            aload 0 /* this */
            aload 1 /* injectionPoint */
            putfield com.google.inject.internal.ProxyFactory.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
         3: .line 67
            aload 1 /* injectionPoint */
            invokevirtual com.google.inject.spi.InjectionPoint.getMember:()Ljava/lang/reflect/Member;
            checkcast java.lang.reflect.Constructor
            astore 3 /* constructor */
        start local 3 // java.lang.reflect.Constructor constructor
         4: .line 68
            aload 0 /* this */
            aload 3 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            putfield com.google.inject.internal.ProxyFactory.declaringClass:Ljava/lang/Class;
         5: .line 71
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            astore 4 /* applicableAspects */
        start local 4 // java.util.List applicableAspects
         6: .line 72
            aload 2 /* methodAspects */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.inject.internal.MethodAspect
            astore 5 /* methodAspect */
        start local 5 // com.google.inject.internal.MethodAspect methodAspect
         8: .line 73
            aload 5 /* methodAspect */
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.declaringClass:Ljava/lang/Class;
            invokevirtual com.google.inject.internal.MethodAspect.matches:(Ljava/lang/Class;)Z
            ifeq 10
         9: .line 74
            aload 4 /* applicableAspects */
            aload 5 /* methodAspect */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.google.inject.internal.MethodAspect methodAspect
        10: .line 72
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 78
            aload 4 /* applicableAspects */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 16
        12: .line 79
            aload 0 /* this */
            invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
            putfield com.google.inject.internal.ProxyFactory.interceptors:Lcom/google/common/collect/ImmutableMap;
        13: .line 80
            aload 0 /* this */
            invokestatic com.google.common.collect.ImmutableList.of:()Lcom/google/common/collect/ImmutableList;
            putfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
        14: .line 81
            aload 0 /* this */
            aconst_null
            putfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
        15: .line 82
            return
        16: .line 86
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List
      StackMap stack:
            aload 0 /* this */
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            putfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
        17: .line 87
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.declaringClass:Ljava/lang/Class;
            aconst_null
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
            invokestatic net.sf.cglib.proxy.Enhancer.getMethods:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
        18: .line 90
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            astore 5 /* methodInterceptorsPairs */
        start local 5 // java.util.List methodInterceptorsPairs
        19: .line 91
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 22
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        20: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
        21: .line 92
            aload 5 /* methodInterceptorsPairs */
            new com.google.inject.internal.ProxyFactory$MethodInterceptorsPair
            dup
            aload 6 /* method */
            invokespecial com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.<init>:(Ljava/lang/reflect/Method;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.reflect.Method method
        22: .line 91
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 96
            iconst_0
            istore 6 /* anyMatched */
        start local 6 // boolean anyMatched
        24: .line 97
            aload 4 /* applicableAspects */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 39
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
        25: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.inject.internal.MethodAspect
            astore 7 /* methodAspect */
        start local 7 // com.google.inject.internal.MethodAspect methodAspect
        26: .line 98
            aload 5 /* methodInterceptorsPairs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 38
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int com.google.inject.internal.MethodAspect java.util.Iterator top java.util.Iterator
      StackMap stack:
        27: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.inject.internal.ProxyFactory$MethodInterceptorsPair
            astore 9 /* pair */
        start local 9 // com.google.inject.internal.ProxyFactory$MethodInterceptorsPair pair
        28: .line 99
            aload 7 /* methodAspect */
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.method:Ljava/lang/reflect/Method;
            invokevirtual com.google.inject.internal.MethodAspect.matches:(Ljava/lang/reflect/Method;)Z
            ifeq 38
        29: .line 100
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.isSynthetic:()Z
            ifeq 35
        30: .line 101
            getstatic com.google.inject.internal.ProxyFactory.logger:Ljava/util/logging/Logger;
        31: .line 102
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
        32: .line 103
            ldc "Method [{0}] is synthetic and is being intercepted by {1}. This could indicate a bug.  The method may be intercepted twice, or may not be intercepted at all."
        33: .line 106
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.method:Ljava/lang/reflect/Method;
            aastore
            dup
            iconst_1
            aload 7 /* methodAspect */
            invokevirtual com.google.inject.internal.MethodAspect.interceptors:()Ljava/util/List;
            aastore
        34: .line 101
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
        35: .line 108
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int com.google.inject.internal.MethodAspect java.util.Iterator com.google.inject.internal.ProxyFactory$MethodInterceptorsPair java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.visibility:Lcom/google/inject/internal/BytecodeGen$Visibility;
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.method:Ljava/lang/reflect/Method;
            invokestatic com.google.inject.internal.BytecodeGen$Visibility.forMember:(Ljava/lang/reflect/Member;)Lcom/google/inject/internal/BytecodeGen$Visibility;
            invokevirtual com.google.inject.internal.BytecodeGen$Visibility.and:(Lcom/google/inject/internal/BytecodeGen$Visibility;)Lcom/google/inject/internal/BytecodeGen$Visibility;
            putfield com.google.inject.internal.ProxyFactory.visibility:Lcom/google/inject/internal/BytecodeGen$Visibility;
        36: .line 109
            aload 9 /* pair */
            aload 7 /* methodAspect */
            invokevirtual com.google.inject.internal.MethodAspect.interceptors:()Ljava/util/List;
            invokevirtual com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.addAll:(Ljava/util/List;)V
        37: .line 110
            iconst_1
            istore 6 /* anyMatched */
        end local 9 // com.google.inject.internal.ProxyFactory$MethodInterceptorsPair pair
        38: .line 98
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int com.google.inject.internal.MethodAspect java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        end local 7 // com.google.inject.internal.MethodAspect methodAspect
        39: .line 97
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        40: .line 115
            iload 6 /* anyMatched */
            ifne 44
        41: .line 116
            aload 0 /* this */
            invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
            putfield com.google.inject.internal.ProxyFactory.interceptors:Lcom/google/common/collect/ImmutableMap;
        42: .line 117
            aload 0 /* this */
            aconst_null
            putfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
        43: .line 118
            return
        44: .line 121
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int
      StackMap stack:
            aconst_null
            astore 7 /* interceptorsMapBuilder */
        start local 7 // com.google.common.collect.ImmutableMap$Builder interceptorsMapBuilder
        45: .line 123
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray net.sf.cglib.proxy.Callback
            putfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
        46: .line 124
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        47: goto 59
        48: .line 125
      StackMap locals: com.google.common.collect.ImmutableMap$Builder int
      StackMap stack:
            aload 5 /* methodInterceptorsPairs */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.google.inject.internal.ProxyFactory$MethodInterceptorsPair
            astore 9 /* pair */
        start local 9 // com.google.inject.internal.ProxyFactory$MethodInterceptorsPair pair
        49: .line 127
            aload 9 /* pair */
            invokevirtual com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.hasInterceptors:()Z
            ifne 52
        50: .line 128
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
            iload 8 /* i */
            getstatic net.sf.cglib.proxy.NoOp.INSTANCE:Lnet/sf/cglib/proxy/NoOp;
            aastore
        51: .line 129
            goto 58
        52: .line 132
      StackMap locals: com.google.inject.internal.ProxyFactory$MethodInterceptorsPair
      StackMap stack:
            aload 7 /* interceptorsMapBuilder */
            ifnonnull 54
        53: .line 133
            invokestatic com.google.common.collect.ImmutableMap.builder:()Lcom/google/common/collect/ImmutableMap$Builder;
            astore 7 /* interceptorsMapBuilder */
        54: .line 137
      StackMap locals:
      StackMap stack:
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.interceptors:Ljava/util/List;
            invokestatic com.google.common.collect.ImmutableSet.copyOf:(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
            invokevirtual com.google.common.collect.ImmutableSet.asList:()Lcom/google/common/collect/ImmutableList;
        55: .line 136
            astore 10 /* deDuplicated */
        start local 10 // com.google.common.collect.ImmutableList deDuplicated
        56: .line 138
            aload 7 /* interceptorsMapBuilder */
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.method:Ljava/lang/reflect/Method;
            aload 10 /* deDuplicated */
            invokevirtual com.google.common.collect.ImmutableMap$Builder.put:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
            pop
        57: .line 139
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
            iload 8 /* i */
            new com.google.inject.internal.InterceptorStackCallback
            dup
            aload 9 /* pair */
            getfield com.google.inject.internal.ProxyFactory$MethodInterceptorsPair.method:Ljava/lang/reflect/Method;
            aload 10 /* deDuplicated */
            invokespecial com.google.inject.internal.InterceptorStackCallback.<init>:(Ljava/lang/reflect/Method;Ljava/util/List;)V
            aastore
        end local 10 // com.google.common.collect.ImmutableList deDuplicated
        end local 9 // com.google.inject.internal.ProxyFactory$MethodInterceptorsPair pair
        58: .line 124
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        59: iload 8 /* i */
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 48
        end local 8 // int i
        60: .line 142
            aload 0 /* this */
        61: .line 143
            aload 7 /* interceptorsMapBuilder */
            ifnull 63
        62: .line 144
            aload 7 /* interceptorsMapBuilder */
            invokevirtual com.google.common.collect.ImmutableMap$Builder.build:()Lcom/google/common/collect/ImmutableMap;
            goto 64
        63: .line 145
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int com.google.common.collect.ImmutableMap$Builder
      StackMap stack: com.google.inject.internal.ProxyFactory
            invokestatic com.google.common.collect.ImmutableMap.of:()Lcom/google/common/collect/ImmutableMap;
        64: .line 142
      StackMap locals: com.google.inject.internal.ProxyFactory com.google.inject.spi.InjectionPoint java.lang.Iterable java.lang.reflect.Constructor java.util.List java.util.List int com.google.common.collect.ImmutableMap$Builder
      StackMap stack: com.google.inject.internal.ProxyFactory com.google.common.collect.ImmutableMap
            putfield com.google.inject.internal.ProxyFactory.interceptors:Lcom/google/common/collect/ImmutableMap;
        65: .line 146
            return
        end local 7 // com.google.common.collect.ImmutableMap$Builder interceptorsMapBuilder
        end local 6 // boolean anyMatched
        end local 5 // java.util.List methodInterceptorsPairs
        end local 4 // java.util.List applicableAspects
        end local 3 // java.lang.reflect.Constructor constructor
        end local 2 // java.lang.Iterable methodAspects
        end local 1 // com.google.inject.spi.InjectionPoint injectionPoint
        end local 0 // com.google.inject.internal.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   66     0                     this  Lcom/google/inject/internal/ProxyFactory<TT;>;
            0   66     1           injectionPoint  Lcom/google/inject/spi/InjectionPoint;
            0   66     2            methodAspects  Ljava/lang/Iterable<Lcom/google/inject/internal/MethodAspect;>;
            4   66     3              constructor  Ljava/lang/reflect/Constructor<TT;>;
            6   66     4        applicableAspects  Ljava/util/List<Lcom/google/inject/internal/MethodAspect;>;
            8   10     5             methodAspect  Lcom/google/inject/internal/MethodAspect;
           19   66     5  methodInterceptorsPairs  Ljava/util/List<Lcom/google/inject/internal/ProxyFactory$MethodInterceptorsPair;>;
           21   22     6                   method  Ljava/lang/reflect/Method;
           24   66     6               anyMatched  Z
           26   39     7             methodAspect  Lcom/google/inject/internal/MethodAspect;
           28   38     9                     pair  Lcom/google/inject/internal/ProxyFactory$MethodInterceptorsPair;
           45   66     7   interceptorsMapBuilder  Lcom/google/common/collect/ImmutableMap$Builder<Ljava/lang/reflect/Method;Ljava/util/List<Lorg/aopalliance/intercept/MethodInterceptor;>;>;
           47   60     8                        i  I
           49   58     9                     pair  Lcom/google/inject/internal/ProxyFactory$MethodInterceptorsPair;
           56   58    10             deDuplicated  Lcom/google/common/collect/ImmutableList<Lorg/aopalliance/intercept/MethodInterceptor;>;
    Signature: (Lcom/google/inject/spi/InjectionPoint;Ljava/lang/Iterable<Lcom/google/inject/internal/MethodAspect;>;)V
    MethodParameters:
                Name  Flags
      injectionPoint  
      methodAspects   

  public com.google.common.collect.ImmutableMap<java.lang.reflect.Method, java.util.List<org.aopalliance.intercept.MethodInterceptor>> getInterceptors();
    descriptor: ()Lcom/google/common/collect/ImmutableMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.inject.internal.ProxyFactory this
         0: .line 150
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.interceptors:Lcom/google/common/collect/ImmutableMap;
            areturn
        end local 0 // com.google.inject.internal.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/internal/ProxyFactory<TT;>;
    Signature: ()Lcom/google/common/collect/ImmutableMap<Ljava/lang/reflect/Method;Ljava/util/List<Lorg/aopalliance/intercept/MethodInterceptor;>;>;

  public com.google.inject.internal.ConstructionProxy<T> create();
    descriptor: ()Lcom/google/inject/internal/ConstructionProxy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // com.google.inject.internal.ProxyFactory this
         0: .line 155
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.interceptors:Lcom/google/common/collect/ImmutableMap;
            invokevirtual com.google.common.collect.ImmutableMap.isEmpty:()Z
            ifeq 2
         1: .line 156
            new com.google.inject.internal.DefaultConstructionProxyFactory
            dup
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
            invokespecial com.google.inject.internal.DefaultConstructionProxyFactory.<init>:(Lcom/google/inject/spi/InjectionPoint;)V
            invokevirtual com.google.inject.internal.DefaultConstructionProxyFactory.create:()Lcom/google/inject/internal/ConstructionProxy;
            areturn
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
            arraylength
            anewarray java.lang.Class
            astore 1 /* callbackTypes */
        start local 1 // java.lang.Class[] callbackTypes
         3: .line 161
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 10
         5: .line 162
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
            iload 2 /* i */
            aaload
            getstatic net.sf.cglib.proxy.NoOp.INSTANCE:Lnet/sf/cglib/proxy/NoOp;
            if_acmpne 8
         6: .line 163
            aload 1 /* callbackTypes */
            iload 2 /* i */
            ldc Lnet/sf/cglib/proxy/NoOp;
            aastore
         7: .line 164
            goto 9
         8: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* callbackTypes */
            iload 2 /* i */
            ldc Lnet/sf/cglib/proxy/MethodInterceptor;
            aastore
         9: .line 161
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
            arraylength
            if_icmplt 5
        end local 2 // int i
        11: .line 172
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.declaringClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.visibility:Lcom/google/inject/internal/BytecodeGen$Visibility;
            invokestatic com.google.inject.internal.BytecodeGen.newEnhancer:(Ljava/lang/Class;Lcom/google/inject/internal/BytecodeGen$Visibility;)Lnet/sf/cglib/proxy/Enhancer;
            astore 2 /* enhancer */
        start local 2 // net.sf.cglib.proxy.Enhancer enhancer
        12: .line 173
            aload 2 /* enhancer */
            new com.google.inject.internal.ProxyFactory$IndicesCallbackFilter
            dup
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.methods:Ljava/util/List;
            invokespecial com.google.inject.internal.ProxyFactory$IndicesCallbackFilter.<init>:(Ljava/util/List;)V
            invokevirtual net.sf.cglib.proxy.Enhancer.setCallbackFilter:(Lnet/sf/cglib/proxy/CallbackFilter;)V
        13: .line 174
            aload 2 /* enhancer */
            aload 1 /* callbackTypes */
            invokevirtual net.sf.cglib.proxy.Enhancer.setCallbackTypes:([Ljava/lang/Class;)V
        14: .line 175
            new com.google.inject.internal.ProxyFactory$ProxyConstructor
            dup
            aload 2 /* enhancer */
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.callbacks:[Lnet/sf/cglib/proxy/Callback;
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.interceptors:Lcom/google/common/collect/ImmutableMap;
            invokespecial com.google.inject.internal.ProxyFactory$ProxyConstructor.<init>:(Lnet/sf/cglib/proxy/Enhancer;Lcom/google/inject/spi/InjectionPoint;[Lnet/sf/cglib/proxy/Callback;Lcom/google/common/collect/ImmutableMap;)V
        15: areturn
        end local 2 // net.sf.cglib.proxy.Enhancer enhancer
        16: .line 176
      StackMap locals: com.google.inject.internal.ProxyFactory java.lang.Class[]
      StackMap stack: java.lang.Throwable
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
        17: .line 177
            new com.google.inject.internal.Errors
            dup
            invokespecial com.google.inject.internal.Errors.<init>:()V
            aload 0 /* this */
            getfield com.google.inject.internal.ProxyFactory.declaringClass:Ljava/lang/Class;
            aload 2 /* e */
            invokevirtual com.google.inject.internal.Errors.errorEnhancingClass:(Ljava/lang/Class;Ljava/lang/Throwable;)Lcom/google/inject/internal/Errors;
            invokevirtual com.google.inject.internal.Errors.toException:()Lcom/google/inject/internal/ErrorsException;
            athrow
        end local 2 // java.lang.Throwable e
        end local 1 // java.lang.Class[] callbackTypes
        end local 0 // com.google.inject.internal.ProxyFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/google/inject/internal/ProxyFactory<TT;>;
            3   18     1  callbackTypes  [Ljava/lang/Class;
            4   11     2              i  I
           12   16     2       enhancer  Lnet/sf/cglib/proxy/Enhancer;
           17   18     2              e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          11    15      16  Class java.lang.Throwable
    Exceptions:
      throws com.google.inject.internal.ErrorsException
    Signature: ()Lcom/google/inject/internal/ConstructionProxy<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/google/inject/internal/ConstructionProxyFactory<TT;>;
SourceFile: "ProxyFactory.java"
NestMembers:
  com.google.inject.internal.ProxyFactory$IndicesCallbackFilter  com.google.inject.internal.ProxyFactory$MethodInterceptorsPair  com.google.inject.internal.ProxyFactory$ProxyConstructor
InnerClasses:
  public Builder = com.google.common.collect.ImmutableMap$Builder of com.google.common.collect.ImmutableMap
  public abstract Visibility = com.google.inject.internal.BytecodeGen$Visibility of com.google.inject.internal.BytecodeGen
  private IndicesCallbackFilter = com.google.inject.internal.ProxyFactory$IndicesCallbackFilter of com.google.inject.internal.ProxyFactory
  private MethodInterceptorsPair = com.google.inject.internal.ProxyFactory$MethodInterceptorsPair of com.google.inject.internal.ProxyFactory
  private ProxyConstructor = com.google.inject.internal.ProxyFactory$ProxyConstructor of com.google.inject.internal.ProxyFactory