ParserConfig.smali

.class public Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
.super Ljava/lang/Object;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;
    }
.end annotation


# static fields
.field public static final AUTOTYPE_ACCEPT:Ljava/lang/String; = "fastjson.parser.autoTypeAccept"

.field public static final AUTOTYPE_SUPPORT_PROPERTY:Ljava/lang/String; = "fastjson.parser.autoTypeSupport"

.field public static final AUTO_SUPPORT:Z

.field public static final DENYS:[Ljava/lang/String;

.field public static final DENYS_INTERNAL:[Ljava/lang/String;

.field public static final DENY_PROPERTY:Ljava/lang/String; = "fastjson.parser.deny"

.field public static final DENY_PROPERTY_INTERNAL:Ljava/lang/String; = "fastjson.parser.deny.internal"

.field public static final SAFE_MODE:Z

.field public static final SAFE_MODE_PROPERTY:Ljava/lang/String; = "fastjson.parser.safeMode"

.field private static final c:[Ljava/lang/String;

.field private static final d:[J

.field public static global:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

.field private static i:Z

.field private static j:Z

.field private static k:Z

.field private static l:Z


# instance fields
.field protected a:Ljava/lang/ClassLoader;

.field protected b:Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;

.field public compatibleWithJavaBean:Z

.field private final e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/tradplus/ads/common/serialization/util/IdentityHashMap<",
            "Ljava/lang/reflect/Type;",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;",
            ">;"
        }
    .end annotation
.end field

.field private final f:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/tradplus/ads/common/serialization/util/IdentityHashMap<",
            "Ljava/lang/reflect/Type;",
            "Lcom/tradplus/ads/common/serialization/util/IdentityHashMap<",
            "Ljava/lang/reflect/Type;",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;",
            ">;>;"
        }
    .end annotation
.end field

.field public final fieldBased:Z

.field private final g:Ljava/util/concurrent/ConcurrentMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/ConcurrentMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Class<",
            "*>;>;"
        }
    .end annotation
.end field

.field private h:Z

.field private m:Z

.field private n:[J

.field private o:[J

.field private p:[J

.field public propertyNamingStrategy:Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;

.field private q:Z

.field private r:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/tradplus/ads/common/serialization/spi/Module;",
            ">;"
        }
    .end annotation
.end field

.field private volatile s:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;",
            ">;"
        }
    .end annotation
.end field

.field public final symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;

.field private t:Z


# direct methods
.method static constructor <clinit>()V
    .registers 2

    const-string v0, "fastjson.parser.deny.internal"

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->DENYS_INTERNAL:[Ljava/lang/String;

    const-string v0, "fastjson.parser.deny"

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->DENYS:[Ljava/lang/String;

    const-string v0, "fastjson.parser.autoTypeSupport"

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    const-string v1, "true"

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    sput-boolean v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->AUTO_SUPPORT:Z

    const-string v0, "fastjson.parser.safeMode"

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    sput-boolean v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->SAFE_MODE:Z

    const-string v0, "fastjson.parser.autoTypeAccept"

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v0

    const/4 v1, 0x0

    if-nez v0, :cond_41

    new-array v0, v1, [Ljava/lang/String;

    :cond_41
    sput-object v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->c:[Ljava/lang/String;

    const/16 v0, 0x39

    new-array v0, v0, [J

    fill-array-data v0, :array_5c

    sput-object v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->d:[J

    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;-><init>()V

    sput-object v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->global:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    sput-boolean v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->i:Z

    sput-boolean v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->j:Z

    sput-boolean v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->k:Z

    sput-boolean v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->l:Z

    return-void

    :array_5c
    .array-data 8
        -0x7d171ecfe948c062L
        -0x79c2d22e17d46127L
        -0x74df7e34c5af42bcL    # -4.397461274202915E-255
        -0x6fffcbe90d753277L    # -1.304612425320331E-231
        -0x6d0dad3c673fd6baL
        -0x61bfb1a7c0dab02cL    # -5.663184347754154E-163
        -0x60d1df049fb65c8fL
        -0x575556d6bb90031cL    # -8.660931078614971E-113
        -0x546472f8c6b73563L    # -1.2596128630232586E-98
        -0x5034ac668c315c09L    # -1.8437248463066885E-78
        -0x4aeeb38feca3bac8L    # -4.515141395732244E-53
        -0x3f01cd4723768217L    # -123691.55384205993
        -0x3a6557b2656b39c0L    # -2.062519066697081E27
        -0x36d2706ed650cc65L    # -3.296140319984399E44
        -0x338dfabc23a18f70L    # -1.8098708904816462E60
        -0x2f18e591eaa9fc3fL    # -5.478753662882175E81
        -0x2ee2d56becc85844L    # -5.533252572810275E82
        -0x2484003e68c96caeL    # -4.9684551070599265E132
        -0x236a7c0ff7833d39L    # -1.0008455900325936E138
        -0x22555ee0135884a2L    # -1.6236380893367258E143
        -0x1f71178b5d90a151L    # -1.3261085623344647E157
        -0x186b0a08232c537bL    # -9.33910802048915E190
        -0x1482b8793b8cc973L    # -6.016157181125066E209
        -0xb5597c6d7fd8326L    # -9.680269230194381E253
        -0x7381064ecdce04aL    # -6.47436122473038E273
        0xd45d6f8c9017faL
        0x6b949ce6c2fe009L
        0x76566c052e83815L
        0x9df9341f0c76702L
        0xb81ba299273d4e6L
        0xd4788669a13ae74L
        0x111d12921c5466daL    # 3.06807714530297E-226
        0x178b0e2dc3ae9fe5L
        0x19dcaf4adc37d6d4L    # 4.21923310396035E-184
        0x1f10a70ee4065963L    # 4.737874920000775E-159
        0x21082dfbf63fbcc1L
        0x24ae2d07fb5d7497L
        0x26c5d923af21e2e1L    # 6.610091059703345E-122
        0x34cc8e52316fa0cbL    # 2.32920267187095E-54
        0x3f64bc3933a6a2dfL    # 0.002531158182325618
        0x42646e60ec7e5189L    # 7.02009533426548E11
        0x44d57a1b1ef53451L    # 4.0568861274459394E23
        0x4a39c6c7acb6aa18L    # 3.7672373999660865E49
        0x4bb3c59964a2fc50L    # 4.848048869469194E56
        0x4f0c3688e8a18f9fL    # 6.231012896022775E72
        0x5449ec9b0280b9efL    # 1.1074768222926346E98
        0x54dc66a59269bae1L    # 6.212002893406516E100
        0x552d9fb02ffc9defL    # 2.0734284478065116E102
        0x557f642131553498L    # 7.030812168447344E103
        0x604d6657082c1ee9L    # 7.883728180658543E155
        0x61d10af54471e5deL    # 1.533482208710523E163
        0x64dc636f343516dcL    # 7.18982986180002E177
        0x73a0be903f2bcbf4L    # 9.36603387325164E248
        0x73fba1e41c4c3553L    # 4.946007966433693E250
        0x7b606f16a261e1e6L    # 1.9550036277967994E286
        0x7f36112f218143b6L    # 6.053149392081782E304
        0x7fe2b8e675da0cefL    # 1.0517778137125186E308
    .end array-data
.end method

.method public constructor <init>()V
    .registers 2

    const/4 v0, 0x0

    invoke-direct {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;-><init>(Z)V

    return-void
.end method

.method public constructor <init>(Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;)V
    .registers 4

    const/4 v0, 0x0

    const/4 v1, 0x0

    invoke-direct {p0, p1, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;-><init>(Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V

    return-void
.end method

.method private constructor <init>(Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V
    .registers 9

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    new-instance v0, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-direct {v0}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;-><init>()V

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    new-instance v0, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const/16 v1, 0x10

    invoke-direct {v0, v1}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;-><init>(I)V

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->f:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;

    const/4 v2, 0x1

    const/high16 v3, 0x3f400000    # 0.75f

    invoke-direct {v0, v1, v3, v2}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->g:Ljava/util/concurrent/ConcurrentMap;

    sget-boolean v0, Lcom/tradplus/ads/common/serialization/util/ASMUtils;->IS_ANDROID:Z

    xor-int/2addr v0, v2

    iput-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->h:Z

    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/SymbolTable;

    const/16 v1, 0x1000

    invoke-direct {v0, v1}, Lcom/tradplus/ads/common/serialization/parser/SymbolTable;-><init>(I)V

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->symbolTable:Lcom/tradplus/ads/common/serialization/parser/SymbolTable;

    sget-boolean v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->AUTO_SUPPORT:Z

    iput-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->q:Z

    sget-boolean v1, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->compatibleWithJavaBean:Z

    iput-boolean v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->compatibleWithJavaBean:Z

    new-instance v1, Ljava/util/ArrayList;

    invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V

    iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->r:Ljava/util/List;

    sget-boolean v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->SAFE_MODE:Z

    iput-boolean v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->t:Z

    const/16 v1, 0x88

    new-array v1, v1, [J

    fill-array-data v1, :array_9a

    iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->o:[J

    sget-object v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->c:[Ljava/lang/String;

    array-length v1, v1

    new-array v1, v1, [J

    const/4 v2, 0x0

    :goto_50
    sget-object v3, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->c:[Ljava/lang/String;

    array-length v4, v3

    if-ge v2, v4, :cond_60

    aget-object v3, v3, v2

    invoke-static {v3}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v3

    aput-wide v3, v1, v2

    add-int/lit8 v2, v2, 0x1

    goto :goto_50

    :cond_60
    invoke-static {v1}, Ljava/util/Arrays;->sort([J)V

    iput-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    iput-boolean p3, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->fieldBased:Z

    if-nez p1, :cond_81

    sget-boolean p3, Lcom/tradplus/ads/common/serialization/util/ASMUtils;->IS_ANDROID:Z

    if-nez p3, :cond_81

    if-nez p2, :cond_7b

    :try_start_6f
    new-instance p2, Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;

    new-instance p3, Lcom/tradplus/ads/common/serialization/util/ASMClassLoader;

    invoke-direct {p3}, Lcom/tradplus/ads/common/serialization/util/ASMClassLoader;-><init>()V

    invoke-direct {p2, p3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;-><init>(Ljava/lang/ClassLoader;)V

    move-object p1, p2

    goto :goto_81

    :cond_7b
    new-instance p3, Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;

    invoke-direct {p3, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;-><init>(Ljava/lang/ClassLoader;)V
    :try_end_80
    .catch Ljava/lang/ExceptionInInitializerError; {:try_start_6f .. :try_end_80} :catch_81
    .catch Ljava/security/AccessControlException; {:try_start_6f .. :try_end_80} :catch_81
    .catch Ljava/lang/NoClassDefFoundError; {:try_start_6f .. :try_end_80} :catch_81

    move-object p1, p3

    :catch_81
    :cond_81
    :goto_81
    iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->b:Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;

    if-nez p1, :cond_87

    iput-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->h:Z

    :cond_87
    invoke-direct {p0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a()V

    sget-object p1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->DENYS:[Ljava/lang/String;

    invoke-direct {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->b([Ljava/lang/String;)V

    sget-object p1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->DENYS_INTERNAL:[Ljava/lang/String;

    invoke-direct {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a([Ljava/lang/String;)V

    sget-object p1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->c:[Ljava/lang/String;

    invoke-direct {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->c([Ljava/lang/String;)V

    return-void

    :array_9a
    .array-data 8
        -0x7f2f38f433d015feL    # -9.556794763479643E-305
        -0x7903d40641508511L    # -5.085553800937495E-275
        -0x780ad5e4f815cc5aL
        -0x71522bf34d56bbbdL
        -0x708a0605f20fc080L    # -3.455901468587826E-234
        -0x6e8d5ac0ea86cf51L
        -0x6dedd28ef1c9b048L    # -1.257180119856368E-221
        -0x6be79918c4100b37L    # -7.248495544345653E-212
        -0x6bcfa3d9a7f08c3bL    # -1.943861383644949E-211
        -0x6bc886d7ce2082c1L
        -0x5edc59d06ce874e0L    # -4.802155510082355E-149
        -0x57a77d31efbb3bb0L
        -0x55c250024ef3b6c9L
        -0x5555f7d9b785c8c9L
        -0x539d9d0ad36755c7L    # -6.886391444241167E-95
        -0x526c85bb67ce1760L    # -3.824696155682281E-89
        -0x51af25e0529f5f6aL    # -1.3554199460470375E-85
        -0x5000b36a4665ccb3L    # -1.6894051133204177E-77
        -0x4bf0cbe38b9136b1L    # -6.213767217225293E-58
        -0x4817128a80a2ec5eL    # -2.2892361373052172E-39
        -0x467494ac696cd017L    # -1.6898413909066546E-31
        -0x4322623ed8990f32L    # -1.644030941651994E-15
        -0x41458d04e3345bdaL    # -1.5764918430089148E-6
        -0x3ff41e21450d7f75L    # -3.485288105512216
        -0x3ef795051cd19da8L    # -200031.3609283145
        -0x3d99b2f6a71301b4L    # -7.662539098639468E11
        -0x3be00836378383fbL    # -1.4742602222991634E20
        -0x399b4c9c4535faf6L    # -1.3120653062289765E31
        -0x38a661401c18dbfaL    # -5.3210898116926836E35
        -0x372b61a9fe199e57L    # -7.184498624325357E42
        -0x369c96af7d028d72L    # -3.463106763999075E45
        -0x2e10320b4cce92ccL    # -4.9428513655242083E86
        -0x2ab46e33884dc613L    # -7.718587662525667E102
        -0x2a6116e0f4f615ffL    # -2.769276834562512E104
        -0x299097546d18010bL    # -2.305158249887012E108
        -0x2735c2a6a167d454L    # -5.293540616952125E119
        -0x232729ea59bb61c2L    # -1.8485208306343955E139
        -0x21dc5f7f6574642aL    # -3.063522061072579E145
        -0x2103df70dc82befcL    # -3.5965336067206575E149
        -0x20d2200cef324c8bL    # -3.0559968239287952E150
        -0x1f651b9fb7bda7d1L    # -2.3076098125244163E157
        -0x1e6e67fb2a40b971L    # -9.894137060283861E161
        -0x1d14c5381a93b982L    # -3.211360471030518E168
        -0x19fc295ae05296d5L    # -2.6342395696172524E183
        -0x16e7b41aa4e269d6L    # -1.816185970555075E198
        -0x160df452da09f7f9L    # -2.2100835374064227E202
        -0xd67c2f662d64b89L    # -1.0343819992267985E244
        -0xc8fd5b5ab6f4718L
        -0xb8b1bbae70d98caL    # -9.573036758577548E252
        -0x816918b205a7244L
        -0x388c51df37d896fL
        -0x30c1879bb467428L    # -7.945197787260532E293
        -0x2a4039effa928e0L    # -7.14947811210233E295
        -0x5ea40fde0e1c84L
        -0x22e57f0e12cbfbL
        0x10e067cd55c5e5L
        0x761619136cc13eL
        0x22baa234c5bfb8aL
        0x3085068cb7201b8L
        0x45b11bc78a3aba3L
        0x55cfca0f2281c07L
        0xb6e292fa5955adeL
        0xee6511b66fd5ef0L    # 6.854342740564376E-237
        0x100150a253996624L    # 1.394104277479804E-231
        0x10b2bdca849d9b3eL    # 3.09032861507223E-228
        0x10dbc48446e0dae5L
        0x144277b467723158L    # 4.388573993986807E-211
        0x14db2e6fead04af0L    # 3.307156557815155E-208
        0x154b6cb22d294cfaL    # 4.271035506616844E-206
        0x17924cca5227622aL
        0x193b2697eaaed41aL    # 3.9000001662652114E-187
        0x1cd6f11c6a358bb7L    # 9.498405308272427E-170
        0x1e0a8c3358ff3daeL    # 5.762601583556236E-164
        0x24652ce717e713bbL
        0x24d2f6048fef4e49L
        0x24ec99d5e7dc5571L    # 8.058828264835688E-131
        0x25e962f1c28f71a2L
        0x275d0732b877af29L
        0x28ac82e44e933606L
        0x2ad1ce3a112f015dL
        0x2adfefbbfe29d931L
        0x2b3a37467a344cdfL
        0x2b6dd8b3229d6837L    # 1.7057077092413725E-99
        0x2d308dbbc851b0d8L    # 5.078962391870398E-91
        0x2fe950d3ea52ae0dL    # 6.832216944281275E-78
        0x313bb4abd8d4554cL    # 1.56808971921097E-71
        0x327c8ed7c8706905L    # 1.6948389662237084E-65
        0x332f0b5369a18310L
        0x339a3e0b6beebee9L    # 4.0826654570968825E-60
        0x33c64b921f523f2fL    # 2.77486720533494E-59
        0x34a81ee78429fdf1L    # 4.918595094295287E-55
        0x378307cb0111e878L    # 2.730734411398275E-41
        0x3826f4b2380c8b9bL    # 3.373058177088523E-38
        0x398f942e01920cf0L    # 1.9461954727645544E-31
        0x3a31412dbb05c7ffL    # 2.1778372103247874E-28
        0x3adba40367f73264L    # 3.5724737671988184E-25
        0x3b0b51ecbf6db221L    # 2.8248237289442712E-24
        0x42d11a560fc9fba9L    # 7.521924278884664E13
        0x43320dc9d2ae0892L    # 5.08171005500021E15
        0x440e89208f445fb9L    # 7.041042216469549E19
        0x46c808a4b5841f57L    # 9.749252615377375E32
        0x49312bdafb0077d9L    # 3.829330118647328E44
        0x4a3797b30328202cL    # 3.448058737338662E49
        0x4ba3e254e758d70dL    # 2.4377845509161763E56
        0x4bf881e49d37f530L    # 9.614713083096315E57
        0x4cf54eec05e3e818L    # 5.478576021141778E62
        0x4da972745feb30c1L    # 1.339945589251118E66
        0x4ef08c90ff16c675L    # 1.8274816638330285E72
        0x4fd10ddc6d13821fL    # 3.085523505057036E76
        0x527db6b46ce3bcbcL    # 2.3643694017797754E89
        0x535e552d6f9700c1L    # 3.954486474370437E93
        0x5728504a6d454ffcL    # 7.309005913296069E111
        0x599b5c1213a099acL    # 4.521565120980506E123
        0x5a5bd85c072e5efeL
        0x5ab0cb3071ab40d1L    # 7.275532043244496E128
        0x5b6149820275ea42L
        0x5d74d3e5b9370476L    # 1.5873759122766088E142
        0x5d92e6ddde40ed84L    # 5.762376793011253E142
        0x5f215622fb630753L    # 1.773407570959078E150
        0x61c5bdd721385107L    # 9.781342160839794E162
        0x62db241274397c34L
        0x63a220e60a17c7b9L    # 8.757288450874107E171
        0x647ab0224e149ebeL    # 1.0561215288164044E176
        0x65f81b84c1d920cdL    # 1.6005507777082922E183
        0x665c53c311193973L    # 1.2036519694555594E185
        0x6749835432e0f0d2L
        0x69b6e0175084b377L    # 1.750995289311963E201
        0x6a47501ebb2afdb2L    # 9.136601149026956E203
        0x6fcabf6fa54cafffL    # 3.244253068846464E230
        0x746bd4a53ec195fbL    # 6.376313675246868E252
        0x74b50bb9260e31ffL    # 1.5429848812177576E254
        0x75cc60f5871d0fd3L    # 2.7270901325332595E259
        0x767a586a5107feefL    # 5.184902282980218E262
        0x7aa7ee3627a19cf3L    # 6.950210684357695E282
        0x7ed9311d28bf1a65L    # 1.0797314149657436E303
        0x7ed9481d28bf417aL    # 1.0835821490243428E303
    .end array-data
.end method

.method public constructor <init>(Ljava/lang/ClassLoader;)V
    .registers 4

    const/4 v0, 0x0

    const/4 v1, 0x0

    invoke-direct {p0, v0, p1, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;-><init>(Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V

    return-void
.end method

.method public constructor <init>(Z)V
    .registers 3

    const/4 v0, 0x0

    invoke-direct {p0, v0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;-><init>(Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V

    return-void
.end method

.method private static a(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
    .registers 7

    invoke-virtual {p0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;

    move-result-object p0

    array-length v0, p0

    const/4 v1, 0x0

    :goto_6
    if-ge v1, v0, :cond_30

    aget-object v2, p0, v1

    invoke-virtual {v2}, Ljava/lang/reflect/Method;->getModifiers()I

    move-result v3

    invoke-static {v3}, Ljava/lang/reflect/Modifier;->isStatic(I)Z

    move-result v3

    if-eqz v3, :cond_2d

    invoke-virtual {v2}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;

    move-result-object v3

    if-ne v3, p1, :cond_2d

    invoke-virtual {v2}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;

    move-result-object v3

    array-length v3, v3

    const/4 v4, 0x1

    if-ne v3, v4, :cond_2d

    const-class v3, Lcom/tradplus/ads/common/serialization/annotation/JSONCreator;

    invoke-virtual {v2, v3}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;

    move-result-object v3

    check-cast v3, Lcom/tradplus/ads/common/serialization/annotation/JSONCreator;

    if-eqz v3, :cond_2d

    goto :goto_31

    :cond_2d
    add-int/lit8 v1, v1, 0x1

    goto :goto_6

    :cond_30
    const/4 v2, 0x0

    :goto_31
    return-object v2
.end method

.method private a()V
    .registers 4

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/text/SimpleDateFormat;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/sql/Timestamp;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->instance_timestamp:Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/sql/Date;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/SqlDateDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/sql/Time;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/TimeDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/TimeDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/Date;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/DateCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/DateCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/Calendar;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CalendarCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CalendarCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljavax/xml/datatype/XMLGregorianCalendar;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CalendarCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CalendarCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Lcom/tradplus/ads/common/serialization/JSONObject;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Lcom/tradplus/ads/common/serialization/JSONArray;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/Map;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/HashMap;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/LinkedHashMap;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/TreeMap;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/ConcurrentMap;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/ConcurrentHashMap;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/Collection;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/List;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/ArrayList;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Object;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/String;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/StringCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/StringCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/StringBuffer;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/StringCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/StringCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/StringBuilder;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/StringCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/StringCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Character;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CharacterCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CharacterCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Character;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/CharacterCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CharacterCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Byte;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Short;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Integer;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/LongCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/LongCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Long;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/LongCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/LongCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/math/BigInteger;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/BigIntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/BigIntegerCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/math/BigDecimal;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/BigDecimalCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/BigDecimalCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/FloatCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/FloatCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Float;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/FloatCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/FloatCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Double;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/BooleanCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/BooleanCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Boolean;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/BooleanCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/BooleanCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Class;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, [C

    new-instance v2, Lcom/tradplus/ads/common/serialization/serializer/CharArrayCodec;

    invoke-direct {v2}, Lcom/tradplus/ads/common/serialization/serializer/CharArrayCodec;-><init>()V

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/atomic/AtomicBoolean;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/BooleanCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/BooleanCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/atomic/AtomicInteger;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/IntegerCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/atomic/AtomicLong;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/LongCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/LongCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/atomic/AtomicReference;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/ReferenceCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/ReferenceCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/ref/WeakReference;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/ReferenceCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/ReferenceCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/ref/SoftReference;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/ReferenceCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/ReferenceCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/UUID;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/TimeZone;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/Locale;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/Currency;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/net/Inet4Address;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/net/Inet6Address;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/net/InetSocketAddress;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/io/File;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/net/URI;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/net/URL;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/regex/Pattern;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/nio/charset/Charset;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Lcom/tradplus/ads/common/serialization/JSONPath;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Number;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/NumberDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/atomic/AtomicIntegerArray;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/AtomicCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/AtomicCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/util/concurrent/atomic/AtomicLongArray;

    sget-object v2, Lcom/tradplus/ads/common/serialization/serializer/AtomicCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/AtomicCodec;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/StackTraceElement;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/StackTraceElementDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/StackTraceElementDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/io/Serializable;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Cloneable;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/lang/Comparable;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Ljava/io/Closeable;

    sget-object v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const-class v1, Lcom/tradplus/ads/common/serialization/JSONPObject;

    new-instance v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/JSONPDeserializer;

    invoke-direct {v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JSONPDeserializer;-><init>()V

    invoke-virtual {v0, v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    return-void
.end method

.method private a([Ljava/lang/String;)V
    .registers 4

    if-nez p1, :cond_3

    return-void

    :cond_3
    const/4 v0, 0x0

    :goto_4
    array-length v1, p1

    if-ge v0, v1, :cond_f

    aget-object v1, p1, v0

    invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->addDenyInternal(Ljava/lang/String;)V

    add-int/lit8 v0, v0, 0x1

    goto :goto_4

    :cond_f
    return-void
.end method

.method private static a(Ljava/lang/String;)[Ljava/lang/String;
    .registers 2

    if-eqz p0, :cond_f

    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v0

    if-lez v0, :cond_f

    const-string v0, ","

    invoke-virtual {p0, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object p0

    return-object p0

    :cond_f
    const/4 p0, 0x0

    return-object p0
.end method

.method private b([Ljava/lang/String;)V
    .registers 4

    if-nez p1, :cond_3

    return-void

    :cond_3
    const/4 v0, 0x0

    :goto_4
    array-length v1, p1

    if-ge v0, v1, :cond_f

    aget-object v1, p1, v0

    invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->addDeny(Ljava/lang/String;)V

    add-int/lit8 v0, v0, 0x1

    goto :goto_4

    :cond_f
    return-void
.end method

.method private c([Ljava/lang/String;)V
    .registers 4

    if-nez p1, :cond_3

    return-void

    :cond_3
    const/4 v0, 0x0

    :goto_4
    array-length v1, p1

    if-ge v0, v1, :cond_f

    aget-object v1, p1, v0

    invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->addAccept(Ljava/lang/String;)V

    add-int/lit8 v0, v0, 0x1

    goto :goto_4

    :cond_f
    return-void
.end method

.method public static getFieldFromCache(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/reflect/Field;
    .registers 9
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/reflect/Field;",
            ">;)",
            "Ljava/lang/reflect/Field;"
        }
    .end annotation

    invoke-interface {p1, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/reflect/Field;

    if-nez v0, :cond_1f

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "_"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/reflect/Field;

    :cond_1f
    if-nez v0, :cond_38

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "m_"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/reflect/Field;

    :cond_38
    if-nez v0, :cond_a2

    const/4 v1, 0x0

    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result v2

    const/16 v3, 0x7a

    const/16 v4, 0x61

    if-lt v2, v4, :cond_5d

    if-gt v2, v3, :cond_5d

    invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C

    move-result-object v0

    aget-char v5, v0, v1

    add-int/lit8 v5, v5, -0x20

    int-to-char v5, v5

    aput-char v5, v0, v1

    new-instance v1, Ljava/lang/String;

    invoke-direct {v1, v0}, Ljava/lang/String;-><init>([C)V

    invoke-interface {p1, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/reflect/Field;

    :cond_5d
    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v1

    const/4 v5, 0x2

    if-le v1, v5, :cond_a2

    const/4 v1, 0x1

    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result v1

    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v6

    if-le v6, v5, :cond_a2

    if-lt v2, v4, :cond_a2

    if-gt v2, v3, :cond_a2

    const/16 v2, 0x41

    if-lt v1, v2, :cond_a2

    const/16 v2, 0x5a

    if-gt v1, v2, :cond_a2

    invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object p1

    invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :cond_83
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_a2

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/util/Map$Entry;

    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/String;

    invoke-virtual {p0, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_83

    invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object p0

    move-object v0, p0

    check-cast v0, Ljava/lang/reflect/Field;

    :cond_a2
    return-object v0
.end method

.method public static getGlobalInstance()Lcom/tradplus/ads/common/serialization/parser/ParserConfig;
    .registers 1

    sget-object v0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->global:Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    return-object v0
.end method

.method public static isPrimitive2(Ljava/lang/Class;)Z
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;)Z"
        }
    .end annotation

    invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z

    move-result v0

    if-nez v0, :cond_4b

    const-class v0, Ljava/lang/Boolean;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Character;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Byte;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Short;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Integer;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Long;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Float;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/Double;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/math/BigInteger;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/math/BigDecimal;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/lang/String;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/util/Date;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/sql/Date;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/sql/Time;

    if-eq p0, v0, :cond_4b

    const-class v0, Ljava/sql/Timestamp;

    if-eq p0, v0, :cond_4b

    invoke-virtual {p0}, Ljava/lang/Class;->isEnum()Z

    move-result p0

    if-eqz p0, :cond_49

    goto :goto_4b

    :cond_49
    const/4 p0, 0x0

    goto :goto_4c

    :cond_4b
    :goto_4b
    const/4 p0, 0x1

    :goto_4c
    return p0
.end method

.method public static parserAllFieldToCache(Ljava/lang/Class;Ljava/util/Map;)V
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/reflect/Field;",
            ">;)V"
        }
    .end annotation

    invoke-virtual {p0}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;

    move-result-object v0

    array-length v1, v0

    const/4 v2, 0x0

    :goto_6
    if-ge v2, v1, :cond_1a

    aget-object v3, v0, v2

    invoke-virtual {v3}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;

    move-result-object v4

    invoke-interface {p1, v4}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v5

    if-nez v5, :cond_17

    invoke-interface {p1, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    :cond_17
    add-int/lit8 v2, v2, 0x1

    goto :goto_6

    :cond_1a
    invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object v0

    if-eqz v0, :cond_2f

    invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object v0

    const-class v1, Ljava/lang/Object;

    if-eq v0, v1, :cond_2f

    invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object p0

    invoke-static {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->parserAllFieldToCache(Ljava/lang/Class;Ljava/util/Map;)V

    :cond_2f
    return-void
.end method


# virtual methods
.method protected a(Ljava/lang/Class;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;)",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;"
        }
    .end annotation

    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;

    invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;-><init>(Ljava/lang/Class;)V

    return-object v0
.end method

.method public addAccept(Ljava/lang/String;)V
    .registers 6

    if-eqz p1, :cond_2c

    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    if-nez v0, :cond_9

    goto :goto_2c

    :cond_9
    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v0

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    invoke-static {p1, v0, v1}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result p1

    if-ltz p1, :cond_16

    return-void

    :cond_16
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    array-length v2, p1

    add-int/lit8 v2, v2, 0x1

    new-array v2, v2, [J

    array-length v3, v2

    add-int/lit8 v3, v3, -0x1

    aput-wide v0, v2, v3

    array-length v0, p1

    const/4 v1, 0x0

    invoke-static {p1, v1, v2, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    invoke-static {v2}, Ljava/util/Arrays;->sort([J)V

    iput-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    :cond_2c
    :goto_2c
    return-void
.end method

.method public addAutoTypeCheckHandler(Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;)V
    .registers 3

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->s:Ljava/util/List;

    if-nez v0, :cond_b

    new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;

    invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V

    iput-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->s:Ljava/util/List;

    :cond_b
    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    return-void
.end method

.method public addDeny(Ljava/lang/String;)V
    .registers 6

    if-eqz p1, :cond_2c

    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    if-nez v0, :cond_9

    goto :goto_2c

    :cond_9
    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v0

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->o:[J

    invoke-static {p1, v0, v1}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result p1

    if-ltz p1, :cond_16

    return-void

    :cond_16
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->o:[J

    array-length v2, p1

    add-int/lit8 v2, v2, 0x1

    new-array v2, v2, [J

    array-length v3, v2

    add-int/lit8 v3, v3, -0x1

    aput-wide v0, v2, v3

    array-length v0, p1

    const/4 v1, 0x0

    invoke-static {p1, v1, v2, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    invoke-static {v2}, Ljava/util/Arrays;->sort([J)V

    iput-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->o:[J

    :cond_2c
    :goto_2c
    return-void
.end method

.method public addDenyInternal(Ljava/lang/String;)V
    .registers 8

    if-eqz p1, :cond_34

    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    if-nez v0, :cond_9

    goto :goto_34

    :cond_9
    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v0

    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->n:[J

    const/4 v2, 0x0

    const/4 v3, 0x1

    if-nez p1, :cond_1a

    new-array p1, v3, [J

    aput-wide v0, p1, v2

    iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->n:[J

    return-void

    :cond_1a
    invoke-static {p1, v0, v1}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result p1

    if-ltz p1, :cond_21

    return-void

    :cond_21
    iget-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->n:[J

    array-length v4, p1

    add-int/2addr v4, v3

    new-array v4, v4, [J

    array-length v5, v4

    sub-int/2addr v5, v3

    aput-wide v0, v4, v5

    array-length v0, p1

    invoke-static {p1, v2, v4, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    invoke-static {v4}, Ljava/util/Arrays;->sort([J)V

    iput-object v4, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->n:[J

    :cond_34
    :goto_34
    return-void
.end method

.method public checkAutoType(Ljava/lang/Class;)Ljava/lang/Class;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class;",
            ")",
            "Ljava/lang/Class<",
            "*>;"
        }
    .end annotation

    invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v0

    if-eqz v0, :cond_7

    return-object p1

    :cond_7
    invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object p1

    const/4 v0, 0x0

    sget v1, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_PARSER_FEATURE:I

    invoke-virtual {p0, p1, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;

    move-result-object p1

    return-object p1
.end method

.method public checkAutoType(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Class;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/lang/Class<",
            "*>;)",
            "Ljava/lang/Class<",
            "*>;"
        }
    .end annotation

    sget v0, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_PARSER_FEATURE:I

    invoke-virtual {p0, p1, p2, v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;

    move-result-object p1

    return-object p1
.end method

.method public checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
    .registers 27
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/lang/Class<",
            "*>;I)",
            "Ljava/lang/Class<",
            "*>;"
        }
    .end annotation

    move-object/from16 v1, p0

    move-object/from16 v0, p1

    move-object/from16 v2, p2

    move/from16 v3, p3

    const/4 v4, 0x0

    if-nez v0, :cond_c

    return-object v4

    :cond_c
    iget-object v5, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->s:Ljava/util/List;

    if-eqz v5, :cond_29

    iget-object v5, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->s:Ljava/util/List;

    invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v5

    :cond_16
    invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z

    move-result v6

    if-eqz v6, :cond_29

    invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v6

    check-cast v6, Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;

    invoke-interface {v6, v0, v2, v3}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig$AutoTypeCheckHandler;->handler(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;

    move-result-object v6

    if-eqz v6, :cond_16

    return-object v6

    :cond_29
    sget-object v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->SafeMode:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v5, v5, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    iget-boolean v6, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->t:Z

    const/4 v7, 0x0

    const/4 v8, 0x1

    if-nez v6, :cond_3f

    and-int v6, v3, v5

    if-nez v6, :cond_3f

    sget v6, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_PARSER_FEATURE:I

    and-int/2addr v5, v6

    if-eqz v5, :cond_3d

    goto :goto_3f

    :cond_3d
    const/4 v5, 0x0

    goto :goto_40

    :cond_3f
    :goto_3f
    const/4 v5, 0x1

    :goto_40
    if-nez v5, :cond_3ed

    invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I

    move-result v5

    const/16 v6, 0xc0

    const-string v9, "autoType is not support. "

    if-ge v5, v6, :cond_3d7

    invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I

    move-result v5

    const/4 v6, 0x3

    if-lt v5, v6, :cond_3d7

    if-nez v2, :cond_57

    :cond_55
    :goto_55
    const/4 v5, 0x0

    goto :goto_bb

    :cond_57
    invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v5

    invoke-static {v5}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v10

    const-wide v12, -0x6f5da0a455dead62L    # -1.514751450580626E-228

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, 0x2d10a5801b9d6136L    # 1.2768618085266423E-91

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, -0x50a795a8e1cfd395L    # -1.2869594668238042E-80

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, -0x12ff8cff584dd83aL    # -1.1341028219519378E217

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, 0x295c4605fd1eaa95L

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, 0x47ef269aadc650b4L    # 3.312520992710671E38

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, 0x6439c4dff712ae8bL    # 6.373467611436065E174

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, -0x1c22678a5d23ad7dL    # -1.1437309411088266E173

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, -0x1d572245fc1961f3L    # -1.8328867399748285E167

    cmp-long v5, v10, v12

    if-eqz v5, :cond_55

    const-wide v12, -0x28cb314b3c162e26L    # -1.2509996135591577E112

    cmp-long v5, v10, v12

    if-nez v5, :cond_ba

    goto :goto_55

    :cond_ba
    const/4 v5, 0x1

    :goto_bb
    const/16 v10, 0x24

    const/16 v11, 0x2e

    invoke-virtual {v0, v10, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;

    move-result-object v10

    invoke-virtual {v10, v7}, Ljava/lang/String;->charAt(I)C

    move-result v12

    int-to-long v12, v12

    const-wide v14, -0x340d631b7bdddcdbL    # -7.302176725335867E57

    xor-long/2addr v12, v14

    const-wide v16, 0x100000001b3L

    mul-long v12, v12, v16

    const-wide v18, -0x509be9b379fdb0e6L    # -2.1176223865607047E-80

    cmp-long v20, v12, v18

    if-eqz v20, :cond_3c1

    invoke-virtual {v10}, Ljava/lang/String;->length()I

    move-result v18

    add-int/lit8 v4, v18, -0x1

    invoke-virtual {v10, v4}, Ljava/lang/String;->charAt(I)C

    move-result v4

    move-object/from16 v20, v9

    int-to-long v8, v4

    xor-long/2addr v8, v12

    mul-long v8, v8, v16

    const-wide v12, 0x9198507b5af98f0L

    cmp-long v4, v8, v12

    if-eqz v4, :cond_3aa

    invoke-virtual {v10, v7}, Ljava/lang/String;->charAt(I)C

    move-result v4

    int-to-long v8, v4

    xor-long/2addr v8, v14

    mul-long v8, v8, v16

    const/4 v4, 0x1

    invoke-virtual {v10, v4}, Ljava/lang/String;->charAt(I)C

    move-result v12

    int-to-long v12, v12

    xor-long/2addr v8, v12

    mul-long v8, v8, v16

    const/4 v4, 0x2

    invoke-virtual {v10, v4}, Ljava/lang/String;->charAt(I)C

    move-result v4

    int-to-long v12, v4

    xor-long/2addr v8, v12

    mul-long v8, v8, v16

    invoke-static {v10}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J

    move-result-wide v12

    sget-object v4, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->d:[J

    invoke-static {v4, v12, v13}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v4

    if-ltz v4, :cond_11f

    const/4 v4, 0x1

    goto :goto_120

    :cond_11f
    const/4 v4, 0x0

    :goto_120
    iget-object v14, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->n:[J

    if-eqz v14, :cond_15c

    move-wide/from16 v21, v8

    const/4 v14, 0x3

    :goto_127
    invoke-virtual {v10}, Ljava/lang/String;->length()I

    move-result v15

    if-ge v14, v15, :cond_15c

    invoke-virtual {v10, v14}, Ljava/lang/String;->charAt(I)C

    move-result v15

    int-to-long v6, v15

    xor-long v6, v21, v6

    mul-long v6, v6, v16

    iget-object v15, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->n:[J

    invoke-static {v15, v6, v7}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v15

    if-gez v15, :cond_145

    add-int/lit8 v14, v14, 0x1

    move-wide/from16 v21, v6

    const/4 v6, 0x3

    const/4 v7, 0x0

    goto :goto_127

    :cond_145
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    move-object/from16 v6, v20

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_15c
    move-object/from16 v6, v20

    if-nez v4, :cond_1bb

    iget-boolean v7, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    if-nez v7, :cond_166

    if-eqz v5, :cond_1bb

    :cond_166
    move-wide v14, v8

    const/4 v7, 0x3

    :goto_168
    invoke-virtual {v10}, Ljava/lang/String;->length()I

    move-result v11

    if-ge v7, v11, :cond_1bb

    invoke-virtual {v10, v7}, Ljava/lang/String;->charAt(I)C

    move-result v11

    move-wide/from16 v21, v8

    int-to-long v8, v11

    xor-long/2addr v8, v14

    mul-long v14, v8, v16

    iget-object v8, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    invoke-static {v8, v14, v15}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v8

    if-ltz v8, :cond_18a

    iget-object v8, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    const/4 v9, 0x1

    invoke-static {v0, v8, v9}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;

    move-result-object v8

    if-eqz v8, :cond_18a

    return-object v8

    :cond_18a
    iget-object v8, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->o:[J

    invoke-static {v8, v14, v15}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v8

    if-ltz v8, :cond_1b6

    invoke-static/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getClassFromMapping(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v8

    if-nez v8, :cond_1b6

    iget-object v8, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    invoke-static {v8, v12, v13}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v8

    if-ltz v8, :cond_1a1

    goto :goto_1b6

    :cond_1a1
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_1b6
    :goto_1b6
    add-int/lit8 v7, v7, 0x1

    move-wide/from16 v8, v21

    goto :goto_168

    :cond_1bb
    move-wide/from16 v21, v8

    invoke-static/range {p1 .. p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getClassFromMapping(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v7

    if-nez v7, :cond_1c9

    iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v7, v0}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->findClass(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v7

    :cond_1c9
    if-nez v7, :cond_1d3

    iget-object v7, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->g:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v7, v0}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v7

    check-cast v7, Ljava/lang/Class;

    :cond_1d3
    if-eqz v4, :cond_1dd

    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    const/4 v7, 0x1

    invoke-static {v0, v4, v7}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;

    move-result-object v4

    goto :goto_1de

    :cond_1dd
    move-object v4, v7

    :goto_1de
    const-string v7, " -> "

    const-string v8, "type not match. "

    if-eqz v4, :cond_211

    if-eqz v2, :cond_210

    const-class v3, Ljava/util/HashMap;

    if-eq v4, v3, :cond_210

    invoke-virtual {v2, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v3

    if-eqz v3, :cond_1f1

    goto :goto_210

    :cond_1f1
    new-instance v3, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v3, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v3

    :cond_210
    :goto_210
    return-object v4

    :cond_211
    iget-boolean v9, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    if-nez v9, :cond_282

    const/4 v9, 0x3

    :goto_216
    invoke-virtual {v10}, Ljava/lang/String;->length()I

    move-result v11

    if-ge v9, v11, :cond_282

    invoke-virtual {v10, v9}, Ljava/lang/String;->charAt(I)C

    move-result v11

    int-to-long v11, v11

    xor-long v11, v21, v11

    mul-long v11, v11, v16

    iget-object v13, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->o:[J

    invoke-static {v13, v11, v12}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v13

    if-gez v13, :cond_26d

    iget-object v13, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->p:[J

    invoke-static {v13, v11, v12}, Ljava/util/Arrays;->binarySearch([JJ)I

    move-result v13

    if-ltz v13, :cond_268

    iget-object v3, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    const/4 v4, 0x1

    invoke-static {v0, v3, v4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;

    move-result-object v3

    if-nez v3, :cond_23f

    return-object v2

    :cond_23f
    if-eqz v2, :cond_267

    invoke-virtual {v2, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v4

    if-nez v4, :cond_248

    goto :goto_267

    :cond_248
    new-instance v3, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v3, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v3

    :cond_267
    :goto_267
    return-object v3

    :cond_268
    add-int/lit8 v9, v9, 0x1

    move-wide/from16 v21, v11

    goto :goto_216

    :cond_26d
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_282
    :try_start_282
    new-instance v9, Ljava/lang/StringBuilder;

    invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V

    const/16 v10, 0x2f

    const/16 v11, 0x2e

    invoke-virtual {v0, v11, v10}, Ljava/lang/String;->replace(CC)Ljava/lang/String;

    move-result-object v10

    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v10, ".class"

    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v9

    iget-object v10, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    if-eqz v10, :cond_2a6

    iget-object v10, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    :goto_2a1
    invoke-virtual {v10, v9}, Ljava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;

    move-result-object v9

    goto :goto_2ad

    :cond_2a6
    const-class v10, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;

    invoke-virtual {v10}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;

    move-result-object v10
    :try_end_2ac
    .catch Ljava/lang/Exception; {:try_start_282 .. :try_end_2ac} :catch_2de
    .catchall {:try_start_282 .. :try_end_2ac} :catchall_2d7

    goto :goto_2a1

    :goto_2ad
    if-eqz v9, :cond_2d0

    :try_start_2af
    new-instance v10, Lcom/tradplus/ads/common/serialization/asm/ClassReader;
    :try_end_2b1
    .catch Ljava/lang/Exception; {:try_start_2af .. :try_end_2b1} :catch_2cb
    .catchall {:try_start_2af .. :try_end_2b1} :catchall_2c7

    const/4 v11, 0x1

    :try_start_2b2
    invoke-direct {v10, v9, v11}, Lcom/tradplus/ads/common/serialization/asm/ClassReader;-><init>(Ljava/io/InputStream;Z)V

    new-instance v12, Lcom/tradplus/ads/common/serialization/asm/TypeCollector;

    const-string v13, "<clinit>"
    :try_end_2b9
    .catch Ljava/lang/Exception; {:try_start_2b2 .. :try_end_2b9} :catch_2cc
    .catchall {:try_start_2b2 .. :try_end_2b9} :catchall_2c7

    const/4 v14, 0x0

    :try_start_2ba
    new-array v15, v14, [Ljava/lang/Class;

    invoke-direct {v12, v13, v15}, Lcom/tradplus/ads/common/serialization/asm/TypeCollector;-><init>(Ljava/lang/String;[Ljava/lang/Class;)V

    invoke-virtual {v10, v12}, Lcom/tradplus/ads/common/serialization/asm/ClassReader;->accept(Lcom/tradplus/ads/common/serialization/asm/TypeCollector;)V

    invoke-virtual {v12}, Lcom/tradplus/ads/common/serialization/asm/TypeCollector;->hasJsonType()Z

    move-result v10
    :try_end_2c6
    .catch Ljava/lang/Exception; {:try_start_2ba .. :try_end_2c6} :catch_2cd
    .catchall {:try_start_2ba .. :try_end_2c6} :catchall_2c7

    goto :goto_2d3

    :catchall_2c7
    move-exception v0

    move-object/from16 v19, v9

    goto :goto_2da

    :catch_2cb
    const/4 v11, 0x1

    :catch_2cc
    const/4 v14, 0x0

    :catch_2cd
    move-object/from16 v19, v9

    goto :goto_2e2

    :cond_2d0
    const/4 v11, 0x1

    const/4 v14, 0x0

    const/4 v10, 0x0

    :goto_2d3
    invoke-static {v9}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->close(Ljava/io/Closeable;)V

    goto :goto_2e6

    :catchall_2d7
    move-exception v0

    const/16 v19, 0x0

    :goto_2da
    invoke-static/range {v19 .. v19}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->close(Ljava/io/Closeable;)V

    throw v0

    :catch_2de
    const/4 v11, 0x1

    const/4 v14, 0x0

    const/16 v19, 0x0

    :goto_2e2
    invoke-static/range {v19 .. v19}, Lcom/tradplus/ads/common/serialization/util/IOUtils;->close(Ljava/io/Closeable;)V

    const/4 v10, 0x0

    :goto_2e6
    sget-object v9, Lcom/tradplus/ads/common/serialization/parser/Feature;->SupportAutoType:Lcom/tradplus/ads/common/serialization/parser/Feature;

    iget v9, v9, Lcom/tradplus/ads/common/serialization/parser/Feature;->mask:I

    iget-boolean v12, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    if-nez v12, :cond_2f9

    and-int/2addr v3, v9

    if-nez v3, :cond_2f9

    sget v3, Lcom/tradplus/ads/common/serialization/JSON;->DEFAULT_PARSER_FEATURE:I

    and-int/2addr v3, v9

    if-eqz v3, :cond_2f7

    goto :goto_2f9

    :cond_2f7
    const/4 v3, 0x0

    goto :goto_2fa

    :cond_2f9
    :goto_2f9
    const/4 v3, 0x1

    :goto_2fa
    if-nez v3, :cond_300

    if-nez v10, :cond_300

    if-eqz v5, :cond_30b

    :cond_300
    if-nez v3, :cond_304

    if-eqz v10, :cond_305

    :cond_304
    const/4 v14, 0x1

    :cond_305
    iget-object v4, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    invoke-static {v0, v4, v14}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;

    move-result-object v4

    :cond_30b
    if-eqz v4, :cond_38d

    if-eqz v10, :cond_313

    invoke-static {v0, v4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->addMapping(Ljava/lang/String;Ljava/lang/Class;)V

    return-object v4

    :cond_313
    const-class v5, Ljava/lang/ClassLoader;

    invoke-virtual {v5, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v5

    if-nez v5, :cond_378

    const-class v5, Ljavax/sql/DataSource;

    invoke-virtual {v5, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v5

    if-nez v5, :cond_378

    const-class v5, Ljavax/sql/RowSet;

    invoke-virtual {v5, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v5

    if-nez v5, :cond_378

    if-eqz v2, :cond_356

    invoke-virtual {v2, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v3

    if-eqz v3, :cond_337

    invoke-static {v0, v4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->addMapping(Ljava/lang/String;Ljava/lang/Class;)V

    return-object v4

    :cond_337
    new-instance v3, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v3, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v3

    :cond_356
    iget-object v2, v1, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->propertyNamingStrategy:Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;

    invoke-static {v4, v4, v2}, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;)Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    move-result-object v2

    iget-object v2, v2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;

    if-eqz v2, :cond_38d

    if-nez v3, :cond_363

    goto :goto_38d

    :cond_363
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_378
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_38d
    :goto_38d
    if-eqz v3, :cond_395

    if-eqz v4, :cond_394

    invoke-static {v0, v4}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->addMapping(Ljava/lang/String;Ljava/lang/Class;)V

    :cond_394
    return-object v4

    :cond_395
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_3aa
    move-object/from16 v6, v20

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_3c1
    move-object v6, v9

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_3d7
    move-object v6, v9

    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_3ed
    new-instance v2, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, "safeMode not support autoType : "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;)V

    goto :goto_405

    :goto_404
    throw v2

    :goto_405
    goto :goto_404
.end method

.method public clearDeserializers()V
    .registers 2

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v0}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->clear()V

    invoke-direct {p0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a()V

    return-void
.end method

.method public configFromPropety(Ljava/util/Properties;)V
    .registers 3

    const-string v0, "fastjson.parser.deny"

    invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->b([Ljava/lang/String;)V

    const-string v0, "fastjson.parser.autoTypeAccept"

    invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->c([Ljava/lang/String;)V

    const-string v0, "fastjson.parser.autoTypeSupport"

    invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    const-string v0, "true"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_2c

    const/4 p1, 0x1

    :goto_29
    iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    goto :goto_36

    :cond_2c
    const-string v0, "false"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result p1

    if-eqz p1, :cond_36

    const/4 p1, 0x0

    goto :goto_29

    :cond_36
    :goto_36
    return-void
.end method

.method public createFieldDeserializer(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;Lcom/tradplus/ads/common/serialization/util/FieldInfo;)Lcom/tradplus/ads/common/serialization/parser/deserializer/FieldDeserializer;
    .registers 8

    iget-object p2, p2, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->clazz:Ljava/lang/Class;

    iget-object v0, p3, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    invoke-virtual {p3}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getAnnotation()Lcom/tradplus/ads/common/serialization/annotation/JSONField;

    move-result-object v1

    const/4 v2, 0x0

    if-eqz v1, :cond_15

    invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->deserializeUsing()Ljava/lang/Class;

    move-result-object v1

    const-class v3, Ljava/lang/Void;

    if-ne v1, v3, :cond_14

    goto :goto_15

    :cond_14
    move-object v2, v1

    :cond_15
    :goto_15
    if-nez v2, :cond_25

    const-class v1, Ljava/util/List;

    if-eq v0, v1, :cond_1f

    const-class v1, Ljava/util/ArrayList;

    if-ne v0, v1, :cond_25

    :cond_1f
    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/ArrayListTypeFieldDeserializer;

    invoke-direct {v0, p1, p2, p3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ArrayListTypeFieldDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/util/FieldInfo;)V

    return-object v0

    :cond_25
    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;

    invoke-direct {v0, p1, p2, p3}, Lcom/tradplus/ads/common/serialization/parser/deserializer/DefaultFieldDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/util/FieldInfo;)V

    return-object v0
.end method

.method public createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    .registers 14
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;",
            "Ljava/lang/reflect/Type;",
            ")",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;"
        }
    .end annotation

    iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->h:Z

    iget-boolean v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->fieldBased:Z

    const/4 v2, 0x1

    xor-int/2addr v1, v2

    and-int/2addr v0, v1

    const/4 v1, 0x0

    if-eqz v0, :cond_57

    const-class v3, Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    invoke-static {p1, v3}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;

    move-result-object v3

    check-cast v3, Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    if-eqz v3, :cond_38

    invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->deserializer()Ljava/lang/Class;

    move-result-object v0

    const-class v4, Ljava/lang/Void;

    if-eq v0, v4, :cond_28

    :try_start_1c
    invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;

    move-result-object v0

    instance-of v4, v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    if-eqz v4, :cond_28

    check-cast v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    :try_end_26
    .catch Ljava/lang/Throwable; {:try_start_1c .. :try_end_26} :catch_27

    return-object v0

    :catch_27
    nop

    :cond_28
    invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->asm()Z

    move-result v0

    if-eqz v0, :cond_37

    invoke-interface {v3}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->parseFeatures()[Lcom/tradplus/ads/common/serialization/parser/Feature;

    move-result-object v0

    array-length v0, v0

    if-nez v0, :cond_37

    const/4 v0, 0x1

    goto :goto_38

    :cond_37
    const/4 v0, 0x0

    :cond_38
    :goto_38
    if-eqz v0, :cond_57

    invoke-static {p1, v3}, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->getBuilderClass(Ljava/lang/Class;Lcom/tradplus/ads/common/serialization/annotation/JSONType;)Ljava/lang/Class;

    move-result-object v3

    if-nez v3, :cond_41

    move-object v3, p1

    :cond_41
    invoke-virtual {v3}, Ljava/lang/Class;->getModifiers()I

    move-result v4

    invoke-static {v4}, Ljava/lang/reflect/Modifier;->isPublic(I)Z

    move-result v4

    if-nez v4, :cond_4d

    const/4 v0, 0x0

    goto :goto_57

    :cond_4d
    invoke-virtual {v3}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object v3

    const-class v4, Ljava/lang/Object;

    if-eq v3, v4, :cond_57

    if-nez v3, :cond_41

    :cond_57
    :goto_57
    invoke-virtual {p1}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;

    move-result-object v3

    array-length v3, v3

    if-eqz v3, :cond_5f

    const/4 v0, 0x0

    :cond_5f
    if-eqz v0, :cond_6e

    iget-object v3, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->b:Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;

    if-eqz v3, :cond_6e

    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;->classLoader:Lcom/tradplus/ads/common/serialization/util/ASMClassLoader;

    invoke-virtual {v3, p1}, Lcom/tradplus/ads/common/serialization/util/ASMClassLoader;->isExternalClass(Ljava/lang/Class;)Z

    move-result v3

    if-eqz v3, :cond_6e

    const/4 v0, 0x0

    :cond_6e
    if-eqz v0, :cond_78

    invoke-virtual {p1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/tradplus/ads/common/serialization/util/ASMUtils;->checkName(Ljava/lang/String;)Z

    move-result v0

    :cond_78
    if-eqz v0, :cond_135

    invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z

    move-result v3

    if-eqz v3, :cond_81

    const/4 v0, 0x0

    :cond_81
    iget-object v5, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->propertyNamingStrategy:Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;

    const/4 v6, 0x0

    sget-boolean v7, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->compatibleWithJavaBean:Z

    iget-boolean v8, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->q:Z

    move-object v3, p1

    move-object v4, p2

    invoke-static/range {v3 .. v8}, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;ZZZ)Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    move-result-object v3

    if-eqz v0, :cond_98

    iget-object v4, v3, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v4, v4

    const/16 v5, 0xc8

    if-le v4, v5, :cond_98

    const/4 v0, 0x0

    :cond_98
    iget-object v4, v3, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->defaultConstructor:Ljava/lang/reflect/Constructor;

    if-eqz v0, :cond_a5

    if-nez v4, :cond_a5

    invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z

    move-result v4

    if-nez v4, :cond_a5

    const/4 v0, 0x0

    :cond_a5
    iget-object v3, v3, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->fields:[Lcom/tradplus/ads/common/serialization/util/FieldInfo;

    array-length v4, v3

    const/4 v5, 0x0

    :goto_a9
    if-ge v5, v4, :cond_135

    aget-object v6, v3, v5

    iget-boolean v7, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getOnly:Z

    if-eqz v7, :cond_b4

    :cond_b1
    :goto_b1
    const/4 v0, 0x0

    goto/16 :goto_135

    :cond_b4
    iget-object v7, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    invoke-virtual {v7}, Ljava/lang/Class;->getModifiers()I

    move-result v8

    invoke-static {v8}, Ljava/lang/reflect/Modifier;->isPublic(I)Z

    move-result v8

    if-nez v8, :cond_c1

    goto :goto_b1

    :cond_c1
    invoke-virtual {v7}, Ljava/lang/Class;->isMemberClass()Z

    move-result v8

    if-eqz v8, :cond_d2

    invoke-virtual {v7}, Ljava/lang/Class;->getModifiers()I

    move-result v8

    invoke-static {v8}, Ljava/lang/reflect/Modifier;->isStatic(I)Z

    move-result v8

    if-nez v8, :cond_d2

    goto :goto_b1

    :cond_d2
    invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getMember()Ljava/lang/reflect/Member;

    move-result-object v8

    if-eqz v8, :cond_e7

    invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getMember()Ljava/lang/reflect/Member;

    move-result-object v8

    invoke-interface {v8}, Ljava/lang/reflect/Member;->getName()Ljava/lang/String;

    move-result-object v8

    invoke-static {v8}, Lcom/tradplus/ads/common/serialization/util/ASMUtils;->checkName(Ljava/lang/String;)Z

    move-result v8

    if-nez v8, :cond_e7

    goto :goto_b1

    :cond_e7
    invoke-virtual {v6}, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->getAnnotation()Lcom/tradplus/ads/common/serialization/annotation/JSONField;

    move-result-object v8

    if-eqz v8, :cond_116

    invoke-interface {v8}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->name()Ljava/lang/String;

    move-result-object v9

    invoke-static {v9}, Lcom/tradplus/ads/common/serialization/util/ASMUtils;->checkName(Ljava/lang/String;)Z

    move-result v9

    if-eqz v9, :cond_b1

    invoke-interface {v8}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->format()Ljava/lang/String;

    move-result-object v9

    invoke-virtual {v9}, Ljava/lang/String;->length()I

    move-result v9

    if-nez v9, :cond_b1

    invoke-interface {v8}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->deserializeUsing()Ljava/lang/Class;

    move-result-object v9

    const-class v10, Ljava/lang/Void;

    if-ne v9, v10, :cond_b1

    invoke-interface {v8}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->parseFeatures()[Lcom/tradplus/ads/common/serialization/parser/Feature;

    move-result-object v9

    array-length v9, v9

    if-nez v9, :cond_b1

    invoke-interface {v8}, Lcom/tradplus/ads/common/serialization/annotation/JSONField;->unwrapped()Z

    move-result v8

    if-nez v8, :cond_b1

    :cond_116
    iget-object v6, v6, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->method:Ljava/lang/reflect/Method;

    if-eqz v6, :cond_122

    invoke-virtual {v6}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;

    move-result-object v6

    array-length v6, v6

    if-le v6, v2, :cond_122

    goto :goto_b1

    :cond_122
    invoke-virtual {v7}, Ljava/lang/Class;->isEnum()Z

    move-result v6

    if-eqz v6, :cond_131

    invoke-virtual {p0, v7}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v6

    instance-of v6, v6, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumDeserializer;

    if-nez v6, :cond_131

    goto :goto_b1

    :cond_131
    add-int/lit8 v5, v5, 0x1

    goto/16 :goto_a9

    :cond_135
    :goto_135
    if-eqz v0, :cond_148

    invoke-virtual {p1}, Ljava/lang/Class;->isMemberClass()Z

    move-result v2

    if-eqz v2, :cond_148

    invoke-virtual {p1}, Ljava/lang/Class;->getModifiers()I

    move-result v2

    invoke-static {v2}, Ljava/lang/reflect/Modifier;->isStatic(I)Z

    move-result v2

    if-nez v2, :cond_148

    const/4 v0, 0x0

    :cond_148
    if-eqz v0, :cond_151

    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->isXmlField(Ljava/lang/Class;)Z

    move-result v2

    if-eqz v2, :cond_151

    const/4 v0, 0x0

    :cond_151
    if-nez v0, :cond_159

    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    invoke-direct {v0, p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;)V

    return-object v0

    :cond_159
    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->propertyNamingStrategy:Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;

    invoke-static {p1, p2, v0}, Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/PropertyNamingStrategy;)Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;

    move-result-object v0

    :try_start_15f
    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->b:Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;

    invoke-virtual {v1, p0, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ASMDeserializerFactory;->createJavaBeanDeserializer(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1
    :try_end_165
    .catch Ljava/lang/NoSuchMethodException; {:try_start_15f .. :try_end_165} :catch_188
    .catch Lcom/tradplus/ads/common/serialization/JSONException; {:try_start_15f .. :try_end_165} :catch_182
    .catch Ljava/lang/Exception; {:try_start_15f .. :try_end_165} :catch_166

    return-object p1

    :catch_166
    move-exception p2

    new-instance v0, Lcom/tradplus/ads/common/serialization/JSONException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "create asm deserializer error, "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v0, p1, p2}, Lcom/tradplus/ads/common/serialization/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v0

    :catch_182
    new-instance p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    invoke-direct {p1, p0, v0}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Lcom/tradplus/ads/common/serialization/util/JavaBeanInfo;)V

    return-object p1

    :catch_188
    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;

    invoke-direct {v0, p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;)V

    return-object v0
.end method

.method public get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    .registers 4

    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/JSON;->getMixInAnnotations(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;

    move-result-object v0

    if-nez v0, :cond_f

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v0, p1}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    :goto_c
    check-cast p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    return-object p1

    :cond_f
    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->f:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v1, p1}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    if-nez p1, :cond_1b

    const/4 p1, 0x0

    return-object p1

    :cond_1b
    invoke-virtual {p1, v0}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    goto :goto_c
.end method

.method public getDefaultClassLoader()Ljava/lang/ClassLoader;
    .registers 2

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    return-object v0
.end method

.method public getDerializers()Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Lcom/tradplus/ads/common/serialization/util/IdentityHashMap<",
            "Ljava/lang/reflect/Type;",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;",
            ">;"
        }
    .end annotation

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    return-object v0
.end method

.method public getDeserializer(Lcom/tradplus/ads/common/serialization/util/FieldInfo;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    .registers 3

    iget-object v0, p1, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldClass:Ljava/lang/Class;

    iget-object p1, p1, Lcom/tradplus/ads/common/serialization/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;

    invoke-virtual {p0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    return-object p1
.end method

.method public getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    .registers 12
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;",
            "Ljava/lang/reflect/Type;",
            ")",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;"
        }
    .end annotation

    const-string v0, "java.util.Optional"

    invoke-virtual {p0, p2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v1

    if-nez v1, :cond_17

    instance-of v2, p2, Lcom/tradplus/ads/common/serialization/util/ParameterizedTypeImpl;

    if-eqz v2, :cond_17

    move-object v1, p2

    check-cast v1, Lcom/tradplus/ads/common/serialization/util/ParameterizedTypeImpl;

    invoke-static {v1}, Lcom/tradplus/ads/common/serialization/TypeReference;->intern(Lcom/tradplus/ads/common/serialization/util/ParameterizedTypeImpl;)Ljava/lang/reflect/Type;

    move-result-object v1

    invoke-virtual {p0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v1

    :cond_17
    if-eqz v1, :cond_1a

    return-object v1

    :cond_1a
    if-nez p2, :cond_1d

    move-object p2, p1

    :cond_1d
    invoke-virtual {p0, p2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v1

    if-eqz v1, :cond_24

    return-object v1

    :cond_24
    const-class v2, Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    invoke-static {p1, v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;

    move-result-object v2

    check-cast v2, Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    if-eqz v2, :cond_3b

    invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->mappingTo()Ljava/lang/Class;

    move-result-object v2

    const-class v3, Ljava/lang/Void;

    if-eq v2, v3, :cond_3b

    invoke-virtual {p0, v2, v2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    return-object p1

    :cond_3b
    instance-of v2, p2, Ljava/lang/reflect/WildcardType;

    if-nez v2, :cond_47

    instance-of v2, p2, Ljava/lang/reflect/TypeVariable;

    if-nez v2, :cond_47

    instance-of v2, p2, Ljava/lang/reflect/ParameterizedType;

    if-eqz v2, :cond_4b

    :cond_47
    invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v1

    :cond_4b
    if-eqz v1, :cond_4e

    return-object v1

    :cond_4e
    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->r:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v2

    :cond_54
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v3

    if-eqz v3, :cond_6a

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/tradplus/ads/common/serialization/spi/Module;

    invoke-interface {v1, p0, p1}, Lcom/tradplus/ads/common/serialization/spi/Module;->createDeserializer(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v1

    if-eqz v1, :cond_54

    invoke-virtual {p0, p2, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    return-object v1

    :cond_6a
    invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v2

    const/16 v3, 0x24

    const/16 v4, 0x2e

    invoke-virtual {v2, v3, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;

    move-result-object v2

    sget-boolean v3, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->j:Z

    const/4 v4, 0x0

    if-nez v3, :cond_110

    const/4 v3, 0x1

    :try_start_7c
    const-string v5, "java.time."

    invoke-virtual {v2, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v5

    const/4 v6, 0x3

    const/4 v7, 0x2

    const/4 v8, 0x4

    if-eqz v5, :cond_df

    const/16 v0, 0xc

    new-array v0, v0, [Ljava/lang/String;

    const-string v5, "java.time.LocalDateTime"

    aput-object v5, v0, v4

    const-string v5, "java.time.LocalDate"

    aput-object v5, v0, v3

    const-string v5, "java.time.LocalTime"

    aput-object v5, v0, v7

    const-string v5, "java.time.ZonedDateTime"

    aput-object v5, v0, v6

    const-string v5, "java.time.OffsetDateTime"

    aput-object v5, v0, v8

    const/4 v5, 0x5

    const-string v6, "java.time.OffsetTime"

    aput-object v6, v0, v5

    const/4 v5, 0x6

    const-string v6, "java.time.ZoneOffset"

    aput-object v6, v0, v5

    const/4 v5, 0x7

    const-string v6, "java.time.ZoneRegion"

    aput-object v6, v0, v5

    const/16 v5, 0x8

    const-string v6, "java.time.ZoneId"

    aput-object v6, v0, v5

    const/16 v5, 0x9

    const-string v6, "java.time.Period"

    aput-object v6, v0, v5

    const/16 v5, 0xa

    const-string v6, "java.time.Duration"

    aput-object v6, v0, v5

    const/16 v5, 0xb

    const-string v6, "java.time.Instant"

    aput-object v6, v0, v5

    array-length v5, v0

    const/4 v6, 0x0

    :goto_c8
    if-ge v6, v5, :cond_110

    aget-object v7, v0, v6

    invoke-virtual {v7, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v8

    if-eqz v8, :cond_dc

    invoke-static {v7}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    sget-object v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/Jdk8DateCodec;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/Jdk8DateCodec;

    invoke-virtual {p0, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    return-object v1

    :cond_dc
    add-int/lit8 v6, v6, 0x1

    goto :goto_c8

    :cond_df
    invoke-virtual {v2, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v5

    if-eqz v5, :cond_110

    new-array v5, v8, [Ljava/lang/String;

    aput-object v0, v5, v4

    const-string v0, "java.util.OptionalDouble"

    aput-object v0, v5, v3

    const-string v0, "java.util.OptionalInt"

    aput-object v0, v5, v7

    const-string v0, "java.util.OptionalLong"

    aput-object v0, v5, v6

    array-length v0, v5

    const/4 v6, 0x0

    :goto_f7
    if-ge v6, v0, :cond_110

    aget-object v7, v5, v6

    invoke-virtual {v7, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v8

    if-eqz v8, :cond_10b

    invoke-static {v7}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    sget-object v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/OptionalCodec;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/OptionalCodec;

    invoke-virtual {p0, v0, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V
    :try_end_10a
    .catch Ljava/lang/Throwable; {:try_start_7c .. :try_end_10a} :catch_10e

    return-object v1

    :cond_10b
    add-int/lit8 v6, v6, 0x1

    goto :goto_f7

    :catch_10e
    sput-boolean v3, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->j:Z

    :cond_110
    const-string v0, "java.nio.ByteBuffer"

    invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_11d

    sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/ByteBufferCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/ByteBufferCodec;

    invoke-virtual {p0, p1, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    :cond_11d
    const-string v0, "java.nio.file.Path"

    invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_12a

    sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {p0, p1, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    :cond_12a
    const-class v0, Ljava/util/Map$Entry;

    if-ne p1, v0, :cond_133

    sget-object v1, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    invoke-virtual {p0, p1, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    :cond_133
    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;

    move-result-object v0

    :try_start_13b
    const-class v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/AutowiredObjectDeserializer;

    invoke-static {v2, v0}, Lcom/tradplus/ads/common/serialization/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :cond_145
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_169

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/tradplus/ads/common/serialization/parser/deserializer/AutowiredObjectDeserializer;

    invoke-interface {v2}, Lcom/tradplus/ads/common/serialization/parser/deserializer/AutowiredObjectDeserializer;->getAutowiredFor()Ljava/util/Set;

    move-result-object v3

    invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_159
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v5

    if-eqz v5, :cond_145

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Ljava/lang/reflect/Type;

    invoke-virtual {p0, v5, v2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V
    :try_end_168
    .catch Ljava/lang/Exception; {:try_start_13b .. :try_end_168} :catch_169

    goto :goto_159

    :catch_169
    :cond_169
    if-nez v1, :cond_16f

    invoke-virtual {p0, p2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v1

    :cond_16f
    if-eqz v1, :cond_172

    return-object v1

    :cond_172
    invoke-virtual {p1}, Ljava/lang/Class;->isEnum()Z

    move-result v0

    if-eqz v0, :cond_1e3

    iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->q:Z

    if-eqz v0, :cond_196

    invoke-virtual {p1}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;

    move-result-object v0

    array-length v1, v0

    :goto_181
    if-ge v4, v1, :cond_196

    aget-object v2, v0, v4

    invoke-static {v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->isJacksonCreator(Ljava/lang/reflect/Method;)Z

    move-result v2

    if-eqz v2, :cond_193

    invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    invoke-virtual {p0, p2, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    return-object p1

    :cond_193
    add-int/lit8 v4, v4, 0x1

    goto :goto_181

    :cond_196
    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/JSON;->getMixInAnnotations(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;

    move-result-object v0

    check-cast v0, Ljava/lang/Class;

    if-eqz v0, :cond_1a0

    move-object v1, v0

    goto :goto_1a1

    :cond_1a0
    move-object v1, p1

    :goto_1a1
    const-class v2, Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    invoke-static {v1, v2}, Lcom/tradplus/ads/common/serialization/util/TypeUtils;->getAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;

    move-result-object v1

    check-cast v1, Lcom/tradplus/ads/common/serialization/annotation/JSONType;

    if-eqz v1, :cond_1b9

    invoke-interface {v1}, Lcom/tradplus/ads/common/serialization/annotation/JSONType;->deserializer()Ljava/lang/Class;

    move-result-object v1

    :try_start_1af
    invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    invoke-virtual {p0, p1, v1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V
    :try_end_1b8
    .catch Ljava/lang/Throwable; {:try_start_1af .. :try_end_1b8} :catch_1b9

    return-object v1

    :catch_1b9
    :cond_1b9
    const/4 v1, 0x0

    if-eqz v0, :cond_1cf

    invoke-static {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v0

    if-eqz v0, :cond_1d3

    :try_start_1c2
    invoke-virtual {v0}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;

    move-result-object v0

    invoke-virtual {p1, v2, v0}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v1
    :try_end_1ce
    .catch Ljava/lang/Exception; {:try_start_1c2 .. :try_end_1ce} :catch_1d3

    goto :goto_1d3

    :cond_1cf
    invoke-static {p1, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v1

    :catch_1d3
    :cond_1d3
    :goto_1d3
    if-eqz v1, :cond_1de

    new-instance p2, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumCreatorDeserializer;

    invoke-direct {p2, v1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/EnumCreatorDeserializer;-><init>(Ljava/lang/reflect/Method;)V

    invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    return-object p2

    :cond_1de
    invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a(Ljava/lang/Class;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    goto :goto_240

    :cond_1e3
    invoke-virtual {p1}, Ljava/lang/Class;->isArray()Z

    move-result v0

    if-eqz v0, :cond_1ec

    sget-object p1, Lcom/tradplus/ads/common/serialization/serializer/ObjectArrayCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/ObjectArrayCodec;

    goto :goto_240

    :cond_1ec
    const-class v0, Ljava/util/Set;

    if-eq p1, v0, :cond_23e

    const-class v0, Ljava/util/HashSet;

    if-eq p1, v0, :cond_23e

    const-class v0, Ljava/util/Collection;

    if-eq p1, v0, :cond_23e

    const-class v0, Ljava/util/List;

    if-eq p1, v0, :cond_23e

    const-class v0, Ljava/util/ArrayList;

    if-ne p1, v0, :cond_201

    goto :goto_23e

    :cond_201
    const-class v0, Ljava/util/Collection;

    invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_20a

    goto :goto_23e

    :cond_20a
    const-class v0, Ljava/util/Map;

    invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_215

    sget-object p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/MapDeserializer;

    goto :goto_240

    :cond_215
    const-class v0, Ljava/lang/Throwable;

    invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_224

    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/ThrowableDeserializer;

    invoke-direct {v0, p0, p1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/ThrowableDeserializer;-><init>(Lcom/tradplus/ads/common/serialization/parser/ParserConfig;Ljava/lang/Class;)V

    :goto_222
    move-object p1, v0

    goto :goto_240

    :cond_224
    const-class v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/PropertyProcessable;

    invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_232

    new-instance v0, Lcom/tradplus/ads/common/serialization/parser/deserializer/PropertyProcessableDeserializer;

    invoke-direct {v0, p1}, Lcom/tradplus/ads/common/serialization/parser/deserializer/PropertyProcessableDeserializer;-><init>(Ljava/lang/Class;)V

    goto :goto_222

    :cond_232
    const-class v0, Ljava/net/InetAddress;

    if-ne p1, v0, :cond_239

    sget-object p1, Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/MiscCodec;

    goto :goto_240

    :cond_239
    invoke-virtual {p0, p1, p2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    goto :goto_240

    :cond_23e
    :goto_23e
    sget-object p1, Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;->instance:Lcom/tradplus/ads/common/serialization/serializer/CollectionCodec;

    :goto_240
    invoke-virtual {p0, p2, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    return-object p1
.end method

.method public getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;
    .registers 4

    invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v0

    if-eqz v0, :cond_7

    return-object v0

    :cond_7
    instance-of v0, p1, Ljava/lang/Class;

    if-eqz v0, :cond_13

    move-object v0, p1

    check-cast v0, Ljava/lang/Class;

    invoke-virtual {p0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    return-object p1

    :cond_13
    instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;

    if-eqz v0, :cond_2e

    move-object v0, p1

    check-cast v0, Ljava/lang/reflect/ParameterizedType;

    invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;

    move-result-object v0

    instance-of v1, v0, Ljava/lang/Class;

    if-eqz v1, :cond_29

    check-cast v0, Ljava/lang/Class;

    invoke-virtual {p0, v0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    return-object p1

    :cond_29
    invoke-virtual {p0, v0}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    return-object p1

    :cond_2e
    instance-of v0, p1, Ljava/lang/reflect/WildcardType;

    if-eqz v0, :cond_44

    check-cast p1, Ljava/lang/reflect/WildcardType;

    invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;

    move-result-object p1

    array-length v0, p1

    const/4 v1, 0x1

    if-ne v0, v1, :cond_44

    const/4 v0, 0x0

    aget-object p1, p1, v0

    invoke-virtual {p0, p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object p1

    return-object p1

    :cond_44
    sget-object p1, Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/tradplus/ads/common/serialization/parser/deserializer/JavaObjectDeserializer;

    return-object p1
.end method

.method public getDeserializers()Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Lcom/tradplus/ads/common/serialization/util/IdentityHashMap<",
            "Ljava/lang/reflect/Type;",
            "Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;",
            ">;"
        }
    .end annotation

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    return-object v0
.end method

.method public varargs initJavaBeanDeserializers([Ljava/lang/Class;)V
    .registers 6
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "([",
            "Ljava/lang/Class<",
            "*>;)V"
        }
    .end annotation

    if-nez p1, :cond_3

    return-void

    :cond_3
    array-length v0, p1

    const/4 v1, 0x0

    :goto_5
    if-ge v1, v0, :cond_16

    aget-object v2, p1, v1

    if-nez v2, :cond_c

    goto :goto_13

    :cond_c
    invoke-virtual {p0, v2, v2}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;

    move-result-object v3

    invoke-virtual {p0, v2, v3}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V

    :goto_13
    add-int/lit8 v1, v1, 0x1

    goto :goto_5

    :cond_16
    return-void
.end method

.method public isAsmEnable()Z
    .registers 2

    iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->h:Z

    return v0
.end method

.method public isAutoTypeSupport()Z
    .registers 2

    iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    return v0
.end method

.method public isJacksonCompatible()Z
    .registers 2

    iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->q:Z

    return v0
.end method

.method public isPrimitive(Ljava/lang/Class;)Z
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;)Z"
        }
    .end annotation

    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->isPrimitive2(Ljava/lang/Class;)Z

    move-result p1

    return p1
.end method

.method public isSafeMode()Z
    .registers 2

    iget-boolean v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->t:Z

    return v0
.end method

.method public putDeserializer(Ljava/lang/reflect/Type;Lcom/tradplus/ads/common/serialization/parser/deserializer/ObjectDeserializer;)V
    .registers 6

    invoke-static {p1}, Lcom/tradplus/ads/common/serialization/JSON;->getMixInAnnotations(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;

    move-result-object v0

    if-eqz v0, :cond_1f

    iget-object v1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->f:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v1, p1}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    if-nez v1, :cond_1b

    new-instance v1, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    const/4 v2, 0x4

    invoke-direct {v1, v2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;-><init>(I)V

    iget-object v2, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->f:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v2, p1, v1}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    :cond_1b
    invoke-virtual {v1, v0, p2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    goto :goto_24

    :cond_1f
    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->e:Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;

    invoke-virtual {v0, p1, p2}, Lcom/tradplus/ads/common/serialization/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z

    :goto_24
    return-void
.end method

.method public register(Lcom/tradplus/ads/common/serialization/spi/Module;)V
    .registers 3

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->r:Ljava/util/List;

    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    return-void
.end method

.method public register(Ljava/lang/String;Ljava/lang/Class;)V
    .registers 4

    iget-object v0, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->g:Ljava/util/concurrent/ConcurrentMap;

    invoke-interface {v0, p1, p2}, Ljava/util/concurrent/ConcurrentMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    return-void
.end method

.method public setAsmEnable(Z)V
    .registers 2

    iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->h:Z

    return-void
.end method

.method public setAutoTypeSupport(Z)V
    .registers 2

    iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->m:Z

    return-void
.end method

.method public setDefaultClassLoader(Ljava/lang/ClassLoader;)V
    .registers 2

    iput-object p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->a:Ljava/lang/ClassLoader;

    return-void
.end method

.method public setJacksonCompatible(Z)V
    .registers 2

    iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->q:Z

    return-void
.end method

.method public setSafeMode(Z)V
    .registers 2

    iput-boolean p1, p0, Lcom/tradplus/ads/common/serialization/parser/ParserConfig;->t:Z

    return-void
.end method