JSONScanner.smali
.class public final Lcom/alibaba/fastjson/parser/JSONScanner;
.super Lcom/alibaba/fastjson/parser/JSONLexerBase;
.source "JSONScanner.java"
# static fields
.field protected static final typeFieldName:[C
# instance fields
.field public final ISO8601_LEN_0:I
.field public final ISO8601_LEN_1:I
.field public final ISO8601_LEN_2:I
.field private final text:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 74
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;
sget-object v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "\":\""
invoke-virtual {v0, v1}, 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-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
sput-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->typeFieldName:[C
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.param p1, "input" # Ljava/lang/String;
.line 35
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
.line 36
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.registers 5
.param p1, "input" # Ljava/lang/String;
.param p2, "features" # I
.line 38
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/JSONLexerBase;-><init>()V
.line 124
const-string v0, "0000-00-00"
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_0:I
.line 125
const-string v0, "0000-00-00T00:00:00"
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_1:I
.line 126
const-string v0, "0000-00-00T00:00:00.000"
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_2:I
.line 39
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->features:I
.line 41
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
.line 42
const/4 v0, -0x1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
.line 44
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->next()C
.line 45
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C
const v1, 0xfeff
if-ne v0, v1, :cond_2f
.line 46
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->next()C
.line 48
:cond_2f
return-void
.end method
.method public constructor <init>([CI)V
.registers 4
.param p1, "input" # [C
.param p2, "inputLength" # I
.line 63
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>([CII)V
.line 64
return-void
.end method
.method public constructor <init>([CII)V
.registers 6
.param p1, "input" # [C
.param p2, "inputLength" # I
.param p3, "features" # I
.line 67
new-instance v0, Ljava/lang/String;
const/4 v1, 0x0
invoke-direct {v0, p1, v1, p2}, Ljava/lang/String;-><init>([CII)V
invoke-direct {p0, v0, p3}, Lcom/alibaba/fastjson/parser/JSONScanner;-><init>(Ljava/lang/String;I)V
.line 68
return-void
.end method
.method static checkDate(CCCCCCII)Z
.registers 13
.param p0, "y0" # C
.param p1, "y1" # C
.param p2, "y2" # C
.param p3, "y3" # C
.param p4, "M0" # C
.param p5, "M1" # C
.param p6, "d0" # I
.param p7, "d1" # I
.line 467
const/16 v0, 0x32
const/16 v1, 0x31
const/4 v2, 0x0
if-eq p0, v1, :cond_a
if-eq p0, v0, :cond_a
.line 468
return v2
.line 470
:cond_a
const/16 v3, 0x30
if-lt p1, v3, :cond_4e
const/16 v4, 0x39
if-le p1, v4, :cond_13
goto :goto_4e
.line 473
:cond_13
if-lt p2, v3, :cond_4d
if-le p2, v4, :cond_18
goto :goto_4d
.line 476
:cond_18
if-lt p3, v3, :cond_4c
if-le p3, v4, :cond_1d
goto :goto_4c
.line 480
:cond_1d
if-ne p4, v3, :cond_24
.line 481
if-lt p5, v1, :cond_23
if-le p5, v4, :cond_2d
.line 482
:cond_23
return v2
.line 484
:cond_24
if-ne p4, v1, :cond_4b
.line 485
if-eq p5, v3, :cond_2d
if-eq p5, v1, :cond_2d
if-eq p5, v0, :cond_2d
.line 486
return v2
.line 492
:cond_2d
if-ne p6, v3, :cond_34
.line 493
if-lt p7, v1, :cond_33
if-le p7, v4, :cond_48
.line 494
:cond_33
return v2
.line 496
:cond_34
if-eq p6, v1, :cond_43
if-ne p6, v0, :cond_39
goto :goto_43
.line 500
:cond_39
const/16 v0, 0x33
if-ne p6, v0, :cond_42
.line 501
if-eq p7, v3, :cond_48
if-eq p7, v1, :cond_48
.line 502
return v2
.line 505
:cond_42
return v2
.line 497
:cond_43
:goto_43
if-lt p7, v3, :cond_4a
if-le p7, v4, :cond_48
goto :goto_4a
.line 508
:cond_48
const/4 v0, 0x1
return v0
.line 498
:cond_4a
:goto_4a
return v2
.line 489
:cond_4b
return v2
.line 477
:cond_4c
:goto_4c
return v2
.line 474
:cond_4d
:goto_4d
return v2
.line 471
:cond_4e
:goto_4e
return v2
.end method
.method private checkTime(CCCCCC)Z
.registers 12
.param p1, "h0" # C
.param p2, "h1" # C
.param p3, "m0" # C
.param p4, "m1" # C
.param p5, "s0" # C
.param p6, "s1" # C
.line 412
const/16 v0, 0x39
const/4 v1, 0x0
const/16 v2, 0x30
if-ne p1, v2, :cond_c
.line 413
if-lt p2, v2, :cond_b
if-le p2, v0, :cond_20
.line 414
:cond_b
return v1
.line 416
:cond_c
const/16 v3, 0x31
if-ne p1, v3, :cond_15
.line 417
if-lt p2, v2, :cond_14
if-le p2, v0, :cond_20
.line 418
:cond_14
return v1
.line 420
:cond_15
const/16 v3, 0x32
if-ne p1, v3, :cond_45
.line 421
if-lt p2, v2, :cond_44
const/16 v3, 0x34
if-le p2, v3, :cond_20
goto :goto_44
.line 428
:cond_20
const/16 v3, 0x35
const/16 v4, 0x36
if-lt p3, v2, :cond_2d
if-gt p3, v3, :cond_2d
.line 429
if-lt p4, v2, :cond_2c
if-le p4, v0, :cond_32
.line 430
:cond_2c
return v1
.line 432
:cond_2d
if-ne p3, v4, :cond_43
.line 433
if-eq p4, v2, :cond_32
.line 434
return v1
.line 440
:cond_32
if-lt p5, v2, :cond_3b
if-gt p5, v3, :cond_3b
.line 441
if-lt p6, v2, :cond_3a
if-le p6, v0, :cond_40
.line 442
:cond_3a
return v1
.line 444
:cond_3b
if-ne p5, v4, :cond_42
.line 445
if-eq p6, v2, :cond_40
.line 446
return v1
.line 452
:cond_40
const/4 v0, 0x1
return v0
.line 449
:cond_42
return v1
.line 437
:cond_43
return v1
.line 422
:cond_44
:goto_44
return v1
.line 425
:cond_45
return v1
.end method
.method private setCalendar(CCCCCCCC)V
.registers 15
.param p1, "y0" # C
.param p2, "y1" # C
.param p3, "y2" # C
.param p4, "y3" # C
.param p5, "M0" # C
.param p6, "M1" # C
.param p7, "d0" # C
.param p8, "d1" # C
.line 456
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
.line 457
.local v0, "local":Ljava/util/Locale;
invoke-static {}, Ljava/util/TimeZone;->getDefault()Ljava/util/TimeZone;
move-result-object v1
invoke-static {v1, v0}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v1
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
.line 458
sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v1, v1, p1
mul-int/lit16 v1, v1, 0x3e8
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, p2
mul-int/lit8 v2, v2, 0x64
add-int/2addr v1, v2
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, p3
mul-int/lit8 v2, v2, 0xa
add-int/2addr v1, v2
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, p4
add-int/2addr v1, v2
.line 459
.local v1, "year":I
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, p5
mul-int/lit8 v2, v2, 0xa
sget-object v3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v3, v3, p6
add-int/2addr v2, v3
const/4 v3, 0x1
sub-int/2addr v2, v3
.line 460
.local v2, "month":I
sget-object v4, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v4, v4, p7
mul-int/lit8 v4, v4, 0xa
sget-object v5, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v5, v5, p8
add-int/2addr v4, v5
.line 461
.local v4, "day":I
iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v5, v3, v1}, Ljava/util/Calendar;->set(II)V
.line 462
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
const/4 v5, 0x2
invoke-virtual {v3, v5, v2}, Ljava/util/Calendar;->set(II)V
.line 463
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
const/4 v5, 0x5
invoke-virtual {v3, v5, v4}, Ljava/util/Calendar;->set(II)V
.line 464
return-void
.end method
# virtual methods
.method public final addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
.registers 6
.param p1, "offset" # I
.param p2, "len" # I
.param p3, "hash" # I
.param p4, "symbolTable" # Lcom/alibaba/fastjson/parser/SymbolTable;
.line 81
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {p4, v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol(Ljava/lang/String;III)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method protected final arrayCopy(I[CII)V
.registers 7
.param p1, "srcPos" # I
.param p2, "dest" # [C
.param p3, "destPos" # I
.param p4, "length" # I
.line 517
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
add-int v1, p1, p4
invoke-virtual {v0, p1, v1, p2, p3}, Ljava/lang/String;->getChars(II[CI)V
.line 518
return-void
.end method
.method public bytesValue()[B
.registers 4
.line 85
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I
add-int/lit8 v1, v1, 0x1
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I
invoke-static {v0, v1, v2}, Lcom/alibaba/fastjson/util/Base64;->decodeFast(Ljava/lang/String;II)[B
move-result-object v0
return-object v0
.end method
.method public final charAt(I)C
.registers 3
.param p1, "index" # I
.line 51
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
if-lt p1, v0, :cond_b
.line 52
const/16 v0, 0x1a
return v0
.line 55
:cond_b
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v0
return v0
.end method
.method protected final copyTo(II[C)V
.registers 7
.param p1, "offset" # I
.param p2, "count" # I
.param p3, "dest" # [C
.line 71
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
add-int v1, p1, p2
const/4 v2, 0x0
invoke-virtual {v0, p1, v1, p3, v2}, Ljava/lang/String;->getChars(II[CI)V
.line 72
return-void
.end method
.method public final indexOf(CI)I
.registers 4
.param p1, "ch" # C
.param p2, "startIndex" # I
.line 77
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v0, p1, p2}, Ljava/lang/String;->indexOf(II)I
move-result v0
return v0
.end method
.method public isEOF()Z
.registers 4
.line 513
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
const/4 v2, 0x1
if-eq v0, v1, :cond_1e
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C
const/16 v1, 0x1a
if-ne v0, v1, :cond_1d
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v2
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
if-ne v0, v1, :cond_1d
goto :goto_1e
:cond_1d
const/4 v2, 0x0
:cond_1e
:goto_1e
return v2
.end method
.method public final next()C
.registers 2
.line 59
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C
return v0
.end method
.method public final numberString()Ljava/lang/String;
.registers 4
.line 113
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I
add-int/2addr v0, v1
add-int/lit8 v0, v0, -0x1
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
.line 115
.local v0, "chLocal":C
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I
.line 116
.local v1, "sp":I
const/16 v2, 0x4c
if-eq v0, v2, :cond_21
const/16 v2, 0x53
if-eq v0, v2, :cond_21
const/16 v2, 0x42
if-eq v0, v2, :cond_21
const/16 v2, 0x46
if-eq v0, v2, :cond_21
const/16 v2, 0x44
if-ne v0, v2, :cond_23
.line 117
:cond_21
add-int/lit8 v1, v1, -0x1
.line 121
:cond_23
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I
invoke-virtual {p0, v2, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String;
move-result-object v2
return-object v2
.end method
.method public scanISO8601DateIfMatch()Z
.registers 2
.line 129
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch(Z)Z
move-result v0
return v0
.end method
.method public scanISO8601DateIfMatch(Z)Z
.registers 37
.param p1, "strict" # Z
.line 133
move-object/from16 v9, p0
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
sub-int v10, v0, v1
.line 135
.local v10, "rest":I
const/4 v11, 0x2
const/16 v12, 0xd
const/16 v13, 0x39
const/4 v14, 0x5
const/4 v15, 0x1
const/16 v8, 0x30
if-nez p1, :cond_bc
if-le v10, v12, :cond_bc
.line 136
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
.line 137
.local v0, "c0":C
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v1, v15
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v1
.line 138
.local v1, "c1":C
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v2, v11
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v2
.line 139
.local v2, "c2":C
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v3, v3, 0x3
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v3
.line 140
.local v3, "c3":C
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v4, v4, 0x4
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v4
.line 141
.local v4, "c4":C
iget v5, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v5, v14
invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v5
.line 143
.local v5, "c5":C
iget v6, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v6, v10
sub-int/2addr v6, v15
invoke-virtual {v9, v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v6
.line 144
.local v6, "c_r0":C
iget v12, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v12, v10
sub-int/2addr v12, v11
invoke-virtual {v9, v12}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v12
.line 145
.local v12, "c_r1":C
const/16 v11, 0x2f
if-ne v0, v11, :cond_ba
const/16 v15, 0x44
if-ne v1, v15, :cond_ba
const/16 v15, 0x61
if-ne v2, v15, :cond_ba
const/16 v15, 0x74
if-ne v3, v15, :cond_ba
const/16 v15, 0x65
if-ne v4, v15, :cond_ba
const/16 v15, 0x28
if-ne v5, v15, :cond_ba
if-ne v6, v11, :cond_ba
const/16 v11, 0x29
if-ne v12, v11, :cond_ba
.line 147
const/4 v11, -0x1
.line 148
.local v11, "plusIndex":I
const/4 v15, 0x6
.local v15, "i":I
:goto_74
if-ge v15, v10, :cond_8d
.line 149
iget v14, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v14, v15
invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v14
.line 150
.local v14, "c":C
const/16 v7, 0x2b
if-ne v14, v7, :cond_84
.line 151
move v7, v15
move v11, v7
.end local v11 # "plusIndex":I
.local v7, "plusIndex":I
goto :goto_89
.line 152
.end local v7 # "plusIndex":I
.restart local v11 # "plusIndex":I
:cond_84
if-lt v14, v8, :cond_8d
if-le v14, v13, :cond_89
.line 153
goto :goto_8d
.line 148
.end local v14 # "c":C
:cond_89
:goto_89
add-int/lit8 v15, v15, 0x1
const/4 v14, 0x5
goto :goto_74
.line 156
.end local v15 # "i":I
:cond_8d
:goto_8d
const/4 v7, -0x1
if-ne v11, v7, :cond_92
.line 157
const/4 v7, 0x0
return v7
.line 159
:cond_92
iget v7, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v7, v7, 0x6
.line 160
.local v7, "offset":I
sub-int v8, v11, v7
invoke-virtual {v9, v7, v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String;
move-result-object v8
.line 161
.local v8, "numberText":Ljava/lang/String;
invoke-static {v8}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v13
.line 163
.local v13, "millis":J
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v15
.line 164
.local v15, "local":Ljava/util/Locale;
move/from16 v20, v0
.end local v0 # "c0":C
.local v20, "c0":C
invoke-static {}, Ljava/util/TimeZone;->getDefault()Ljava/util/TimeZone;
move-result-object v0
invoke-static {v0, v15}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v0
iput-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
.line 165
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v13, v14}, Ljava/util/Calendar;->setTimeInMillis(J)V
.line 167
const/4 v0, 0x5
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I
.line 168
const/4 v0, 0x1
return v0
.line 145
.end local v7 # "offset":I
.end local v8 # "numberText":Ljava/lang/String;
.end local v11 # "plusIndex":I
.end local v13 # "millis":J
.end local v15 # "local":Ljava/util/Locale;
.end local v20 # "c0":C
.restart local v0 # "c0":C
:cond_ba
move/from16 v20, v0
.line 172
.end local v0 # "c0":C
.end local v1 # "c1":C
.end local v2 # "c2":C
.end local v3 # "c3":C
.end local v4 # "c4":C
.end local v5 # "c5":C
.end local v6 # "c_r0":C
.end local v12 # "c_r1":C
:cond_bc
const/16 v11, 0x11
const/16 v12, 0x8
const/16 v14, 0xc
const/16 v15, 0xb
const/16 v7, 0xe
if-eq v10, v12, :cond_3cf
if-eq v10, v7, :cond_3cf
if-ne v10, v11, :cond_d2
const/16 v11, 0x8
const/16 v13, 0xe
goto/16 :goto_3d3
.line 243
:cond_d2
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_0:I
if-ge v10, v0, :cond_d8
.line 244
const/4 v0, 0x0
return v0
.line 247
:cond_d8
const/4 v0, 0x0
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v1, v1, 0x4
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v1
const/16 v6, 0x2d
if-eq v1, v6, :cond_e6
.line 248
return v0
.line 250
:cond_e6
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v1, v1, 0x7
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v1
if-eq v1, v6, :cond_f1
.line 251
return v0
.line 254
:cond_f1
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v28
.line 255
.local v28, "y0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/4 v1, 0x1
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v29
.line 256
.local v29, "y1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/4 v1, 0x2
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v30
.line 257
.local v30, "y2":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x3
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v31
.line 258
.local v31, "y3":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/4 v1, 0x5
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v32
.line 259
.local v32, "M0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x6
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v33
.line 260
.local v33, "M1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v12
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v12
.line 261
.local v12, "d0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x9
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v34
.line 262
.local v34, "d1":C
move/from16 v20, v28
move/from16 v21, v29
move/from16 v22, v30
move/from16 v23, v31
move/from16 v24, v32
move/from16 v25, v33
move/from16 v26, v12
move/from16 v27, v34
invoke-static/range {v20 .. v27}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkDate(CCCCCCII)Z
move-result v0
if-nez v0, :cond_147
.line 263
const/16 v19, 0x0
return v19
.line 266
:cond_147
const/16 v19, 0x0
move-object/from16 v0, p0
move/from16 v1, v28
move/from16 v2, v29
move/from16 v3, v30
move/from16 v4, v31
move/from16 v5, v32
move/from16 v6, v33
const/4 v11, 0x0
const/16 v13, 0xe
move v7, v12
move/from16 v21, v12
const/16 v12, 0x30
.end local v12 # "d0":C
.local v21, "d0":C
move/from16 v8, v34
invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->setCalendar(CCCCCCCC)V
.line 268
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0xa
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v7
.line 269
.local v7, "t":C
const/16 v0, 0x54
if-eq v7, v0, :cond_1a8
const/16 v0, 0x20
if-ne v7, v0, :cond_177
if-nez p1, :cond_177
goto :goto_1a8
.line 273
:cond_177
const/16 v0, 0x22
if-eq v7, v0, :cond_181
const/16 v0, 0x1a
if-ne v7, v0, :cond_180
goto :goto_181
.line 284
:cond_180
return v11
.line 274
:cond_181
:goto_181
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v15, v11}, Ljava/util/Calendar;->set(II)V
.line 275
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v14, v11}, Ljava/util/Calendar;->set(II)V
.line 276
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
const/16 v1, 0xd
invoke-virtual {v0, v1, v11}, Ljava/util/Calendar;->set(II)V
.line 277
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v13, v11}, Ljava/util/Calendar;->set(II)V
.line 279
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0xa
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C
.line 281
const/4 v0, 0x5
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I
.line 282
const/4 v0, 0x1
return v0
.line 270
:cond_1a8
:goto_1a8
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_1:I
if-ge v10, v0, :cond_1ad
.line 271
return v11
.line 287
:cond_1ad
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/16 v1, 0xd
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
const/16 v8, 0x3a
if-eq v0, v8, :cond_1bb
.line 288
return v11
.line 290
:cond_1bb
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x10
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
if-eq v0, v8, :cond_1c6
.line 291
return v11
.line 294
:cond_1c6
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v15
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v22
.line 295
.local v22, "h0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v14
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v23
.line 296
.local v23, "h1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v13
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v24
.line 297
.local v24, "m0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0xf
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v25
.line 298
.local v25, "m1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/16 v1, 0x11
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v19
.line 299
.local v19, "s0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x12
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v26
.line 301
.local v26, "s1":C
move-object/from16 v0, p0
move/from16 v1, v22
move/from16 v2, v23
move/from16 v3, v24
move/from16 v4, v25
move/from16 v5, v19
move/from16 v6, v26
invoke-direct/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkTime(CCCCCC)Z
move-result v0
if-nez v0, :cond_209
.line 302
return v11
.line 305
:cond_209
sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v0, v0, v22
mul-int/lit8 v0, v0, 0xa
sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v1, v1, v23
add-int/2addr v0, v1
.line 306
.local v0, "hour":I
sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v1, v1, v24
mul-int/lit8 v1, v1, 0xa
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, v25
add-int/2addr v1, v2
.line 307
.local v1, "minute":I
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, v19
mul-int/lit8 v2, v2, 0xa
sget-object v3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v3, v3, v26
add-int/2addr v2, v3
.line 308
.local v2, "seconds":I
iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v3, v15, v0}, Ljava/util/Calendar;->set(II)V
.line 309
iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v3, v14, v1}, Ljava/util/Calendar;->set(II)V
.line 310
iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
const/16 v4, 0xd
invoke-virtual {v3, v4, v2}, Ljava/util/Calendar;->set(II)V
.line 312
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v3, v3, 0x13
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v3
.line 313
.local v3, "dot":C
const/16 v4, 0x2e
if-ne v3, v4, :cond_3b4
.line 314
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_2:I
if-ge v10, v4, :cond_24c
.line 315
return v11
.line 326
:cond_24c
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v4, v4, 0x14
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v4
.line 327
.local v4, "S0":C
if-lt v4, v12, :cond_3ae
const/16 v5, 0x39
if-le v4, v5, :cond_261
move/from16 v16, v0
move/from16 v20, v1
const/4 v0, 0x0
goto/16 :goto_3b3
.line 330
:cond_261
sget-object v5, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v5, v5, v4
.line 331
.local v5, "millis":I
const/4 v6, 0x1
.line 334
.local v6, "millisLen":I
iget v14, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v14, v14, 0x15
invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v14
.line 335
.local v14, "S1":C
if-lt v14, v12, :cond_27d
const/16 v15, 0x39
if-gt v14, v15, :cond_27d
.line 336
mul-int/lit8 v15, v5, 0xa
sget-object v16, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v16, v16, v14
add-int v5, v15, v16
.line 337
const/4 v6, 0x2
.line 341
.end local v14 # "S1":C
:cond_27d
const/4 v14, 0x2
if-ne v6, v14, :cond_297
.line 342
iget v14, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v14, v14, 0x16
invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v14
.line 343
.local v14, "S2":C
if-lt v14, v12, :cond_297
const/16 v15, 0x39
if-gt v14, v15, :cond_297
.line 344
mul-int/lit8 v15, v5, 0xa
sget-object v16, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v16, v16, v14
add-int v5, v15, v16
.line 345
const/4 v6, 0x3
.line 349
.end local v14 # "S2":C
:cond_297
iget-object v14, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v14, v13, v5}, Ljava/util/Calendar;->set(II)V
.line 351
const/4 v13, 0x0
.line 352
.local v13, "timzeZoneLength":I
iget v14, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v14, v14, 0x14
add-int/2addr v14, v6
invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v14
.line 353
.local v14, "timeZoneFlag":C
const/16 v15, 0x2b
if-eq v14, v15, :cond_2b5
const/16 v15, 0x2d
if-ne v14, v15, :cond_2af
goto :goto_2b7
:cond_2af
move/from16 v16, v0
move/from16 v20, v1
goto/16 :goto_37b
:cond_2b5
const/16 v15, 0x2d
.line 354
:goto_2b7
iget v15, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v15, v15, 0x14
add-int/2addr v15, v6
const/16 v16, 0x1
add-int/lit8 v15, v15, 0x1
invoke-virtual {v9, v15}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v15
.line 355
.local v15, "t0":C
if-lt v15, v12, :cond_3a8
const/16 v11, 0x31
if-le v15, v11, :cond_2d1
move/from16 v16, v0
move/from16 v20, v1
const/4 v0, 0x0
goto/16 :goto_3ad
.line 359
:cond_2d1
iget v11, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v11, v11, 0x14
add-int/2addr v11, v6
const/16 v16, 0x2
add-int/lit8 v11, v11, 0x2
invoke-virtual {v9, v11}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v11
.line 360
.local v11, "t1":C
if-lt v11, v12, :cond_3a2
const/16 v12, 0x39
if-le v11, v12, :cond_2ea
move/from16 v16, v0
move/from16 v20, v1
goto/16 :goto_3a6
.line 364
:cond_2ea
iget v12, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v12, v12, 0x14
add-int/2addr v12, v6
add-int/lit8 v12, v12, 0x3
invoke-virtual {v9, v12}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v12
.line 365
.local v12, "t2":C
if-ne v12, v8, :cond_324
.line 366
iget v8, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v8, v8, 0x14
add-int/2addr v8, v6
add-int/lit8 v8, v8, 0x4
invoke-virtual {v9, v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v8
.line 367
.local v8, "t3":C
move/from16 v16, v0
const/16 v0, 0x30
.end local v0 # "hour":I
.local v16, "hour":I
if-eq v8, v0, :cond_30b
.line 368
const/16 v17, 0x0
return v17
.line 371
:cond_30b
const/16 v17, 0x0
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x14
add-int/2addr v0, v6
const/16 v18, 0x5
add-int/lit8 v0, v0, 0x5
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
.line 372
.local v0, "t4":C
move/from16 v20, v1
const/16 v1, 0x30
.end local v1 # "minute":I
.local v20, "minute":I
if-eq v0, v1, :cond_321
.line 373
return v17
.line 375
:cond_321
const/4 v0, 0x6
.line 376
.end local v8 # "t3":C
.end local v13 # "timzeZoneLength":I
.local v0, "timzeZoneLength":I
move v13, v0
goto :goto_340
.end local v16 # "hour":I
.end local v20 # "minute":I
.local v0, "hour":I
.restart local v1 # "minute":I
.restart local v13 # "timzeZoneLength":I
:cond_324
move/from16 v16, v0
move/from16 v20, v1
const/16 v1, 0x30
.end local v0 # "hour":I
.end local v1 # "minute":I
.restart local v16 # "hour":I
.restart local v20 # "minute":I
if-ne v12, v1, :cond_33e
.line 377
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x14
add-int/2addr v0, v6
add-int/lit8 v0, v0, 0x4
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
.line 378
.local v0, "t3":C
if-eq v0, v1, :cond_33b
.line 379
const/4 v1, 0x0
return v1
.line 381
:cond_33b
const/4 v0, 0x5
.line 382
.end local v13 # "timzeZoneLength":I
.local v0, "timzeZoneLength":I
move v13, v0
goto :goto_340
.line 383
.end local v0 # "timzeZoneLength":I
.restart local v13 # "timzeZoneLength":I
:cond_33e
const/4 v0, 0x3
move v13, v0
.line 386
:goto_340
sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v0, v0, v15
mul-int/lit8 v0, v0, 0xa
sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v1, v1, v11
add-int/2addr v0, v1
mul-int/lit16 v0, v0, 0xe10
mul-int/lit16 v0, v0, 0x3e8
.line 387
.local v0, "timeZoneOffset":I
const/16 v1, 0x2d
if-ne v14, v1, :cond_354
.line 388
neg-int v0, v0
.line 391
:cond_354
iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v1}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone;
move-result-object v1
invoke-virtual {v1}, Ljava/util/TimeZone;->getRawOffset()I
move-result v1
if-eq v1, v0, :cond_379
.line 392
invoke-static {v0}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String;
move-result-object v1
.line 393
.local v1, "timeZoneIDs":[Ljava/lang/String;
array-length v8, v1
if-lez v8, :cond_376
.line 394
const/4 v8, 0x0
aget-object v17, v1, v8
invoke-static/range {v17 .. v17}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v8
.line 395
.local v8, "timeZone":Ljava/util/TimeZone;
move/from16 v17, v0
.end local v0 # "timeZoneOffset":I
.local v17, "timeZoneOffset":I
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v8}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V
goto :goto_37b
.line 393
.end local v8 # "timeZone":Ljava/util/TimeZone;
.end local v17 # "timeZoneOffset":I
.restart local v0 # "timeZoneOffset":I
:cond_376
move/from16 v17, v0
.end local v0 # "timeZoneOffset":I
.restart local v17 # "timeZoneOffset":I
goto :goto_37b
.line 391
.end local v1 # "timeZoneIDs":[Ljava/lang/String;
.end local v17 # "timeZoneOffset":I
.restart local v0 # "timeZoneOffset":I
:cond_379
move/from16 v17, v0
.line 401
.end local v0 # "timeZoneOffset":I
.end local v11 # "t1":C
.end local v12 # "t2":C
.end local v15 # "t0":C
:goto_37b
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v1, v6, 0x14
add-int/2addr v1, v13
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
.line 402
.local v0, "end":C
const/16 v1, 0x1a
if-eq v0, v1, :cond_38f
const/16 v1, 0x22
if-eq v0, v1, :cond_38f
.line 403
const/4 v1, 0x0
return v1
.line 405
:cond_38f
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v8, v6, 0x14
add-int/2addr v8, v13
add-int/2addr v1, v8
iput v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v1
iput-char v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C
.line 407
const/4 v1, 0x5
iput v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I
.line 408
const/4 v1, 0x1
return v1
.line 360
.end local v16 # "hour":I
.end local v20 # "minute":I
.local v0, "hour":I
.local v1, "minute":I
.restart local v11 # "t1":C
.restart local v15 # "t0":C
:cond_3a2
move/from16 v16, v0
move/from16 v20, v1
.line 361
.end local v0 # "hour":I
.end local v1 # "minute":I
.restart local v16 # "hour":I
.restart local v20 # "minute":I
:goto_3a6
const/4 v0, 0x0
return v0
.line 355
.end local v11 # "t1":C
.end local v16 # "hour":I
.end local v20 # "minute":I
.restart local v0 # "hour":I
.restart local v1 # "minute":I
:cond_3a8
move/from16 v16, v0
move/from16 v20, v1
const/4 v0, 0x0
.line 356
.end local v0 # "hour":I
.end local v1 # "minute":I
.restart local v16 # "hour":I
.restart local v20 # "minute":I
:goto_3ad
return v0
.line 327
.end local v5 # "millis":I
.end local v6 # "millisLen":I
.end local v13 # "timzeZoneLength":I
.end local v14 # "timeZoneFlag":C
.end local v15 # "t0":C
.end local v16 # "hour":I
.end local v20 # "minute":I
.restart local v0 # "hour":I
.restart local v1 # "minute":I
:cond_3ae
move/from16 v16, v0
move/from16 v20, v1
const/4 v0, 0x0
.line 328
.end local v0 # "hour":I
.end local v1 # "minute":I
.restart local v16 # "hour":I
.restart local v20 # "minute":I
:goto_3b3
return v0
.line 318
.end local v4 # "S0":C
.end local v16 # "hour":I
.end local v20 # "minute":I
.restart local v0 # "hour":I
.restart local v1 # "minute":I
:cond_3b4
move/from16 v16, v0
move/from16 v20, v1
const/4 v0, 0x0
.end local v0 # "hour":I
.end local v1 # "minute":I
.restart local v16 # "hour":I
.restart local v20 # "minute":I
iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v1, v13, v0}, Ljava/util/Calendar;->set(II)V
.line 320
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x13
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C
.line 322
const/4 v0, 0x5
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I
.line 323
const/4 v0, 0x1
return v0
.line 172
.end local v2 # "seconds":I
.end local v3 # "dot":C
.end local v7 # "t":C
.end local v16 # "hour":I
.end local v19 # "s0":C
.end local v20 # "minute":I
.end local v21 # "d0":C
.end local v22 # "h0":C
.end local v23 # "h1":C
.end local v24 # "m0":C
.end local v25 # "m1":C
.end local v26 # "s1":C
.end local v28 # "y0":C
.end local v29 # "y1":C
.end local v30 # "y2":C
.end local v31 # "y3":C
.end local v32 # "M0":C
.end local v33 # "M1":C
.end local v34 # "d1":C
:cond_3cf
const/16 v11, 0x8
const/16 v13, 0xe
.line 173
:goto_3d3
if-eqz p1, :cond_3d7
.line 174
const/4 v0, 0x0
return v0
.line 177
:cond_3d7
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v12
.line 178
.local v12, "y0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/4 v1, 0x1
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v21
.line 179
.local v21, "y1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/4 v1, 0x2
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v17
.line 180
.local v17, "y2":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x3
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v22
.line 181
.local v22, "y3":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x4
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v23
.line 182
.local v23, "M0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/4 v1, 0x5
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v24
.line 183
.local v24, "M1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x6
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v25
.line 184
.local v25, "d0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x7
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v26
.line 186
.local v26, "d1":C
move v1, v12
move/from16 v2, v21
move/from16 v3, v17
move/from16 v4, v22
move/from16 v5, v23
move/from16 v6, v24
move/from16 v7, v25
move/from16 v8, v26
invoke-static/range {v1 .. v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkDate(CCCCCCII)Z
move-result v0
if-nez v0, :cond_42c
.line 187
const/4 v0, 0x0
return v0
.line 190
:cond_42c
move-object/from16 v0, p0
move v1, v12
move/from16 v2, v21
move/from16 v3, v17
move/from16 v4, v22
move/from16 v5, v23
move/from16 v6, v24
move/from16 v7, v25
move/from16 v8, v26
invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->setCalendar(CCCCCCCC)V
.line 193
if-eq v10, v11, :cond_4ef
.line 194
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v11
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v7
.line 195
.local v7, "h0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0x9
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v8
.line 196
.local v8, "h1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v0, v0, 0xa
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v11
.line 197
.local v11, "m0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v15
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v28
.line 198
.local v28, "m1":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v14
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v29
.line 199
.local v29, "s0":C
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
const/16 v1, 0xd
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v30
.line 201
.local v30, "s1":C
move-object/from16 v0, p0
move v1, v7
move v2, v8
move v3, v11
move/from16 v4, v28
move/from16 v5, v29
move/from16 v6, v30
invoke-direct/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkTime(CCCCCC)Z
move-result v0
if-nez v0, :cond_483
.line 202
const/4 v0, 0x0
return v0
.line 205
:cond_483
const/16 v0, 0x11
if-ne v10, v0, :cond_4cc
.line 206
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/2addr v0, v13
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v0
.line 207
.local v0, "S0":C
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v1, v1, 0xf
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v1
.line 208
.local v1, "S1":C
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I
add-int/lit8 v2, v2, 0x10
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C
move-result v2
.line 209
.local v2, "S2":C
const/16 v3, 0x30
if-lt v0, v3, :cond_4ca
const/16 v4, 0x39
if-le v0, v4, :cond_4a8
const/4 v3, 0x0
goto :goto_4cb
.line 212
:cond_4a8
if-lt v1, v3, :cond_4c8
if-le v1, v4, :cond_4ae
const/4 v3, 0x0
goto :goto_4c9
.line 215
:cond_4ae
if-lt v2, v3, :cond_4c6
if-le v2, v4, :cond_4b3
goto :goto_4c6
.line 219
:cond_4b3
sget-object v3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v3, v3, v0
mul-int/lit8 v3, v3, 0x64
sget-object v4, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v4, v4, v1
mul-int/lit8 v4, v4, 0xa
add-int/2addr v3, v4
sget-object v4, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v4, v4, v2
add-int/2addr v3, v4
.line 220
.end local v0 # "S0":C
.end local v1 # "S1":C
.end local v2 # "S2":C
.local v3, "millis":I
goto :goto_4cd
.line 216
.end local v3 # "millis":I
.restart local v0 # "S0":C
.restart local v1 # "S1":C
.restart local v2 # "S2":C
:cond_4c6
:goto_4c6
const/4 v3, 0x0
return v3
.line 212
:cond_4c8
const/4 v3, 0x0
.line 213
:goto_4c9
return v3
.line 209
:cond_4ca
const/4 v3, 0x0
.line 210
:goto_4cb
return v3
.line 221
.end local v0 # "S0":C
.end local v1 # "S1":C
.end local v2 # "S2":C
:cond_4cc
const/4 v3, 0x0
.line 224
.restart local v3 # "millis":I
:goto_4cd
sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v0, v0, v7
mul-int/lit8 v0, v0, 0xa
sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v1, v1, v8
add-int/2addr v0, v1
.line 225
.local v0, "hour":I
sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v1, v1, v11
mul-int/lit8 v1, v1, 0xa
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, v28
add-int/2addr v1, v2
.line 226
.local v1, "minute":I
sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v2, v2, v29
mul-int/lit8 v2, v2, 0xa
sget-object v4, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I
aget v4, v4, v30
add-int/2addr v2, v4
.line 227
.end local v7 # "h0":C
.end local v8 # "h1":C
.end local v11 # "m0":C
.end local v28 # "m1":C
.end local v29 # "s0":C
.end local v30 # "s1":C
.local v2, "seconds":I
goto :goto_4f3
.line 228
.end local v0 # "hour":I
.end local v1 # "minute":I
.end local v2 # "seconds":I
.end local v3 # "millis":I
:cond_4ef
const/4 v0, 0x0
.line 229
.restart local v0 # "hour":I
const/4 v1, 0x0
.line 230
.restart local v1 # "minute":I
const/4 v2, 0x0
.line 231
.restart local v2 # "seconds":I
const/4 v3, 0x0
.line 234
.restart local v3 # "millis":I
:goto_4f3
iget-object v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v4, v15, v0}, Ljava/util/Calendar;->set(II)V
.line 235
iget-object v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v4, v14, v1}, Ljava/util/Calendar;->set(II)V
.line 236
iget-object v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
const/16 v5, 0xd
invoke-virtual {v4, v5, v2}, Ljava/util/Calendar;->set(II)V
.line 237
iget-object v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar;
invoke-virtual {v4, v13, v3}, Ljava/util/Calendar;->set(II)V
.line 239
const/4 v4, 0x5
iput v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I
.line 240
const/4 v4, 0x1
return v4
.end method
.method public final stringVal()Ljava/lang/String;
.registers 5
.line 96
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->hasSpecial:Z
if-nez v0, :cond_f
.line 98
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I
add-int/lit8 v0, v0, 0x1
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I
invoke-virtual {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String;
move-result-object v0
return-object v0
.line 100
:cond_f
new-instance v0, Ljava/lang/String;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sbuf:[C
const/4 v2, 0x0
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I
invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;-><init>([CII)V
return-object v0
.end method
.method public final subString(II)Ljava/lang/String;
.registers 7
.param p1, "offset" # I
.param p2, "count" # I
.line 105
new-array v0, p2, [C
.line 106
.local v0, "chars":[C
move v1, p1
.local v1, "i":I
:goto_3
add-int v2, p1, p2
if-ge v1, v2, :cond_14
.line 107
sub-int v2, v1, p1
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String;
invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
aput-char v3, v0, v2
.line 106
add-int/lit8 v1, v1, 0x1
goto :goto_3
.line 109
.end local v1 # "i":I
:cond_14
new-instance v1, Ljava/lang/String;
invoke-direct {v1, v0}, Ljava/lang/String;-><init>([C)V
return-object v1
.end method