public final class com.google.gson.internal.ConstructorConstructor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.gson.internal.ConstructorConstructor
  super_class: java.lang.Object
{
  private final java.util.Map<java.lang.reflect.Type, com.google.gson.InstanceCreator<?>> instanceCreators;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;

  private final com.google.gson.internal.reflect.ReflectionAccessor accessor;
    descriptor: Lcom/google/gson/internal/reflect/ReflectionAccessor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.util.Map<java.lang.reflect.Type, com.google.gson.InstanceCreator<?>>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.gson.internal.ConstructorConstructor this
        start local 1 // java.util.Map instanceCreators
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            invokestatic com.google.gson.internal.reflect.ReflectionAccessor.getInstance:()Lcom/google/gson/internal/reflect/ReflectionAccessor;
            putfield com.google.gson.internal.ConstructorConstructor.accessor:Lcom/google/gson/internal/reflect/ReflectionAccessor;
         2: .line 54
            aload 0 /* this */
            aload 1 /* instanceCreators */
            putfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
         3: .line 55
            return
        end local 1 // java.util.Map instanceCreators
        end local 0 // com.google.gson.internal.ConstructorConstructor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/google/gson/internal/ConstructorConstructor;
            0    4     1  instanceCreators  Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;
    Signature: (Ljava/util/Map<Ljava/lang/reflect/Type;Lcom/google/gson/InstanceCreator<*>;>;)V
    MethodParameters:
                  Name  Flags
      instanceCreators  

  public <T> com.google.gson.internal.ObjectConstructor<T> get(com.google.gson.reflect.TypeToken<T>);
    descriptor: (Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/internal/ObjectConstructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.google.gson.internal.ConstructorConstructor this
        start local 1 // com.google.gson.reflect.TypeToken typeToken
         0: .line 58
            aload 1 /* typeToken */
            invokevirtual com.google.gson.reflect.TypeToken.getType:()Ljava/lang/reflect/Type;
            astore 2 /* type */
        start local 2 // java.lang.reflect.Type type
         1: .line 59
            aload 1 /* typeToken */
            invokevirtual com.google.gson.reflect.TypeToken.getRawType:()Ljava/lang/Class;
            astore 3 /* rawType */
        start local 3 // java.lang.Class rawType
         2: .line 64
            aload 0 /* this */
            getfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
            aload 2 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.gson.InstanceCreator
            astore 4 /* typeCreator */
        start local 4 // com.google.gson.InstanceCreator typeCreator
         3: .line 65
            aload 4 /* typeCreator */
            ifnull 5
         4: .line 66
            new com.google.gson.internal.ConstructorConstructor$1
            dup
            aload 0 /* this */
            aload 4 /* typeCreator */
            aload 2 /* type */
            invokespecial com.google.gson.internal.ConstructorConstructor$1.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V
            areturn
         5: .line 76
      StackMap locals: java.lang.reflect.Type java.lang.Class com.google.gson.InstanceCreator
      StackMap stack:
            aload 0 /* this */
            getfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
            aload 3 /* rawType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.gson.InstanceCreator
         6: .line 75
            astore 5 /* rawTypeCreator */
        start local 5 // com.google.gson.InstanceCreator rawTypeCreator
         7: .line 77
            aload 5 /* rawTypeCreator */
            ifnull 9
         8: .line 78
            new com.google.gson.internal.ConstructorConstructor$2
            dup
            aload 0 /* this */
            aload 5 /* rawTypeCreator */
            aload 2 /* type */
            invokespecial com.google.gson.internal.ConstructorConstructor$2.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/InstanceCreator;Ljava/lang/reflect/Type;)V
            areturn
         9: .line 85
      StackMap locals: com.google.gson.InstanceCreator
      StackMap stack:
            aload 0 /* this */
            aload 3 /* rawType */
            invokevirtual com.google.gson.internal.ConstructorConstructor.newDefaultConstructor:(Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
            astore 6 /* defaultConstructor */
        start local 6 // com.google.gson.internal.ObjectConstructor defaultConstructor
        10: .line 86
            aload 6 /* defaultConstructor */
            ifnull 12
        11: .line 87
            aload 6 /* defaultConstructor */
            areturn
        12: .line 90
      StackMap locals: com.google.gson.internal.ObjectConstructor
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            aload 3 /* rawType */
            invokevirtual com.google.gson.internal.ConstructorConstructor.newDefaultImplementationConstructor:(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
            astore 7 /* defaultImplementation */
        start local 7 // com.google.gson.internal.ObjectConstructor defaultImplementation
        13: .line 91
            aload 7 /* defaultImplementation */
            ifnull 15
        14: .line 92
            aload 7 /* defaultImplementation */
            areturn
        15: .line 96
      StackMap locals: com.google.gson.internal.ObjectConstructor
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            aload 3 /* rawType */
            invokevirtual com.google.gson.internal.ConstructorConstructor.newUnsafeAllocator:(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
            areturn
        end local 7 // com.google.gson.internal.ObjectConstructor defaultImplementation
        end local 6 // com.google.gson.internal.ObjectConstructor defaultConstructor
        end local 5 // com.google.gson.InstanceCreator rawTypeCreator
        end local 4 // com.google.gson.InstanceCreator typeCreator
        end local 3 // java.lang.Class rawType
        end local 2 // java.lang.reflect.Type type
        end local 1 // com.google.gson.reflect.TypeToken typeToken
        end local 0 // com.google.gson.internal.ConstructorConstructor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   16     0                   this  Lcom/google/gson/internal/ConstructorConstructor;
            0   16     1              typeToken  Lcom/google/gson/reflect/TypeToken<TT;>;
            1   16     2                   type  Ljava/lang/reflect/Type;
            2   16     3                rawType  Ljava/lang/Class<-TT;>;
            3   16     4            typeCreator  Lcom/google/gson/InstanceCreator<TT;>;
            7   16     5         rawTypeCreator  Lcom/google/gson/InstanceCreator<TT;>;
           10   16     6     defaultConstructor  Lcom/google/gson/internal/ObjectConstructor<TT;>;
           13   16     7  defaultImplementation  Lcom/google/gson/internal/ObjectConstructor<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/gson/reflect/TypeToken<TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
    MethodParameters:
           Name  Flags
      typeToken  

  private <T> com.google.gson.internal.ObjectConstructor<T> newDefaultConstructor(java.lang.Class<? super T>);
    descriptor: (Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.google.gson.internal.ConstructorConstructor this
        start local 1 // java.lang.Class rawType
         0: .line 101
            aload 1 /* rawType */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 2 /* constructor */
        start local 2 // java.lang.reflect.Constructor constructor
         1: .line 102
            aload 2 /* constructor */
            invokevirtual java.lang.reflect.Constructor.isAccessible:()Z
            ifne 3
         2: .line 103
            aload 0 /* this */
            getfield com.google.gson.internal.ConstructorConstructor.accessor:Lcom/google/gson/internal/reflect/ReflectionAccessor;
            aload 2 /* constructor */
            invokevirtual com.google.gson.internal.reflect.ReflectionAccessor.makeAccessible:(Ljava/lang/reflect/AccessibleObject;)V
         3: .line 105
      StackMap locals: java.lang.reflect.Constructor
      StackMap stack:
            new com.google.gson.internal.ConstructorConstructor$3
            dup
            aload 0 /* this */
            aload 2 /* constructor */
            invokespecial com.google.gson.internal.ConstructorConstructor$3.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Constructor;)V
         4: areturn
        end local 2 // java.lang.reflect.Constructor constructor
         5: .line 124
      StackMap locals: com.google.gson.internal.ConstructorConstructor java.lang.Class
      StackMap stack: java.lang.NoSuchMethodException
            pop
         6: .line 125
            aconst_null
            areturn
        end local 1 // java.lang.Class rawType
        end local 0 // com.google.gson.internal.ConstructorConstructor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/google/gson/internal/ConstructorConstructor;
            0    7     1      rawType  Ljava/lang/Class<-TT;>;
            1    5     2  constructor  Ljava/lang/reflect/Constructor<-TT;>;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.NoSuchMethodException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<-TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
    MethodParameters:
         Name  Flags
      rawType  

  private <T> com.google.gson.internal.ObjectConstructor<T> newDefaultImplementationConstructor(java.lang.reflect.Type, java.lang.Class<? super T>);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.google.gson.internal.ConstructorConstructor this
        start local 1 // java.lang.reflect.Type type
        start local 2 // java.lang.Class rawType
         0: .line 136
            ldc Ljava/util/Collection;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 10
         1: .line 137
            ldc Ljava/util/SortedSet;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 3
         2: .line 138
            new com.google.gson.internal.ConstructorConstructor$4
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$4.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
         3: .line 143
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/EnumSet;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 144
            new com.google.gson.internal.ConstructorConstructor$5
            dup
            aload 0 /* this */
            aload 1 /* type */
            invokespecial com.google.gson.internal.ConstructorConstructor$5.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/reflect/Type;)V
            areturn
         5: .line 159
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Set;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 7
         6: .line 160
            new com.google.gson.internal.ConstructorConstructor$6
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$6.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
         7: .line 165
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Queue;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         8: .line 166
            new com.google.gson.internal.ConstructorConstructor$7
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$7.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
         9: .line 172
      StackMap locals:
      StackMap stack:
            new com.google.gson.internal.ConstructorConstructor$8
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$8.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
        10: .line 180
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/Map;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 23
        11: .line 181
            ldc Ljava/util/concurrent/ConcurrentNavigableMap;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 13
        12: .line 182
            new com.google.gson.internal.ConstructorConstructor$9
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$9.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
        13: .line 187
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 15
        14: .line 188
            new com.google.gson.internal.ConstructorConstructor$10
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$10.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
        15: .line 193
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/SortedMap;
            aload 2 /* rawType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 17
        16: .line 194
            new com.google.gson.internal.ConstructorConstructor$11
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$11.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
        17: .line 199
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 22
            ldc Ljava/lang/String;
        18: .line 200
            aload 1 /* type */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            iconst_0
            aaload
            invokestatic com.google.gson.reflect.TypeToken.get:(Ljava/lang/reflect/Type;)Lcom/google/gson/reflect/TypeToken;
            invokevirtual com.google.gson.reflect.TypeToken.getRawType:()Ljava/lang/Class;
        19: .line 199
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
        20: .line 200
            ifne 22
        21: .line 201
            new com.google.gson.internal.ConstructorConstructor$12
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$12.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
        22: .line 207
      StackMap locals:
      StackMap stack:
            new com.google.gson.internal.ConstructorConstructor$13
            dup
            aload 0 /* this */
            invokespecial com.google.gson.internal.ConstructorConstructor$13.<init>:(Lcom/google/gson/internal/ConstructorConstructor;)V
            areturn
        23: .line 215
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Class rawType
        end local 1 // java.lang.reflect.Type type
        end local 0 // com.google.gson.internal.ConstructorConstructor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Lcom/google/gson/internal/ConstructorConstructor;
            0   24     1     type  Ljava/lang/reflect/Type;
            0   24     2  rawType  Ljava/lang/Class<-TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Type;Ljava/lang/Class<-TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
    MethodParameters:
         Name  Flags
      type     final
      rawType  

  private <T> com.google.gson.internal.ObjectConstructor<T> newUnsafeAllocator(java.lang.reflect.Type, java.lang.Class<? super T>);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/google/gson/internal/ObjectConstructor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.google.gson.internal.ConstructorConstructor this
        start local 1 // java.lang.reflect.Type type
        start local 2 // java.lang.Class rawType
         0: .line 220
            new com.google.gson.internal.ConstructorConstructor$14
            dup
            aload 0 /* this */
            aload 2 /* rawType */
            aload 1 /* type */
            invokespecial com.google.gson.internal.ConstructorConstructor$14.<init>:(Lcom/google/gson/internal/ConstructorConstructor;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
            areturn
        end local 2 // java.lang.Class rawType
        end local 1 // java.lang.reflect.Type type
        end local 0 // com.google.gson.internal.ConstructorConstructor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/google/gson/internal/ConstructorConstructor;
            0    1     1     type  Ljava/lang/reflect/Type;
            0    1     2  rawType  Ljava/lang/Class<-TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Type;Ljava/lang/Class<-TT;>;)Lcom/google/gson/internal/ObjectConstructor<TT;>;
    MethodParameters:
         Name  Flags
      type     final
      rawType  final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.gson.internal.ConstructorConstructor this
         0: .line 236
            aload 0 /* this */
            getfield com.google.gson.internal.ConstructorConstructor.instanceCreators:Ljava/util/Map;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.google.gson.internal.ConstructorConstructor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/gson/internal/ConstructorConstructor;
}
SourceFile: "ConstructorConstructor.java"
NestMembers:
  com.google.gson.internal.ConstructorConstructor$1  com.google.gson.internal.ConstructorConstructor$10  com.google.gson.internal.ConstructorConstructor$11  com.google.gson.internal.ConstructorConstructor$12  com.google.gson.internal.ConstructorConstructor$13  com.google.gson.internal.ConstructorConstructor$14  com.google.gson.internal.ConstructorConstructor$2  com.google.gson.internal.ConstructorConstructor$3  com.google.gson.internal.ConstructorConstructor$4  com.google.gson.internal.ConstructorConstructor$5  com.google.gson.internal.ConstructorConstructor$6  com.google.gson.internal.ConstructorConstructor$7  com.google.gson.internal.ConstructorConstructor$8  com.google.gson.internal.ConstructorConstructor$9
InnerClasses:
  com.google.gson.internal.ConstructorConstructor$1
  com.google.gson.internal.ConstructorConstructor$10
  com.google.gson.internal.ConstructorConstructor$11
  com.google.gson.internal.ConstructorConstructor$12
  com.google.gson.internal.ConstructorConstructor$13
  com.google.gson.internal.ConstructorConstructor$14
  com.google.gson.internal.ConstructorConstructor$2
  com.google.gson.internal.ConstructorConstructor$3
  com.google.gson.internal.ConstructorConstructor$4
  com.google.gson.internal.ConstructorConstructor$5
  com.google.gson.internal.ConstructorConstructor$6
  com.google.gson.internal.ConstructorConstructor$7
  com.google.gson.internal.ConstructorConstructor$8
  com.google.gson.internal.ConstructorConstructor$9