MrzRecognizer.smali
.class public Lim/tpelyyftgw/messenger/MrzRecognizer;
.super Ljava/lang/Object;
.source "MrzRecognizer.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
}
.end annotation
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 21
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static native binarizeAndFindCharacters(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)[[Landroid/graphics/Rect;
.end method
.method private static capitalize(Ljava/lang/String;)Ljava/lang/String;
.registers 6
.param p0, "s" # Ljava/lang/String;
.line 397
if-nez p0, :cond_4
.line 398
const/4 v0, 0x0
return-object v0
.line 399
:cond_4
invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
.line 400
.local v0, "chars":[C
const/4 v1, 0x1
.line 401
.local v1, "prevIsSpace":Z
const/4 v2, 0x0
.local v2, "i":I
:goto_a
array-length v3, v0
if-ge v2, v3, :cond_2d
.line 402
if-nez v1, :cond_20
aget-char v3, v0, v2
invoke-static {v3}, Ljava/lang/Character;->isLetter(C)Z
move-result v3
if-eqz v3, :cond_20
.line 403
aget-char v3, v0, v2
invoke-static {v3}, Ljava/lang/Character;->toLowerCase(C)C
move-result v3
aput-char v3, v0, v2
goto :goto_2a
.line 405
:cond_20
aget-char v3, v0, v2
const/16 v4, 0x20
if-ne v3, v4, :cond_28
const/4 v3, 0x1
goto :goto_29
:cond_28
const/4 v3, 0x0
:goto_29
move v1, v3
.line 401
:goto_2a
add-int/lit8 v2, v2, 0x1
goto :goto_a
.line 408
.end local v2 # "i":I
:cond_2d
new-instance v2, Ljava/lang/String;
invoke-direct {v2, v0}, Ljava/lang/String;-><init>([C)V
return-object v2
.end method
.method private static checksum(Ljava/lang/String;)I
.registers 9
.param p0, "s" # Ljava/lang/String;
.line 412
const/4 v0, 0x0
.line 413
.local v0, "val":I
invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C
move-result-object v1
.line 414
.local v1, "chars":[C
const/4 v2, 0x3
new-array v2, v2, [I
fill-array-data v2, :array_40
.line 415
.local v2, "weights":[I
const/4 v3, 0x0
.local v3, "i":I
:goto_c
array-length v4, v1
if-ge v3, v4, :cond_3d
.line 416
const/4 v4, 0x0
.line 417
.local v4, "charVal":I
aget-char v5, v1, v3
const/16 v6, 0x30
if-lt v5, v6, :cond_21
aget-char v5, v1, v3
const/16 v7, 0x39
if-gt v5, v7, :cond_21
.line 418
aget-char v5, v1, v3
add-int/lit8 v4, v5, -0x30
goto :goto_32
.line 419
:cond_21
aget-char v5, v1, v3
const/16 v6, 0x41
if-lt v5, v6, :cond_32
aget-char v5, v1, v3
const/16 v7, 0x5a
if-gt v5, v7, :cond_32
.line 420
aget-char v5, v1, v3
sub-int/2addr v5, v6
add-int/lit8 v4, v5, 0xa
.line 422
:cond_32
:goto_32
array-length v5, v2
rem-int v5, v3, v5
aget v5, v2, v5
mul-int v5, v5, v4
add-int/2addr v0, v5
.line 415
.end local v4 # "charVal":I
add-int/lit8 v3, v3, 0x1
goto :goto_c
.line 424
.end local v3 # "i":I
:cond_3d
rem-int/lit8 v3, v0, 0xa
return v3
:array_40
.array-data 4
0x7
0x3
0x1
.end array-data
.end method
.method private static cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
.registers 35
.param p0, "s" # Ljava/lang/String;
.line 474
const-string/jumbo v0, "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f"
.line 475
.local v0, "alphabet":Ljava/lang/String;
const-string v1, "A"
const-string v2, "B"
const-string v3, "V"
const-string v4, "G"
const-string v5, "D"
const-string v6, "E"
const-string v7, "E"
const-string v8, "ZH"
const-string v9, "Z"
const-string v10, "I"
const-string v11, "I"
const-string v12, "K"
const-string v13, "L"
const-string v14, "M"
const-string v15, "N"
const-string v16, "O"
const-string v17, "P"
const-string v18, "R"
const-string v19, "S"
const-string v20, "T"
const-string v21, "U"
const-string v22, "F"
const-string v23, "KH"
const-string v24, "TS"
const-string v25, "CH"
const-string v26, "SH"
const-string v27, "SHCH"
const-string v28, "IE"
const-string v29, "Y"
const-string v30, ""
const-string v31, "E"
const-string v32, "IU"
const-string v33, "IA"
filled-new-array/range {v1 .. v33}, [Ljava/lang/String;
move-result-object v1
.line 476
.local v1, "replacements":[Ljava/lang/String;
const/4 v2, 0x0
move v3, v2
move-object/from16 v2, p0
.end local p0 # "s":Ljava/lang/String;
.local v2, "s":Ljava/lang/String;
.local v3, "i":I
:goto_4d
array-length v4, v1
if-ge v3, v4, :cond_62
.line 477
add-int/lit8 v4, v3, 0x1
const-string/jumbo v5, "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f"
invoke-virtual {v5, v3, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
aget-object v5, v1, v3
invoke-virtual {v2, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v2
.line 476
add-int/lit8 v3, v3, 0x1
goto :goto_4d
.line 479
.end local v3 # "i":I
:cond_62
return-object v2
.end method
.method private static native findCornerPoints(Landroid/graphics/Bitmap;)[I
.end method
.method private static getCountriesMap()Ljava/util/HashMap;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 493
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
.line 494
.local v0, "countries":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
const-string v1, "AFG"
const-string v2, "AF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 495
const-string v1, "ALA"
const-string v2, "AX"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 496
const-string v1, "ALB"
const-string v2, "AL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 497
const-string v1, "DZA"
const-string v2, "DZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 498
const-string v1, "ASM"
const-string v2, "AS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 499
const-string v1, "AND"
const-string v2, "AD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 500
const-string v1, "AGO"
const-string v2, "AO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 501
const-string v1, "AIA"
const-string v2, "AI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 502
const-string v1, "ATA"
const-string v2, "AQ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 503
const-string v1, "ATG"
const-string v2, "AG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 504
const-string v1, "ARG"
const-string v2, "AR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 505
const-string v1, "ARM"
const-string v2, "AM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 506
const-string v1, "ABW"
const-string v2, "AW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 507
const-string v1, "AUS"
const-string v2, "AU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 508
const-string v1, "AUT"
const-string v2, "AT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 509
const-string v1, "AZE"
const-string v2, "AZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 510
const-string v1, "BHS"
const-string v2, "BS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 511
const-string v1, "BHR"
const-string v2, "BH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 512
const-string v1, "BGD"
const-string v2, "BD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 513
const-string v1, "BRB"
const-string v2, "BB"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 514
const-string v1, "BLR"
const-string v2, "BY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 515
const-string v1, "BEL"
const-string v2, "BE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 516
const-string v1, "BLZ"
const-string v2, "BZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 517
const-string v1, "BEN"
const-string v2, "BJ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 518
const-string v1, "BMU"
const-string v2, "BM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 519
const-string v1, "BTN"
const-string v2, "BT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 520
const-string v1, "BOL"
const-string v2, "BO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 521
const-string v1, "BES"
const-string v2, "BQ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 522
const-string v1, "BIH"
const-string v2, "BA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 523
const-string v1, "BWA"
const-string v2, "BW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 524
const-string v1, "BVT"
const-string v2, "BV"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 525
const-string v1, "BRA"
const-string v2, "BR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 526
const-string v1, "IOT"
const-string v2, "IO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 527
const-string v1, "BRN"
const-string v2, "BN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 528
const-string v1, "BGR"
const-string v2, "BG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 529
const-string v1, "BFA"
const-string v2, "BF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 530
const-string v1, "BDI"
const-string v2, "BI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 531
const-string v1, "CPV"
const-string v2, "CV"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 532
const-string v1, "KHM"
const-string v2, "KH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 533
const-string v1, "CMR"
const-string v2, "CM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 534
const-string v1, "CAN"
const-string v2, "CA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 535
const-string v1, "CYM"
const-string v2, "KY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 536
const-string v1, "CAF"
const-string v2, "CF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 537
const-string v1, "TCD"
const-string v2, "TD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 538
const-string v1, "CHL"
const-string v2, "CL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 539
const-string v1, "CHN"
const-string v2, "CN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 540
const-string v1, "CXR"
const-string v2, "CX"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 541
const-string v1, "CCK"
const-string v2, "CC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 542
const-string v1, "COL"
const-string v2, "CO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 543
const-string v1, "COM"
const-string v2, "KM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 544
const-string v1, "COG"
const-string v2, "CG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 545
const-string v1, "COD"
const-string v2, "CD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 546
const-string v1, "COK"
const-string v2, "CK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 547
const-string v1, "CRI"
const-string v2, "CR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 548
const-string v1, "CIV"
const-string v2, "CI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 549
const-string v1, "HRV"
const-string v2, "HR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 550
const-string v1, "CUB"
const-string v2, "CU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 551
const-string v1, "CUW"
const-string v2, "CW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 552
const-string v1, "CYP"
const-string v2, "CY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 553
const-string v1, "CZE"
const-string v2, "CZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 554
const-string v1, "DNK"
const-string v2, "DK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 555
const-string v1, "DJI"
const-string v2, "DJ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 556
const-string v1, "DMA"
const-string v2, "DM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 557
const-string v1, "DOM"
const-string v2, "DO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 558
const-string v1, "ECU"
const-string v2, "EC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 559
const-string v1, "EGY"
const-string v2, "EG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 560
const-string v1, "SLV"
const-string v2, "SV"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 561
const-string v1, "GNQ"
const-string v2, "GQ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 562
const-string v1, "ERI"
const-string v2, "ER"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 563
const-string v1, "EST"
const-string v2, "EE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 564
const-string v1, "ETH"
const-string v2, "ET"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 565
const-string v1, "FLK"
const-string v2, "FK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 566
const-string v1, "FRO"
const-string v2, "FO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 567
const-string v1, "FJI"
const-string v2, "FJ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 568
const-string v1, "FIN"
const-string v2, "FI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 569
const-string v1, "FRA"
const-string v2, "FR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 570
const-string v1, "GUF"
const-string v2, "GF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 571
const-string v1, "PYF"
const-string v2, "PF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 572
const-string v1, "ATF"
const-string v2, "TF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 573
const-string v1, "GAB"
const-string v2, "GA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 574
const-string v1, "GMB"
const-string v2, "GM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 575
const-string v1, "GEO"
const-string v2, "GE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 576
const-string v1, "D<<"
const-string v2, "DE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 577
const-string v1, "GHA"
const-string v2, "GH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 578
const-string v1, "GIB"
const-string v2, "GI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 579
const-string v1, "GRC"
const-string v2, "GR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 580
const-string v1, "GRL"
const-string v2, "GL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 581
const-string v1, "GRD"
const-string v2, "GD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 582
const-string v1, "GLP"
const-string v2, "GP"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 583
const-string v1, "GUM"
const-string v2, "GU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 584
const-string v1, "GTM"
const-string v2, "GT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 585
const-string v1, "GGY"
const-string v2, "GG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 586
const-string v1, "GIN"
const-string v2, "GN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 587
const-string v1, "GNB"
const-string v2, "GW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 588
const-string v1, "GUY"
const-string v2, "GY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 589
const-string v1, "HTI"
const-string v2, "HT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 590
const-string v1, "HMD"
const-string v2, "HM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 591
const-string v1, "VAT"
const-string v2, "VA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 592
const-string v1, "HND"
const-string v2, "HN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 593
const-string v1, "HKG"
const-string v2, "HK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 594
const-string v1, "HUN"
const-string v2, "HU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 595
const-string v1, "ISL"
const-string v2, "IS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 596
const-string v1, "IND"
const-string v2, "IN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 597
const-string v1, "IDN"
const-string v2, "ID"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 598
const-string v1, "IRN"
const-string v2, "IR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 599
const-string v1, "IRQ"
const-string v2, "IQ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 600
const-string v1, "IRL"
const-string v2, "IE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 601
const-string v1, "IMN"
const-string v2, "IM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 602
const-string v1, "ISR"
const-string v2, "IL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 603
const-string v1, "ITA"
const-string v2, "IT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 604
const-string v1, "JAM"
const-string v2, "JM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 605
const-string v1, "JPN"
const-string v2, "JP"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 606
const-string v1, "JEY"
const-string v2, "JE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 607
const-string v1, "JOR"
const-string v2, "JO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 608
const-string v1, "KAZ"
const-string v2, "KZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 609
const-string v1, "KEN"
const-string v2, "KE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 610
const-string v1, "KIR"
const-string v2, "KI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 611
const-string v1, "PRK"
const-string v2, "KP"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 612
const-string v1, "KOR"
const-string v2, "KR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 613
const-string v1, "KWT"
const-string v2, "KW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 614
const-string v1, "KGZ"
const-string v2, "KG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 615
const-string v1, "LAO"
const-string v2, "LA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 616
const-string v1, "LVA"
const-string v2, "LV"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 617
const-string v1, "LBN"
const-string v2, "LB"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 618
const-string v1, "LSO"
const-string v2, "LS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 619
const-string v1, "LBR"
const-string v2, "LR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 620
const-string v1, "LBY"
const-string v2, "LY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 621
const-string v1, "LIE"
const-string v2, "LI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 622
const-string v1, "LTU"
const-string v2, "LT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 623
const-string v1, "LUX"
const-string v2, "LU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 624
const-string v1, "MAC"
const-string v2, "MO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 625
const-string v1, "MKD"
const-string v2, "MK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 626
const-string v1, "MDG"
const-string v2, "MG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 627
const-string v1, "MWI"
const-string v2, "MW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 628
const-string v1, "MYS"
const-string v2, "MY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 629
const-string v1, "MDV"
const-string v2, "MV"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 630
const-string v1, "MLI"
const-string v2, "ML"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 631
const-string v1, "MLT"
const-string v2, "MT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 632
const-string v1, "MHL"
const-string v2, "MH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 633
const-string v1, "MTQ"
const-string v2, "MQ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 634
const-string v1, "MRT"
const-string v2, "MR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 635
const-string v1, "MUS"
const-string v2, "MU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 636
const-string v1, "MYT"
const-string v2, "YT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 637
const-string v1, "MEX"
const-string v2, "MX"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 638
const-string v1, "FSM"
const-string v2, "FM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 639
const-string v1, "MDA"
const-string v2, "MD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 640
const-string v1, "MCO"
const-string v2, "MC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 641
const-string v1, "MNG"
const-string v2, "MN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 642
const-string v1, "MNE"
const-string v2, "ME"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 643
const-string v1, "MSR"
const-string v2, "MS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 644
const-string v1, "MAR"
const-string v2, "MA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 645
const-string v1, "MOZ"
const-string v2, "MZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 646
const-string v1, "MMR"
const-string v2, "MM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 647
const-string v1, "NAM"
const-string v2, "NA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 648
const-string v1, "NRU"
const-string v2, "NR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 649
const-string v1, "NPL"
const-string v2, "NP"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 650
const-string v1, "NLD"
const-string v2, "NL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 651
const-string v1, "NCL"
const-string v2, "NC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 652
const-string v1, "NZL"
const-string v2, "NZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 653
const-string v1, "NIC"
const-string v2, "NI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 654
const-string v1, "NER"
const-string v2, "NE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 655
const-string v1, "NGA"
const-string v2, "NG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 656
const-string v1, "NIU"
const-string v2, "NU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 657
const-string v1, "NFK"
const-string v2, "NF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 658
const-string v1, "MNP"
const-string v2, "MP"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 659
const-string v1, "NOR"
const-string v2, "NO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 660
const-string v1, "OMN"
const-string v2, "OM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 661
const-string v1, "PAK"
const-string v2, "PK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 662
const-string v1, "PLW"
const-string v2, "PW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 663
const-string v1, "PSE"
const-string v2, "PS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 664
const-string v1, "PAN"
const-string v2, "PA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 665
const-string v1, "PNG"
const-string v2, "PG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 666
const-string v1, "PRY"
const-string v2, "PY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 667
const-string v1, "PER"
const-string v2, "PE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 668
const-string v1, "PHL"
const-string v2, "PH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 669
const-string v1, "PCN"
const-string v2, "PN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 670
const-string v1, "POL"
const-string v2, "PL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 671
const-string v1, "PRT"
const-string v2, "PT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 672
const-string v1, "PRI"
const-string v2, "PR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 673
const-string v1, "QAT"
const-string v2, "QA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 674
const-string v1, "REU"
const-string v2, "RE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 675
const-string v1, "ROU"
const-string v2, "RO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 676
const-string v1, "RUS"
const-string v2, "RU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 677
const-string v1, "RWA"
const-string v2, "RW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 678
const-string v1, "BLM"
const-string v2, "BL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 679
const-string v1, "SHN"
const-string v2, "SH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 680
const-string v1, "KNA"
const-string v2, "KN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 681
const-string v1, "LCA"
const-string v2, "LC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 682
const-string v1, "MAF"
const-string v2, "MF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 683
const-string v1, "SPM"
const-string v2, "PM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 684
const-string v1, "VCT"
const-string v2, "VC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 685
const-string v1, "WSM"
const-string v2, "WS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 686
const-string v1, "SMR"
const-string v2, "SM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 687
const-string v1, "STP"
const-string v2, "ST"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 688
const-string v1, "SAU"
const-string v2, "SA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 689
const-string v1, "SEN"
const-string v2, "SN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 690
const-string v1, "SRB"
const-string v2, "RS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 691
const-string v1, "SYC"
const-string v2, "SC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 692
const-string v1, "SLE"
const-string v2, "SL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 693
const-string v1, "SGP"
const-string v2, "SG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 694
const-string v1, "SXM"
const-string v2, "SX"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 695
const-string v1, "SVK"
const-string v2, "SK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 696
const-string v1, "SVN"
const-string v2, "SI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 697
const-string v1, "SLB"
const-string v2, "SB"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 698
const-string v1, "SOM"
const-string v2, "SO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 699
const-string v1, "ZAF"
const-string v2, "ZA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 700
const-string v1, "SGS"
const-string v2, "GS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 701
const-string v1, "SSD"
const-string v2, "SS"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 702
const-string v1, "ESP"
const-string v2, "ES"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 703
const-string v1, "LKA"
const-string v2, "LK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 704
const-string v1, "SDN"
const-string v2, "SD"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 705
const-string v1, "SUR"
const-string v2, "SR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 706
const-string v1, "SJM"
const-string v2, "SJ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 707
const-string v1, "SWZ"
const-string v2, "SZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 708
const-string v1, "SWE"
const-string v2, "SE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 709
const-string v1, "CHE"
const-string v2, "CH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 710
const-string v1, "SYR"
const-string v2, "SY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 711
const-string v1, "TWN"
const-string v2, "TW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 712
const-string v1, "TJK"
const-string v2, "TJ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 713
const-string v1, "TZA"
const-string v2, "TZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 714
const-string v1, "THA"
const-string v2, "TH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 715
const-string v1, "TLS"
const-string v2, "TL"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 716
const-string v1, "TGO"
const-string v2, "TG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 717
const-string v1, "TKL"
const-string v2, "TK"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 718
const-string v1, "TON"
const-string v2, "TO"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 719
const-string v1, "TTO"
const-string v2, "TT"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 720
const-string v1, "TUN"
const-string v2, "TN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 721
const-string v1, "TUR"
const-string v2, "TR"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 722
const-string v1, "TKM"
const-string v2, "TM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 723
const-string v1, "TCA"
const-string v2, "TC"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 724
const-string v1, "TUV"
const-string v2, "TV"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 725
const-string v1, "UGA"
const-string v2, "UG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 726
const-string v1, "UKR"
const-string v2, "UA"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 727
const-string v1, "ARE"
const-string v2, "AE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 728
const-string v1, "GBR"
const-string v2, "GB"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 729
const-string v1, "USA"
const-string v2, "US"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 730
const-string v1, "UMI"
const-string v2, "UM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 731
const-string v1, "URY"
const-string v2, "UY"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 732
const-string v1, "UZB"
const-string v2, "UZ"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 733
const-string v1, "VUT"
const-string v2, "VU"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 734
const-string v1, "VEN"
const-string v2, "VE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 735
const-string v1, "VNM"
const-string v2, "VN"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 736
const-string v1, "VGB"
const-string v2, "VG"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 737
const-string v1, "VIR"
const-string v2, "VI"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 738
const-string v1, "WLF"
const-string v2, "WF"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 739
const-string v1, "ESH"
const-string v2, "EH"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 740
const-string v1, "YEM"
const-string v2, "YE"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 741
const-string v1, "ZMB"
const-string v2, "ZM"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 742
const-string v1, "ZWE"
const-string v2, "ZW"
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 743
return-object v0
.end method
.method private static getNumber(C)I
.registers 2
.param p0, "c" # C
.line 483
const/16 v0, 0x4f
if-ne p0, v0, :cond_6
.line 484
const/4 v0, 0x0
return v0
.line 485
:cond_6
const/16 v0, 0x49
if-ne p0, v0, :cond_c
.line 486
const/4 v0, 0x1
return v0
.line 487
:cond_c
const/16 v0, 0x42
if-ne p0, v0, :cond_13
.line 488
const/16 v0, 0x8
return v0
.line 489
:cond_13
add-int/lit8 v0, p0, -0x30
return v0
.end method
.method private static parseBirthDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.registers 6
.param p0, "birthDate" # Ljava/lang/String;
.param p1, "result" # Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.line 429
const/4 v0, 0x0
const/4 v1, 0x2
:try_start_2
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v0
iput v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
.line 430
iget v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar;
move-result-object v2
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/util/Calendar;->get(I)I
move-result v2
rem-int/lit8 v2, v2, 0x64
add-int/lit8 v2, v2, -0x5
if-ge v0, v2, :cond_22
iget v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
add-int/lit16 v0, v0, 0x7d0
goto :goto_26
:cond_22
iget v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
add-int/lit16 v0, v0, 0x76c
:goto_26
iput v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
.line 431
const/4 v0, 0x4
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
iput v1, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthMonth:I
.line 432
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v0
iput v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthDay:I
:try_end_3d
.catch Ljava/lang/NumberFormatException; {:try_start_2 .. :try_end_3d} :catch_3e
.line 434
goto :goto_3f
.line 433
:catch_3e
move-exception v0
.line 435
:goto_3f
return-void
.end method
.method private static parseExpiryDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.registers 4
.param p0, "expiryDate" # Ljava/lang/String;
.param p1, "result" # Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.line 439
:try_start_0
const-string v0, "<<<<<<"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_c
.line 440
const/4 v0, 0x1
iput-boolean v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->doesNotExpire:Z
goto :goto_2f
.line 442
:cond_c
const/4 v0, 0x0
const/4 v1, 0x2
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v0
add-int/lit16 v0, v0, 0x7d0
iput v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryYear:I
.line 443
const/4 v0, 0x4
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
iput v1, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryMonth:I
.line 444
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v0
iput v0, p1, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryDay:I
:try_end_2f
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_2f} :catch_30
.line 447
:goto_2f
goto :goto_31
.line 446
:catch_30
move-exception v0
.line 448
:goto_31
return-void
.end method
.method private static parseGender(C)I
.registers 2
.param p0, "gender" # C
.line 451
const/16 v0, 0x46
if-eq p0, v0, :cond_c
const/16 v0, 0x4d
if-eq p0, v0, :cond_a
.line 457
const/4 v0, 0x0
return v0
.line 453
:cond_a
const/4 v0, 0x1
return v0
.line 455
:cond_c
const/4 v0, 0x2
return v0
.end method
.method private static native performRecognition(Landroid/graphics/Bitmap;IILandroid/content/res/AssetManager;)Ljava/lang/String;
.end method
.method public static recognize(Landroid/graphics/Bitmap;Z)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.registers 4
.param p0, "bitmap" # Landroid/graphics/Bitmap;
.param p1, "tryDriverLicenseFirst" # Z
.line 24
const/4 v0, 0x0
.line 25
.local v0, "res":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
if-eqz p1, :cond_a
.line 26
invoke-static {p0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->recognizeBarcode(Landroid/graphics/Bitmap;)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
move-result-object v0
.line 27
if-eqz v0, :cond_a
.line 28
return-object v0
.line 31
:cond_a
:try_start_a
invoke-static {p0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->recognizeMRZ(Landroid/graphics/Bitmap;)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
move-result-object v1
:try_end_e
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_e} :catch_12
move-object v0, v1
.line 32
if-eqz v0, :cond_13
.line 33
return-object v0
.line 34
:catch_12
move-exception v1
:cond_13
nop
.line 35
if-nez p1, :cond_1d
.line 36
invoke-static {p0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->recognizeBarcode(Landroid/graphics/Bitmap;)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
move-result-object v0
.line 37
if-eqz v0, :cond_1d
.line 38
return-object v0
.line 40
:cond_1d
const/4 v1, 0x0
return-object v1
.end method
.method public static recognize([BIII)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.registers 22
.param p0, "yuvData" # [B
.param p1, "width" # I
.param p2, "height" # I
.param p3, "rotation" # I
.line 384
move/from16 v0, p1
move/from16 v1, p2
move/from16 v2, p3
sget-object v3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v0, v1, v3}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v3
.line 385
.local v3, "bmp":Landroid/graphics/Bitmap;
move-object/from16 v11, p0
invoke-static {v3, v11}, Lim/tpelyyftgw/messenger/MrzRecognizer;->setYuvBitmapPixels(Landroid/graphics/Bitmap;[B)V
.line 386
new-instance v4, Landroid/graphics/Matrix;
invoke-direct {v4}, Landroid/graphics/Matrix;-><init>()V
move-object v12, v4
.line 387
.local v12, "m":Landroid/graphics/Matrix;
int-to-float v4, v2
invoke-virtual {v12, v4}, Landroid/graphics/Matrix;->setRotate(F)V
.line 388
invoke-static/range {p1 .. p2}, Ljava/lang/Math;->min(II)I
move-result v13
.line 389
.local v13, "minSize":I
move v14, v13
.line 390
.local v14, "dw":I
int-to-float v4, v13
const v5, 0x3f343958 # 0.704f
mul-float v4, v4, v5
invoke-static {v4}, Ljava/lang/Math;->round(F)I
move-result v15
.line 391
.local v15, "dh":I
const/4 v10, 0x0
const/16 v4, 0x5a
if-eq v2, v4, :cond_36
const/16 v4, 0x10e
if-ne v2, v4, :cond_34
goto :goto_36
:cond_34
const/4 v4, 0x0
goto :goto_37
:cond_36
:goto_36
const/4 v4, 0x1
:goto_37
move/from16 v16, v4
.line 392
.local v16, "swap":Z
if-eqz v16, :cond_42
div-int/lit8 v4, v0, 0x2
div-int/lit8 v5, v15, 0x2
sub-int/2addr v4, v5
move v5, v4
goto :goto_43
:cond_42
const/4 v5, 0x0
:goto_43
if-eqz v16, :cond_47
const/4 v6, 0x0
goto :goto_4d
:cond_47
div-int/lit8 v4, v1, 0x2
div-int/lit8 v6, v15, 0x2
sub-int/2addr v4, v6
move v6, v4
:goto_4d
if-eqz v16, :cond_51
move v7, v15
goto :goto_52
:cond_51
move v7, v14
:goto_52
if-eqz v16, :cond_56
move v8, v14
goto :goto_57
:cond_56
move v8, v15
:goto_57
const/16 v17, 0x0
move-object v4, v3
move-object v9, v12
const/4 v0, 0x0
move/from16 v10, v17
invoke-static/range {v4 .. v10}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v3
.line 393
invoke-static {v3, v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->recognize(Landroid/graphics/Bitmap;Z)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
move-result-object v0
return-object v0
.end method
.method private static recognizeBarcode(Landroid/graphics/Bitmap;)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.registers 14
.param p0, "bitmap" # Landroid/graphics/Bitmap;
.line 44
new-instance v0, Lcom/google/android/gms/vision/barcode/BarcodeDetector$Builder;
sget-object v1, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/google/android/gms/vision/barcode/BarcodeDetector$Builder;-><init>(Landroid/content/Context;)V
invoke-virtual {v0}, Lcom/google/android/gms/vision/barcode/BarcodeDetector$Builder;->build()Lcom/google/android/gms/vision/barcode/BarcodeDetector;
move-result-object v0
.line 45
.local v0, "detector":Lcom/google/android/gms/vision/barcode/BarcodeDetector;
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v1
const/16 v2, 0x5dc
const/4 v3, 0x1
if-gt v1, v2, :cond_1a
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
if-le v1, v2, :cond_45
.line 46
:cond_1a
const v1, 0x44bb8000 # 1500.0f
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
invoke-static {v2, v4}, Ljava/lang/Math;->max(II)I
move-result v2
int-to-float v2, v2
div-float/2addr v1, v2
.line 47
.local v1, "scale":F
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
int-to-float v2, v2
mul-float v2, v2, v1
invoke-static {v2}, Ljava/lang/Math;->round(F)I
move-result v2
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
int-to-float v4, v4
mul-float v4, v4, v1
invoke-static {v4}, Ljava/lang/Math;->round(F)I
move-result v4
invoke-static {p0, v2, v4, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object p0
.line 49
.end local v1 # "scale":F
:cond_45
new-instance v1, Lcom/google/android/gms/vision/Frame$Builder;
invoke-direct {v1}, Lcom/google/android/gms/vision/Frame$Builder;-><init>()V
invoke-virtual {v1, p0}, Lcom/google/android/gms/vision/Frame$Builder;->setBitmap(Landroid/graphics/Bitmap;)Lcom/google/android/gms/vision/Frame$Builder;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/gms/vision/Frame$Builder;->build()Lcom/google/android/gms/vision/Frame;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/android/gms/vision/barcode/BarcodeDetector;->detect(Lcom/google/android/gms/vision/Frame;)Landroid/util/SparseArray;
move-result-object v1
.line 50
.local v1, "barcodes":Landroid/util/SparseArray;, "Landroid/util/SparseArray<Lcom/google/android/gms/vision/barcode/Barcode;>;"
const/4 v2, 0x0
.local v2, "i":I
:goto_57
invoke-virtual {v1}, Landroid/util/SparseArray;->size()I
move-result v4
if-ge v2, v4, :cond_263
.line 51
invoke-virtual {v1, v2}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/google/android/gms/vision/barcode/Barcode;
.line 52
.local v4, "code":Lcom/google/android/gms/vision/barcode/Barcode;
iget v5, v4, Lcom/google/android/gms/vision/barcode/Barcode;->valueFormat:I
const/16 v6, 0xc
const/4 v7, 0x0
const/4 v8, 0x2
const/4 v9, 0x4
if-ne v5, v6, :cond_1ae
iget-object v5, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
if-eqz v5, :cond_1ae
.line 53
new-instance v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
invoke-direct {v5}, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;-><init>()V
.line 54
.local v5, "res":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->documentType:Ljava/lang/String;
const-string v10, "ID"
invoke-virtual {v10, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_82
const/4 v9, 0x2
:cond_82
iput v9, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->type:I
.line 55
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->issuingCountry:Ljava/lang/String;
invoke-virtual {v6}, Ljava/lang/String;->hashCode()I
move-result v9
const v10, 0x103b0
const-string v11, "USA"
const/4 v12, -0x1
if-eq v9, v10, :cond_a2
const v10, 0x14963
if-eq v9, v10, :cond_9a
:cond_99
goto :goto_ac
:cond_9a
invoke-virtual {v6, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_99
const/4 v6, 0x0
goto :goto_ad
:cond_a2
const-string v9, "CAN"
invoke-virtual {v6, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_99
const/4 v6, 0x1
goto :goto_ad
:goto_ac
const/4 v6, -0x1
:goto_ad
if-eqz v6, :cond_b9
if-eq v6, v3, :cond_b2
goto :goto_c0
.line 60
:cond_b2
const-string v6, "CA"
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
goto :goto_c0
.line 57
:cond_b9
const-string v6, "US"
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 58
nop
.line 63
:goto_c0
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->firstName:Ljava/lang/String;
invoke-static {v6}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 64
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->lastName:Ljava/lang/String;
invoke-static {v6}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 65
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->middleName:Ljava/lang/String;
invoke-static {v6}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->middleName:Ljava/lang/String;
.line 66
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->licenseNumber:Ljava/lang/String;
iput-object v6, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
.line 67
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->gender:Ljava/lang/String;
if-eqz v6, :cond_119
.line 68
iget-object v6, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v6, v6, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->gender:Ljava/lang/String;
invoke-virtual {v6}, Ljava/lang/String;->hashCode()I
move-result v9
const/16 v10, 0x31
if-eq v9, v10, :cond_105
const/16 v7, 0x32
if-eq v9, v7, :cond_fb
:cond_fa
goto :goto_10e
:cond_fb
const-string v7, "2"
invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_fa
const/4 v7, 0x1
goto :goto_10f
:cond_105
const-string v9, "1"
invoke-virtual {v6, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_fa
goto :goto_10f
:goto_10e
const/4 v7, -0x1
:goto_10f
if-eqz v7, :cond_117
if-eq v7, v3, :cond_114
goto :goto_119
.line 73
:cond_114
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->gender:I
goto :goto_119
.line 70
:cond_117
iput v3, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->gender:I
.line 78
:cond_119
:goto_119
iget-object v3, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
invoke-virtual {v11, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_125
.line 79
const/4 v3, 0x4
.line 80
.local v3, "yearOffset":I
const/4 v6, 0x2
.line 81
.local v6, "dayOffset":I
const/4 v7, 0x0
.local v7, "monthOffset":I
goto :goto_128
.line 83
.end local v3 # "yearOffset":I
.end local v6 # "dayOffset":I
.end local v7 # "monthOffset":I
:cond_125
const/4 v3, 0x0
.line 84
.restart local v3 # "yearOffset":I
const/4 v7, 0x4
.line 85
.restart local v7 # "monthOffset":I
const/4 v6, 0x6
.line 88
.restart local v6 # "dayOffset":I
:goto_128
:try_start_128
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->birthDate:Ljava/lang/String;
const/16 v9, 0x8
if-eqz v8, :cond_16a
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->birthDate:Ljava/lang/String;
invoke-virtual {v8}, Ljava/lang/String;->length()I
move-result v8
if-ne v8, v9, :cond_16a
.line 89
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->birthDate:Ljava/lang/String;
add-int/lit8 v10, v3, 0x4
invoke-virtual {v8, v3, v10}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
.line 90
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->birthDate:Ljava/lang/String;
add-int/lit8 v10, v7, 0x2
invoke-virtual {v8, v7, v10}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthMonth:I
.line 91
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->birthDate:Ljava/lang/String;
add-int/lit8 v10, v6, 0x2
invoke-virtual {v8, v6, v10}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthDay:I
.line 93
:cond_16a
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->expiryDate:Ljava/lang/String;
if-eqz v8, :cond_1ac
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->expiryDate:Ljava/lang/String;
invoke-virtual {v8}, Ljava/lang/String;->length()I
move-result v8
if-ne v8, v9, :cond_1ac
.line 94
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->expiryDate:Ljava/lang/String;
add-int/lit8 v9, v3, 0x4
invoke-virtual {v8, v3, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryYear:I
.line 95
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->expiryDate:Ljava/lang/String;
add-int/lit8 v9, v7, 0x2
invoke-virtual {v8, v7, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryMonth:I
.line 96
iget-object v8, v4, Lcom/google/android/gms/vision/barcode/Barcode;->driverLicense:Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;
iget-object v8, v8, Lcom/google/android/gms/vision/barcode/Barcode$DriverLicense;->expiryDate:Ljava/lang/String;
add-int/lit8 v9, v6, 0x2
invoke-virtual {v8, v6, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v5, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryDay:I
:try_end_1aa
.catch Ljava/lang/NumberFormatException; {:try_start_128 .. :try_end_1aa} :catch_1ab
goto :goto_1ac
.line 98
:catch_1ab
move-exception v8
:cond_1ac
:goto_1ac
nop
.line 100
return-object v5
.line 101
.end local v3 # "yearOffset":I
.end local v5 # "res":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.end local v6 # "dayOffset":I
.end local v7 # "monthOffset":I
:cond_1ae
iget v5, v4, Lcom/google/android/gms/vision/barcode/Barcode;->valueFormat:I
const/4 v6, 0x7
if-ne v5, v6, :cond_25f
iget v5, v4, Lcom/google/android/gms/vision/barcode/Barcode;->format:I
const/16 v6, 0x800
if-ne v5, v6, :cond_25f
.line 104
iget-object v5, v4, Lcom/google/android/gms/vision/barcode/Barcode;->rawValue:Ljava/lang/String;
const-string v6, "^[A-Za-z0-9=]+$"
invoke-virtual {v5, v6}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_25f
.line 106
:try_start_1c3
iget-object v5, v4, Lcom/google/android/gms/vision/barcode/Barcode;->rawValue:Ljava/lang/String;
invoke-static {v5, v7}, Landroid/util/Base64;->decode(Ljava/lang/String;I)[B
move-result-object v5
.line 107
.local v5, "_data":[B
new-instance v6, Ljava/lang/String;
const-string/jumbo v10, "windows-1251"
invoke-direct {v6, v5, v10}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
const-string v10, "\\|"
invoke-virtual {v6, v10}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v6
.line 108
.local v6, "data":[Ljava/lang/String;
array-length v10, v6
const/16 v11, 0xa
if-lt v10, v11, :cond_25d
.line 109
new-instance v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
invoke-direct {v10}, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;-><init>()V
.line 110
.local v10, "res":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
iput v9, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->type:I
.line 111
const-string v11, "RU"
iput-object v11, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
iput-object v11, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 112
aget-object v11, v6, v7
iput-object v11, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
.line 113
aget-object v11, v6, v8
invoke-virtual {v11, v7, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v11
invoke-static {v11}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v11
iput v11, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryYear:I
.line 114
aget-object v11, v6, v8
const/4 v12, 0x6
invoke-virtual {v11, v9, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v11
invoke-static {v11}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v11
iput v11, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryMonth:I
.line 115
aget-object v8, v6, v8
invoke-virtual {v8, v12}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
iput v8, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->expiryDay:I
.line 116
const/4 v8, 0x3
aget-object v8, v6, v8
invoke-static {v8}, Lim/tpelyyftgw/messenger/MrzRecognizer;->cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
iput-object v8, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 117
aget-object v8, v6, v9
invoke-static {v8}, Lim/tpelyyftgw/messenger/MrzRecognizer;->cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
iput-object v8, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 118
const/4 v8, 0x5
aget-object v8, v6, v8
invoke-static {v8}, Lim/tpelyyftgw/messenger/MrzRecognizer;->cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
iput-object v8, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->middleName:Ljava/lang/String;
.line 119
aget-object v8, v6, v12
invoke-virtual {v8, v7, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v7
invoke-static {v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v7
iput v7, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthYear:I
.line 120
aget-object v7, v6, v12
invoke-virtual {v7, v9, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v7
invoke-static {v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v7
iput v7, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthMonth:I
.line 121
aget-object v7, v6, v12
invoke-virtual {v7, v12}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v7
invoke-static {v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v7
iput v7, v10, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->birthDay:I
:try_end_25c
.catch Ljava/lang/Exception; {:try_start_1c3 .. :try_end_25c} :catch_25e
.line 122
return-object v10
.line 108
.end local v5 # "_data":[B
.end local v6 # "data":[Ljava/lang/String;
.end local v10 # "res":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
:cond_25d
goto :goto_25f
.line 124
:catch_25e
move-exception v5
.line 50
.end local v4 # "code":Lcom/google/android/gms/vision/barcode/Barcode;
:cond_25f
:goto_25f
add-int/lit8 v2, v2, 0x1
goto/16 :goto_57
.line 128
.end local v2 # "i":I
:cond_263
const/4 v2, 0x0
return-object v2
.end method
.method private static recognizeMRZ(Landroid/graphics/Bitmap;)Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.registers 45
.param p0, "bitmap" # Landroid/graphics/Bitmap;
.line 133
move-object/from16 v0, p0
const/high16 v1, 0x3f800000 # 1.0f
.line 134
.local v1, "scale":F
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
const/4 v3, 0x1
const/16 v4, 0x200
if-gt v2, v4, :cond_19
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
const/16 v4, 0x200
if-le v2, v4, :cond_16
goto :goto_19
.line 138
:cond_16
move-object/from16 v2, p0
.local v2, "smallBitmap":Landroid/graphics/Bitmap;
goto :goto_44
.line 135
.end local v2 # "smallBitmap":Landroid/graphics/Bitmap;
:cond_19
:goto_19
const/high16 v2, 0x44000000 # 512.0f
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
invoke-static {v4, v5}, Ljava/lang/Math;->max(II)I
move-result v4
int-to-float v4, v4
div-float v1, v2, v4
.line 136
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
int-to-float v2, v2
mul-float v2, v2, v1
invoke-static {v2}, Ljava/lang/Math;->round(F)I
move-result v2
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
int-to-float v4, v4
mul-float v4, v4, v1
invoke-static {v4}, Ljava/lang/Math;->round(F)I
move-result v4
invoke-static {v0, v2, v4, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v2
.line 141
.restart local v2 # "smallBitmap":Landroid/graphics/Bitmap;
:goto_44
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->findCornerPoints(Landroid/graphics/Bitmap;)[I
move-result-object v4
.line 142
.local v4, "points":[I
const/high16 v5, 0x3f800000 # 1.0f
div-float/2addr v5, v1
.line 143
.local v5, "pointsScale":F
const/4 v6, 0x7
const/4 v7, 0x6
const/4 v8, 0x3
const/4 v9, 0x5
const/4 v10, 0x2
const/4 v11, 0x0
if-eqz v4, :cond_1cd
.line 144
new-instance v12, Landroid/graphics/Point;
aget v13, v4, v11
aget v14, v4, v3
invoke-direct {v12, v13, v14}, Landroid/graphics/Point;-><init>(II)V
.local v12, "topLeft":Landroid/graphics/Point;
new-instance v13, Landroid/graphics/Point;
aget v14, v4, v10
aget v15, v4, v8
invoke-direct {v13, v14, v15}, Landroid/graphics/Point;-><init>(II)V
.line 145
.local v13, "topRight":Landroid/graphics/Point;
new-instance v14, Landroid/graphics/Point;
const/4 v15, 0x4
aget v15, v4, v15
aget v8, v4, v9
invoke-direct {v14, v15, v8}, Landroid/graphics/Point;-><init>(II)V
move-object v8, v14
.local v8, "bottomLeft":Landroid/graphics/Point;
new-instance v14, Landroid/graphics/Point;
aget v15, v4, v7
aget v7, v4, v6
invoke-direct {v14, v15, v7}, Landroid/graphics/Point;-><init>(II)V
move-object v7, v14
.line 146
.local v7, "bottomRight":Landroid/graphics/Point;
iget v14, v13, Landroid/graphics/Point;->x:I
iget v15, v12, Landroid/graphics/Point;->x:I
if-ge v14, v15, :cond_86
.line 147
move-object v14, v13
.line 148
.local v14, "tmp":Landroid/graphics/Point;
move-object v13, v12
.line 149
move-object v12, v14
.line 150
move-object v14, v7
.line 151
move-object v7, v8
.line 152
move-object v8, v14
.line 154
.end local v14 # "tmp":Landroid/graphics/Point;
:cond_86
iget v14, v13, Landroid/graphics/Point;->x:I
iget v15, v12, Landroid/graphics/Point;->x:I
sub-int/2addr v14, v15
int-to-double v14, v14
iget v6, v13, Landroid/graphics/Point;->y:I
iget v9, v12, Landroid/graphics/Point;->y:I
sub-int/2addr v6, v9
move-object/from16 v19, v4
.end local v4 # "points":[I
.local v19, "points":[I
int-to-double v3, v6
invoke-static {v14, v15, v3, v4}, Ljava/lang/Math;->hypot(DD)D
move-result-wide v3
.line 155
.local v3, "topLength":D
iget v6, v7, Landroid/graphics/Point;->x:I
iget v14, v8, Landroid/graphics/Point;->x:I
sub-int/2addr v6, v14
int-to-double v14, v6
iget v6, v7, Landroid/graphics/Point;->y:I
iget v9, v8, Landroid/graphics/Point;->y:I
sub-int/2addr v6, v9
int-to-double v10, v6
invoke-static {v14, v15, v10, v11}, Ljava/lang/Math;->hypot(DD)D
move-result-wide v10
.line 156
.local v10, "bottomLength":D
iget v6, v8, Landroid/graphics/Point;->x:I
iget v9, v12, Landroid/graphics/Point;->x:I
sub-int/2addr v6, v9
int-to-double v14, v6
iget v6, v8, Landroid/graphics/Point;->y:I
iget v9, v12, Landroid/graphics/Point;->y:I
sub-int/2addr v6, v9
move/from16 v23, v1
move-object/from16 v24, v2
.end local v1 # "scale":F
.end local v2 # "smallBitmap":Landroid/graphics/Bitmap;
.local v23, "scale":F
.local v24, "smallBitmap":Landroid/graphics/Bitmap;
int-to-double v1, v6
invoke-static {v14, v15, v1, v2}, Ljava/lang/Math;->hypot(DD)D
move-result-wide v1
.line 157
.local v1, "leftLength":D
iget v6, v7, Landroid/graphics/Point;->x:I
iget v9, v13, Landroid/graphics/Point;->x:I
sub-int/2addr v6, v9
int-to-double v14, v6
iget v6, v7, Landroid/graphics/Point;->y:I
iget v9, v13, Landroid/graphics/Point;->y:I
sub-int/2addr v6, v9
move-object/from16 v25, v8
.end local v8 # "bottomLeft":Landroid/graphics/Point;
.local v25, "bottomLeft":Landroid/graphics/Point;
int-to-double v8, v6
invoke-static {v14, v15, v8, v9}, Ljava/lang/Math;->hypot(DD)D
move-result-wide v14
.line 158
.local v14, "rightLength":D
div-double v26, v3, v1
.line 159
.local v26, "tlRatio":D
div-double v28, v3, v14
.line 160
.local v28, "trRatio":D
div-double v30, v10, v1
.line 161
.local v30, "blRatio":D
div-double v32, v10, v14
.line 162
.local v32, "brRatio":D
const-wide v8, 0x3ff599999999999aL # 1.35
cmpl-double v6, v26, v8
if-ltz v6, :cond_1c8
const-wide/high16 v34, 0x3ffc000000000000L # 1.75
cmpg-double v6, v26, v34
if-gtz v6, :cond_1c8
cmpl-double v6, v30, v8
if-ltz v6, :cond_1c8
cmpg-double v6, v30, v34
if-gtz v6, :cond_1c8
cmpl-double v6, v28, v8
if-ltz v6, :cond_1c8
cmpg-double v6, v28, v34
if-gtz v6, :cond_1c8
cmpl-double v6, v32, v8
if-ltz v6, :cond_1c8
cmpg-double v6, v32, v34
if-gtz v6, :cond_1c8
.line 163
add-double v8, v26, v28
add-double v8, v8, v30
add-double v8, v8, v32
const-wide/high16 v34, 0x4010000000000000L # 4.0
div-double v34, v8, v34
.line 164
.local v34, "avgRatio":D
const/16 v6, 0x400
const-wide/high16 v8, 0x4090000000000000L # 1024.0
div-double v8, v8, v34
invoke-static {v8, v9}, Ljava/lang/Math;->round(D)J
move-result-wide v8
long-to-int v9, v8
sget-object v8, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v6, v9, v8}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v6
.line 165
.local v6, "tmp":Landroid/graphics/Bitmap;
new-instance v8, Landroid/graphics/Canvas;
invoke-direct {v8, v6}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 166
.local v8, "c":Landroid/graphics/Canvas;
const/16 v9, 0x8
new-array v9, v9, [F
const/16 v36, 0x0
const/16 v22, 0x0
aput v36, v9, v22
const/16 v20, 0x1
aput v36, v9, v20
.line 169
move-object/from16 v20, v9
invoke-virtual {v6}, Landroid/graphics/Bitmap;->getWidth()I
move-result v9
int-to-float v9, v9
const/16 v21, 0x2
aput v9, v20, v21
const/4 v9, 0x0
const/16 v16, 0x3
aput v9, v20, v16
const/4 v9, 0x4
.line 171
move-wide/from16 v42, v1
.end local v1 # "leftLength":D
.local v42, "leftLength":D
invoke-virtual {v6}, Landroid/graphics/Bitmap;->getWidth()I
move-result v1
int-to-float v1, v1
aput v1, v20, v9
.line 172
invoke-virtual {v6}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
int-to-float v1, v1
const/4 v2, 0x5
aput v1, v20, v2
const/4 v1, 0x0
const/4 v2, 0x6
aput v1, v20, v2
.line 174
invoke-virtual {v6}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
int-to-float v1, v1
const/4 v2, 0x7
aput v1, v20, v2
move-object/from16 v39, v20
.line 176
.local v39, "dst":[F
const/16 v1, 0x8
new-array v1, v1, [F
iget v2, v12, Landroid/graphics/Point;->x:I
int-to-float v2, v2
mul-float v2, v2, v5
const/4 v9, 0x0
aput v2, v1, v9
iget v2, v12, Landroid/graphics/Point;->y:I
int-to-float v2, v2
mul-float v2, v2, v5
const/4 v9, 0x1
aput v2, v1, v9
iget v2, v13, Landroid/graphics/Point;->x:I
int-to-float v2, v2
mul-float v2, v2, v5
const/16 v20, 0x2
aput v2, v1, v20
iget v2, v13, Landroid/graphics/Point;->y:I
int-to-float v2, v2
mul-float v2, v2, v5
const/16 v16, 0x3
aput v2, v1, v16
const/4 v2, 0x4
iget v9, v7, Landroid/graphics/Point;->x:I
int-to-float v9, v9
mul-float v9, v9, v5
aput v9, v1, v2
iget v2, v7, Landroid/graphics/Point;->y:I
int-to-float v2, v2
mul-float v2, v2, v5
const/4 v9, 0x5
aput v2, v1, v9
move-object/from16 v2, v25
.end local v25 # "bottomLeft":Landroid/graphics/Point;
.local v2, "bottomLeft":Landroid/graphics/Point;
iget v9, v2, Landroid/graphics/Point;->x:I
int-to-float v9, v9
mul-float v9, v9, v5
const/16 v17, 0x6
aput v9, v1, v17
iget v9, v2, Landroid/graphics/Point;->y:I
int-to-float v9, v9
mul-float v9, v9, v5
const/16 v18, 0x7
aput v9, v1, v18
.line 186
.local v1, "src":[F
new-instance v9, Landroid/graphics/Matrix;
invoke-direct {v9}, Landroid/graphics/Matrix;-><init>()V
.line 187
.local v9, "perspMatrix":Landroid/graphics/Matrix;
const/16 v38, 0x0
const/16 v40, 0x0
.end local v2 # "bottomLeft":Landroid/graphics/Point;
.restart local v25 # "bottomLeft":Landroid/graphics/Point;
array-length v2, v1
const/16 v20, 0x1
shr-int/lit8 v41, v2, 0x1
move-object v2, v9
.end local v9 # "perspMatrix":Landroid/graphics/Matrix;
.local v2, "perspMatrix":Landroid/graphics/Matrix;
move-object/from16 v36, v2
move-object/from16 v37, v1
invoke-virtual/range {v36 .. v41}, Landroid/graphics/Matrix;->setPolyToPoly([FI[FII)Z
.line 188
new-instance v9, Landroid/graphics/Paint;
move-object/from16 v36, v1
const/4 v1, 0x2
.end local v1 # "src":[F
.local v36, "src":[F
invoke-direct {v9, v1}, Landroid/graphics/Paint;-><init>(I)V
invoke-virtual {v8, v0, v2, v9}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
.line 189
move-object v0, v6
.end local p0 # "bitmap":Landroid/graphics/Bitmap;
.local v0, "bitmap":Landroid/graphics/Bitmap;
goto :goto_1ca
.line 162
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
.end local v2 # "perspMatrix":Landroid/graphics/Matrix;
.end local v6 # "tmp":Landroid/graphics/Bitmap;
.end local v8 # "c":Landroid/graphics/Canvas;
.end local v34 # "avgRatio":D
.end local v36 # "src":[F
.end local v39 # "dst":[F
.end local v42 # "leftLength":D
.local v1, "leftLength":D
.restart local p0 # "bitmap":Landroid/graphics/Bitmap;
:cond_1c8
move-wide/from16 v42, v1
.line 191
.end local v1 # "leftLength":D
.end local v3 # "topLength":D
.end local v7 # "bottomRight":Landroid/graphics/Point;
.end local v10 # "bottomLength":D
.end local v12 # "topLeft":Landroid/graphics/Point;
.end local v13 # "topRight":Landroid/graphics/Point;
.end local v14 # "rightLength":D
.end local v25 # "bottomLeft":Landroid/graphics/Point;
.end local v26 # "tlRatio":D
.end local v28 # "trRatio":D
.end local v30 # "blRatio":D
.end local v32 # "brRatio":D
.end local p0 # "bitmap":Landroid/graphics/Bitmap;
.restart local v0 # "bitmap":Landroid/graphics/Bitmap;
:goto_1ca
move/from16 v1, v23
goto :goto_213
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
.end local v19 # "points":[I
.end local v23 # "scale":F
.end local v24 # "smallBitmap":Landroid/graphics/Bitmap;
.local v1, "scale":F
.local v2, "smallBitmap":Landroid/graphics/Bitmap;
.restart local v4 # "points":[I
.restart local p0 # "bitmap":Landroid/graphics/Bitmap;
:cond_1cd
move/from16 v23, v1
move-object/from16 v24, v2
move-object/from16 v19, v4
.end local v1 # "scale":F
.end local v2 # "smallBitmap":Landroid/graphics/Bitmap;
.end local v4 # "points":[I
.restart local v19 # "points":[I
.restart local v23 # "scale":F
.restart local v24 # "smallBitmap":Landroid/graphics/Bitmap;
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v1
const/16 v2, 0x5dc
if-gt v1, v2, :cond_1e7
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v1
const/16 v2, 0x5dc
if-le v1, v2, :cond_1e4
goto :goto_1e7
:cond_1e4
move/from16 v1, v23
goto :goto_213
.line 192
:cond_1e7
:goto_1e7
const v1, 0x44bb8000 # 1500.0f
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I
move-result v2
int-to-float v2, v2
div-float/2addr v1, v2
.line 193
.end local v23 # "scale":F
.restart local v1 # "scale":F
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
int-to-float v2, v2
mul-float v2, v2, v1
invoke-static {v2}, Ljava/lang/Math;->round(F)I
move-result v2
invoke-virtual/range {p0 .. p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
int-to-float v3, v3
mul-float v3, v3, v1
invoke-static {v3}, Ljava/lang/Math;->round(F)I
move-result v3
const/4 v4, 0x1
invoke-static {v0, v2, v3, v4}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v0
.line 196
.end local p0 # "bitmap":Landroid/graphics/Bitmap;
.restart local v0 # "bitmap":Landroid/graphics/Bitmap;
:goto_213
const/4 v2, 0x0
.line 197
.local v2, "binaryBitmap":Landroid/graphics/Bitmap;
const/4 v3, 0x0
move-object v4, v3
check-cast v4, [[Landroid/graphics/Rect;
.line 198
.local v4, "charRects":[[Landroid/graphics/Rect;
const/4 v6, 0x0
.line 199
.local v6, "maxLength":I
const/4 v7, 0x0
.line 200
.local v7, "lineCount":I
const/4 v8, 0x0
.local v8, "i":I
:goto_21b
const/16 v10, 0x1e
const/4 v11, 0x3
if-ge v8, v11, :cond_2a5
.line 201
const/4 v11, 0x0
.line 202
.local v11, "m":Landroid/graphics/Matrix;
move-object v12, v0
.line 203
.local v12, "toProcess":Landroid/graphics/Bitmap;
const/4 v9, 0x1
if-eq v8, v9, :cond_242
const/4 v13, 0x2
if-eq v8, v13, :cond_229
goto :goto_25b
.line 209
:cond_229
new-instance v14, Landroid/graphics/Matrix;
invoke-direct {v14}, Landroid/graphics/Matrix;-><init>()V
move-object v11, v14
.line 210
const/high16 v14, -0x40800000 # -1.0f
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v15
div-int/2addr v15, v13
int-to-float v15, v15
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v20
div-int/lit8 v9, v20, 0x2
int-to-float v9, v9
invoke-virtual {v11, v14, v15, v9}, Landroid/graphics/Matrix;->setRotate(FFF)V
goto :goto_25b
.line 205
:cond_242
const/4 v13, 0x2
new-instance v9, Landroid/graphics/Matrix;
invoke-direct {v9}, Landroid/graphics/Matrix;-><init>()V
move-object v11, v9
.line 206
const/high16 v9, 0x3f800000 # 1.0f
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v14
div-int/2addr v14, v13
int-to-float v14, v14
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v15
div-int/2addr v15, v13
int-to-float v13, v15
invoke-virtual {v11, v9, v14, v13}, Landroid/graphics/Matrix;->setRotate(FFF)V
.line 207
nop
.line 213
:goto_25b
if-eqz v11, :cond_273
.line 214
const/16 v26, 0x0
const/16 v27, 0x0
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v28
invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v29
const/16 v31, 0x1
move-object/from16 v25, v0
move-object/from16 v30, v11
invoke-static/range {v25 .. v31}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v12
.line 216
:cond_273
invoke-virtual {v12}, Landroid/graphics/Bitmap;->getWidth()I
move-result v9
invoke-virtual {v12}, Landroid/graphics/Bitmap;->getHeight()I
move-result v13
sget-object v14, Landroid/graphics/Bitmap$Config;->ALPHA_8:Landroid/graphics/Bitmap$Config;
invoke-static {v9, v13, v14}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v2
.line 217
invoke-static {v12, v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->binarizeAndFindCharacters(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)[[Landroid/graphics/Rect;
move-result-object v4
.line 218
if-nez v4, :cond_288
.line 219
return-object v3
.line 220
:cond_288
array-length v9, v4
const/4 v13, 0x0
:goto_28a
if-ge v13, v9, :cond_29b
aget-object v14, v4, v13
.line 221
.local v14, "rects":[Landroid/graphics/Rect;
array-length v15, v14
invoke-static {v15, v6}, Ljava/lang/Math;->max(II)I
move-result v6
.line 222
array-length v15, v14
if-lez v15, :cond_298
.line 223
add-int/lit8 v7, v7, 0x1
.line 220
.end local v14 # "rects":[Landroid/graphics/Rect;
:cond_298
add-int/lit8 v13, v13, 0x1
goto :goto_28a
.line 225
:cond_29b
const/4 v9, 0x2
if-lt v7, v9, :cond_2a1
if-lt v6, v10, :cond_2a1
.line 226
goto :goto_2a5
.line 200
.end local v11 # "m":Landroid/graphics/Matrix;
.end local v12 # "toProcess":Landroid/graphics/Bitmap;
:cond_2a1
add-int/lit8 v8, v8, 0x1
goto/16 :goto_21b
.line 229
.end local v8 # "i":I
:cond_2a5
:goto_2a5
if-lt v6, v10, :cond_8ce
const/4 v8, 0x2
if-ge v7, v8, :cond_2b9
move-object/from16 v28, v0
move/from16 v29, v1
move-object/from16 v41, v2
move-object v0, v3
move-object/from16 v36, v4
move/from16 v32, v5
move/from16 v33, v6
goto/16 :goto_8db
.line 231
:cond_2b9
const/4 v8, 0x0
aget-object v9, v4, v8
array-length v8, v9
const/16 v11, 0xa
mul-int/lit8 v8, v8, 0xa
array-length v9, v4
const/16 v12, 0xf
mul-int/lit8 v9, v9, 0xf
sget-object v13, Landroid/graphics/Bitmap$Config;->ALPHA_8:Landroid/graphics/Bitmap$Config;
invoke-static {v8, v9, v13}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v8
.line 232
.local v8, "chrBitmap":Landroid/graphics/Bitmap;
new-instance v9, Landroid/graphics/Canvas;
invoke-direct {v9, v8}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
move-object v13, v9
.line 233
.local v13, "chrCanvas":Landroid/graphics/Canvas;
new-instance v9, Landroid/graphics/Paint;
const/4 v14, 0x2
invoke-direct {v9, v14}, Landroid/graphics/Paint;-><init>(I)V
move-object v14, v9
.line 234
.local v14, "aaPaint":Landroid/graphics/Paint;
new-instance v9, Landroid/graphics/Rect;
const/4 v15, 0x0
invoke-direct {v9, v15, v15, v11, v12}, Landroid/graphics/Rect;-><init>(IIII)V
move-object v15, v9
.line 235
.local v15, "dst":Landroid/graphics/Rect;
const/4 v9, 0x0
.line 236
.local v9, "y":I
array-length v10, v4
move/from16 v20, v9
const/4 v9, 0x0
.end local v9 # "y":I
.local v20, "y":I
:goto_2e5
if-ge v9, v10, :cond_335
aget-object v3, v4, v9
.line 237
.local v3, "line":[Landroid/graphics/Rect;
const/16 v25, 0x0
.line 238
.local v25, "x":I
array-length v12, v3
const/4 v11, 0x0
:goto_2ed
if-ge v11, v12, :cond_321
move-object/from16 v28, v0
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
.local v28, "bitmap":Landroid/graphics/Bitmap;
aget-object v0, v3, v11
.line 239
.local v0, "rect":Landroid/graphics/Rect;
move/from16 v29, v1
.end local v1 # "scale":F
.local v29, "scale":F
mul-int/lit8 v1, v25, 0xa
move-object/from16 v30, v3
.end local v3 # "line":[Landroid/graphics/Rect;
.local v30, "line":[Landroid/graphics/Rect;
mul-int/lit8 v3, v20, 0xf
mul-int/lit8 v31, v25, 0xa
move/from16 v32, v5
const/16 v27, 0xa
.end local v5 # "pointsScale":F
.local v32, "pointsScale":F
add-int/lit8 v5, v31, 0xa
mul-int/lit8 v31, v20, 0xf
move/from16 v33, v6
const/16 v26, 0xf
.end local v6 # "maxLength":I
.local v33, "maxLength":I
add-int/lit8 v6, v31, 0xf
invoke-virtual {v15, v1, v3, v5, v6}, Landroid/graphics/Rect;->set(IIII)V
.line 240
invoke-virtual {v13, v2, v0, v15, v14}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
.line 241
nop
.end local v0 # "rect":Landroid/graphics/Rect;
add-int/lit8 v25, v25, 0x1
.line 238
add-int/lit8 v11, v11, 0x1
move-object/from16 v0, v28
move/from16 v1, v29
move-object/from16 v3, v30
move/from16 v5, v32
move/from16 v6, v33
goto :goto_2ed
.line 243
.end local v28 # "bitmap":Landroid/graphics/Bitmap;
.end local v29 # "scale":F
.end local v30 # "line":[Landroid/graphics/Rect;
.end local v32 # "pointsScale":F
.end local v33 # "maxLength":I
.local v0, "bitmap":Landroid/graphics/Bitmap;
.restart local v1 # "scale":F
.restart local v3 # "line":[Landroid/graphics/Rect;
.restart local v5 # "pointsScale":F
.restart local v6 # "maxLength":I
:cond_321
move-object/from16 v28, v0
move/from16 v29, v1
move-object/from16 v30, v3
move/from16 v32, v5
move/from16 v33, v6
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
.end local v1 # "scale":F
.end local v3 # "line":[Landroid/graphics/Rect;
.end local v5 # "pointsScale":F
.end local v6 # "maxLength":I
.restart local v28 # "bitmap":Landroid/graphics/Bitmap;
.restart local v29 # "scale":F
.restart local v32 # "pointsScale":F
.restart local v33 # "maxLength":I
add-int/lit8 v20, v20, 0x1
.line 236
add-int/lit8 v9, v9, 0x1
const/4 v3, 0x0
const/16 v11, 0xa
const/16 v12, 0xf
goto :goto_2e5
.line 245
.end local v25 # "x":I
.end local v28 # "bitmap":Landroid/graphics/Bitmap;
.end local v29 # "scale":F
.end local v32 # "pointsScale":F
.end local v33 # "maxLength":I
.restart local v0 # "bitmap":Landroid/graphics/Bitmap;
.restart local v1 # "scale":F
.restart local v5 # "pointsScale":F
.restart local v6 # "maxLength":I
:cond_335
move-object/from16 v28, v0
move/from16 v29, v1
move/from16 v32, v5
move/from16 v33, v6
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
.end local v1 # "scale":F
.end local v5 # "pointsScale":F
.end local v6 # "maxLength":I
.restart local v28 # "bitmap":Landroid/graphics/Bitmap;
.restart local v29 # "scale":F
.restart local v32 # "pointsScale":F
.restart local v33 # "maxLength":I
array-length v0, v4
const/4 v1, 0x0
aget-object v3, v4, v1
array-length v1, v3
sget-object v3, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v3
invoke-static {v8, v0, v1, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->performRecognition(Landroid/graphics/Bitmap;IILandroid/content/res/AssetManager;)Ljava/lang/String;
move-result-object v0
.line 246
.local v0, "mrz":Ljava/lang/String;
if-nez v0, :cond_350
.line 247
const/4 v1, 0x0
return-object v1
.line 249
:cond_350
const-string v1, "\n"
invoke-static {v0, v1}, Landroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 250
.local v1, "mrzLines":[Ljava/lang/String;
new-instance v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
invoke-direct {v3}, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;-><init>()V
.line 251
.local v3, "result":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
array-length v5, v1
const/4 v6, 0x2
if-lt v5, v6, :cond_8c6
const/4 v5, 0x0
aget-object v6, v1, v5
invoke-virtual {v6}, Ljava/lang/String;->length()I
move-result v6
const/16 v9, 0x1e
if-lt v6, v9, :cond_8c6
const/4 v6, 0x1
aget-object v10, v1, v6
invoke-virtual {v10}, Ljava/lang/String;->length()I
move-result v6
aget-object v10, v1, v5
invoke-virtual {v10}, Ljava/lang/String;->length()I
move-result v10
if-ne v6, v10, :cond_8c6
.line 252
const-string v6, "\n"
invoke-static {v6, v1}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
iput-object v6, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->rawMRZ:Ljava/lang/String;
.line 253
invoke-static {}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getCountriesMap()Ljava/util/HashMap;
move-result-object v6
.line 254
.local v6, "countries":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
aget-object v10, v1, v5
invoke-virtual {v10, v5}, Ljava/lang/String;->charAt(I)C
move-result v10
.line 255
.local v10, "type":C
const/16 v5, 0x50
if-ne v10, v5, :cond_58f
.line 256
const/4 v5, 0x1
iput v5, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->type:I
.line 257
const/16 v18, 0x0
aget-object v22, v1, v18
invoke-virtual/range {v22 .. v22}, Ljava/lang/String;->length()I
move-result v5
const/16 v11, 0x2c
if-ne v5, v11, :cond_587
.line 258
aget-object v5, v1, v18
const/4 v9, 0x2
const/4 v11, 0x5
invoke-virtual {v5, v9, v11}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
iput-object v5, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
.line 259
aget-object v5, v1, v18
const-string v9, "<<"
const/4 v12, 0x6
invoke-virtual {v5, v9, v12}, Ljava/lang/String;->indexOf(Ljava/lang/String;I)I
move-result v5
.line 260
.local v5, "lastNameEnd":I
const/4 v9, -0x1
if-eq v5, v9, :cond_40c
.line 261
aget-object v9, v1, v18
invoke-virtual {v9, v11, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v9
const/16 v11, 0x20
const/16 v12, 0x3c
invoke-virtual {v9, v12, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
const/16 v11, 0x4f
const/16 v12, 0x30
invoke-virtual {v9, v12, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v9
iput-object v9, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 262
aget-object v9, v1, v18
add-int/lit8 v11, v5, 0x2
invoke-virtual {v9, v11}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v9
move-object/from16 v40, v0
const/16 v0, 0x3c
const/16 v11, 0x20
.end local v0 # "mrz":Ljava/lang/String;
.local v40, "mrz":Ljava/lang/String;
invoke-virtual {v9, v0, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
const/16 v0, 0x4f
invoke-virtual {v9, v12, v0}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 263
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
const-string v9, " "
invoke-virtual {v0, v9}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_40a
.line 264
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
iget-object v9, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
const-string v11, " "
invoke-virtual {v9, v11}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v9
const/4 v11, 0x0
invoke-virtual {v0, v11, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
goto :goto_40f
.line 263
:cond_40a
const/4 v11, 0x0
goto :goto_40f
.line 260
.end local v40 # "mrz":Ljava/lang/String;
.restart local v0 # "mrz":Ljava/lang/String;
:cond_40c
move-object/from16 v40, v0
const/4 v11, 0x0
.line 267
.end local v0 # "mrz":Ljava/lang/String;
.restart local v40 # "mrz":Ljava/lang/String;
:goto_40f
const/4 v0, 0x1
aget-object v9, v1, v0
const/16 v12, 0x9
invoke-virtual {v9, v11, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v9
const/16 v11, 0x20
const/16 v12, 0x3c
invoke-virtual {v9, v12, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
const/16 v11, 0x4f
const/16 v12, 0x30
invoke-virtual {v9, v11, v12}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v11
.line 268
.local v11, "number":Ljava/lang/String;
invoke-static {v11}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v12
.line 269
.local v12, "numberChecksum":I
aget-object v9, v1, v0
const/16 v0, 0x9
invoke-virtual {v9, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v0
if-ne v12, v0, :cond_440
.line 270
iput-object v11, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
.line 272
:cond_440
const/4 v0, 0x1
aget-object v9, v1, v0
move-object/from16 v41, v2
const/16 v0, 0xd
const/16 v2, 0xa
.end local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.local v41, "binaryBitmap":Landroid/graphics/Bitmap;
invoke-virtual {v9, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 273
const/4 v2, 0x1
aget-object v9, v1, v2
const/16 v2, 0x13
invoke-virtual {v9, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
const/16 v2, 0x4f
const/16 v9, 0x30
invoke-virtual {v0, v2, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
const/16 v2, 0x31
const/16 v9, 0x49
invoke-virtual {v0, v9, v2}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
.line 274
.local v0, "birthDate":Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v2
.line 275
.local v2, "birthDateChecksum":I
move-object/from16 v36, v4
const/4 v9, 0x1
.end local v4 # "charRects":[[Landroid/graphics/Rect;
.local v36, "charRects":[[Landroid/graphics/Rect;
aget-object v4, v1, v9
const/16 v9, 0x13
invoke-virtual {v4, v9}, Ljava/lang/String;->charAt(I)C
move-result v4
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v4
if-ne v2, v4, :cond_480
.line 276
invoke-static {v0, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseBirthDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.line 278
:cond_480
const/4 v4, 0x1
aget-object v9, v1, v4
const/16 v4, 0x14
invoke-virtual {v9, v4}, Ljava/lang/String;->charAt(I)C
move-result v4
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseGender(C)I
move-result v4
iput v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->gender:I
.line 279
const/4 v4, 0x1
aget-object v9, v1, v4
const/16 v4, 0x15
move-object/from16 v17, v0
const/16 v0, 0x1b
.end local v0 # "birthDate":Ljava/lang/String;
.local v17, "birthDate":Ljava/lang/String;
invoke-virtual {v9, v4, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
const/16 v0, 0x30
const/16 v9, 0x4f
invoke-virtual {v4, v9, v0}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
const/16 v4, 0x31
const/16 v9, 0x49
invoke-virtual {v0, v9, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
.line 280
.local v0, "expiryDate":Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v4
.line 281
.local v4, "expiryDateChecksum":I
move/from16 p0, v2
const/4 v9, 0x1
.end local v2 # "birthDateChecksum":I
.local p0, "birthDateChecksum":I
aget-object v2, v1, v9
const/16 v9, 0x1b
invoke-virtual {v2, v9}, Ljava/lang/String;->charAt(I)C
move-result v2
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v2
if-eq v4, v2, :cond_4cf
move/from16 v18, v4
const/4 v2, 0x1
.end local v4 # "expiryDateChecksum":I
.local v18, "expiryDateChecksum":I
aget-object v4, v1, v2
invoke-virtual {v4, v9}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v9, 0x3c
if-ne v4, v9, :cond_4d4
goto :goto_4d1
.end local v18 # "expiryDateChecksum":I
.restart local v4 # "expiryDateChecksum":I
:cond_4cf
move/from16 v18, v4
.line 282
.end local v4 # "expiryDateChecksum":I
.restart local v18 # "expiryDateChecksum":I
:goto_4d1
invoke-static {v0, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseExpiryDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.line 286
:cond_4d4
iget-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
const-string v9, "RUS"
invoke-virtual {v9, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_557
const/4 v4, 0x0
aget-object v9, v1, v4
const/4 v2, 0x1
invoke-virtual {v9, v2}, Ljava/lang/String;->charAt(I)C
move-result v9
move v2, v9
const/16 v9, 0x4e
if-ne v2, v9, :cond_557
.line 287
const/4 v2, 0x3
iput v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->type:I
.line 288
iget-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
const-string v9, " "
invoke-virtual {v2, v9}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 289
.local v2, "names":[Ljava/lang/String;
aget-object v9, v2, v4
invoke-static {v9}, Lim/tpelyyftgw/messenger/MrzRecognizer;->russianPassportTranslit(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
iput-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 290
array-length v4, v2
const/4 v9, 0x1
if-le v4, v9, :cond_512
.line 291
aget-object v4, v2, v9
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->russianPassportTranslit(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
iput-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->middleName:Ljava/lang/String;
.line 292
:cond_512
iget-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->russianPassportTranslit(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->cyrillicToLatin(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
iput-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 293
iget-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
if-eqz v4, :cond_552
.line 294
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
iget-object v9, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
move-object/from16 v21, v0
move-object/from16 v16, v2
const/4 v0, 0x3
const/4 v2, 0x0
.end local v0 # "expiryDate":Ljava/lang/String;
.end local v2 # "names":[Ljava/lang/String;
.local v16, "names":[Ljava/lang/String;
.local v21, "expiryDate":Ljava/lang/String;
invoke-virtual {v9, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/4 v2, 0x1
aget-object v2, v1, v2
const/16 v9, 0x1c
invoke-virtual {v2, v9}, Ljava/lang/String;->charAt(I)C
move-result v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
iget-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
invoke-virtual {v2, v0}, Ljava/lang/String;->substring(I)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
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
goto :goto_556
.line 293
.end local v16 # "names":[Ljava/lang/String;
.end local v21 # "expiryDate":Ljava/lang/String;
.restart local v0 # "expiryDate":Ljava/lang/String;
.restart local v2 # "names":[Ljava/lang/String;
:cond_552
move-object/from16 v21, v0
move-object/from16 v16, v2
.line 295
.end local v0 # "expiryDate":Ljava/lang/String;
.end local v2 # "names":[Ljava/lang/String;
.restart local v21 # "expiryDate":Ljava/lang/String;
:goto_556
goto :goto_56d
.line 286
.end local v21 # "expiryDate":Ljava/lang/String;
.restart local v0 # "expiryDate":Ljava/lang/String;
:cond_557
move-object/from16 v21, v0
.line 296
.end local v0 # "expiryDate":Ljava/lang/String;
.restart local v21 # "expiryDate":Ljava/lang/String;
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
const/16 v2, 0x38
const/16 v4, 0x42
invoke-virtual {v0, v2, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 297
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
invoke-virtual {v0, v2, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 299
:goto_56d
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 300
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 301
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->middleName:Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->middleName:Ljava/lang/String;
.line 302
.end local v5 # "lastNameEnd":I
.end local v11 # "number":Ljava/lang/String;
.end local v12 # "numberChecksum":I
.end local v17 # "birthDate":Ljava/lang/String;
.end local v18 # "expiryDateChecksum":I
.end local v21 # "expiryDate":Ljava/lang/String;
.end local p0 # "birthDateChecksum":I
goto/16 :goto_89f
.line 257
.end local v36 # "charRects":[[Landroid/graphics/Rect;
.end local v40 # "mrz":Ljava/lang/String;
.end local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
.local v0, "mrz":Ljava/lang/String;
.local v2, "binaryBitmap":Landroid/graphics/Bitmap;
.local v4, "charRects":[[Landroid/graphics/Rect;
:cond_587
move-object/from16 v40, v0
move-object/from16 v41, v2
move-object/from16 v36, v4
.end local v0 # "mrz":Ljava/lang/String;
.end local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.end local v4 # "charRects":[[Landroid/graphics/Rect;
.restart local v36 # "charRects":[[Landroid/graphics/Rect;
.restart local v40 # "mrz":Ljava/lang/String;
.restart local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
goto/16 :goto_89f
.line 303
.end local v36 # "charRects":[[Landroid/graphics/Rect;
.end local v40 # "mrz":Ljava/lang/String;
.end local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
.restart local v0 # "mrz":Ljava/lang/String;
.restart local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.restart local v4 # "charRects":[[Landroid/graphics/Rect;
:cond_58f
move-object/from16 v40, v0
move-object/from16 v41, v2
move-object/from16 v36, v4
.end local v0 # "mrz":Ljava/lang/String;
.end local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.end local v4 # "charRects":[[Landroid/graphics/Rect;
.restart local v36 # "charRects":[[Landroid/graphics/Rect;
.restart local v40 # "mrz":Ljava/lang/String;
.restart local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
const/16 v2, 0x49
if-eq v10, v2, :cond_5a4
const/16 v2, 0x41
if-eq v10, v2, :cond_5a4
const/16 v2, 0x43
if-ne v10, v2, :cond_5a2
goto :goto_5a4
.line 372
:cond_5a2
const/4 v0, 0x0
return-object v0
.line 304
:cond_5a4
:goto_5a4
const/4 v2, 0x2
iput v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->type:I
.line 305
array-length v4, v1
const/4 v5, 0x3
if-ne v4, v5, :cond_6b7
const/4 v4, 0x0
aget-object v5, v1, v4
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v5
const/16 v9, 0x1e
if-ne v5, v9, :cond_6b7
aget-object v5, v1, v2
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v5
if-ne v5, v9, :cond_6b7
.line 306
aget-object v5, v1, v4
const/4 v9, 0x5
invoke-virtual {v5, v2, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
iput-object v5, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
.line 307
aget-object v2, v1, v4
const/16 v5, 0xe
invoke-virtual {v2, v9, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
const/16 v9, 0x20
const/16 v11, 0x3c
invoke-virtual {v2, v11, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
const/16 v9, 0x4f
const/16 v11, 0x30
invoke-virtual {v2, v9, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
.line 308
.local v2, "number":Ljava/lang/String;
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v9
.line 309
.local v9, "numberChecksum":I
aget-object v12, v1, v4
invoke-virtual {v12, v5}, Ljava/lang/String;->charAt(I)C
move-result v12
sub-int/2addr v12, v11
if-ne v9, v12, :cond_5f2
.line 310
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
.line 313
:cond_5f2
const/4 v0, 0x1
aget-object v12, v1, v0
const/4 v5, 0x6
invoke-virtual {v12, v4, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v12
const/16 v4, 0x4f
invoke-virtual {v12, v4, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v12
const/16 v4, 0x31
const/16 v11, 0x49
invoke-virtual {v12, v11, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v12
.line 314
.local v12, "birthDate":Ljava/lang/String;
invoke-static {v12}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v4
.line 315
.local v4, "birthDateChecksum":I
aget-object v11, v1, v0
invoke-virtual {v11, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v5}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v5
if-ne v4, v5, :cond_61b
.line 316
invoke-static {v12, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseBirthDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.line 318
:cond_61b
aget-object v5, v1, v0
const/4 v11, 0x7
invoke-virtual {v5, v11}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v5}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseGender(C)I
move-result v5
iput v5, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->gender:I
.line 319
aget-object v5, v1, v0
const/16 v11, 0x8
const/16 v0, 0xe
invoke-virtual {v5, v11, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
const/16 v0, 0x30
const/16 v11, 0x4f
invoke-virtual {v5, v11, v0}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v5
const/16 v0, 0x31
const/16 v11, 0x49
invoke-virtual {v5, v11, v0}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
.line 320
.local v0, "expiryDate":Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v5
.line 321
.local v5, "expiryDateChecksum":I
move-object/from16 v16, v2
const/4 v11, 0x1
.end local v2 # "number":Ljava/lang/String;
.local v16, "number":Ljava/lang/String;
aget-object v2, v1, v11
const/16 v11, 0xe
invoke-virtual {v2, v11}, Ljava/lang/String;->charAt(I)C
move-result v2
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v2
if-eq v5, v2, :cond_665
move/from16 p0, v4
const/4 v2, 0x1
.end local v4 # "birthDateChecksum":I
.restart local p0 # "birthDateChecksum":I
aget-object v4, v1, v2
invoke-virtual {v4, v11}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v11, 0x3c
if-ne v4, v11, :cond_66a
goto :goto_667
.end local p0 # "birthDateChecksum":I
.restart local v4 # "birthDateChecksum":I
:cond_665
move/from16 p0, v4
.line 322
.end local v4 # "birthDateChecksum":I
.restart local p0 # "birthDateChecksum":I
:goto_667
invoke-static {v0, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseExpiryDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.line 324
:cond_66a
const/4 v2, 0x1
aget-object v2, v1, v2
const/16 v4, 0x12
const/16 v11, 0xf
invoke-virtual {v2, v11, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 325
const/4 v2, 0x2
aget-object v4, v1, v2
const-string v11, "<<"
invoke-virtual {v4, v11}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v4
.line 326
.local v4, "lastNameEnd":I
const/4 v11, -0x1
if-eq v4, v11, :cond_6b1
.line 327
aget-object v11, v1, v2
const/4 v2, 0x0
invoke-virtual {v11, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
move-object/from16 v17, v0
const/16 v0, 0x3c
const/16 v11, 0x20
.end local v0 # "expiryDate":Ljava/lang/String;
.local v17, "expiryDate":Ljava/lang/String;
invoke-virtual {v2, v0, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 328
const/4 v2, 0x2
aget-object v2, v1, v2
move/from16 v18, v5
.end local v5 # "expiryDateChecksum":I
.restart local v18 # "expiryDateChecksum":I
add-int/lit8 v5, v4, 0x2
invoke-virtual {v2, v5}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2, v0, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
goto/16 :goto_872
.line 326
.end local v17 # "expiryDate":Ljava/lang/String;
.end local v18 # "expiryDateChecksum":I
.restart local v0 # "expiryDate":Ljava/lang/String;
.restart local v5 # "expiryDateChecksum":I
:cond_6b1
move-object/from16 v17, v0
move/from16 v18, v5
.end local v0 # "expiryDate":Ljava/lang/String;
.end local v5 # "expiryDateChecksum":I
.restart local v17 # "expiryDate":Ljava/lang/String;
.restart local v18 # "expiryDateChecksum":I
goto/16 :goto_872
.line 330
.end local v4 # "lastNameEnd":I
.end local v9 # "numberChecksum":I
.end local v12 # "birthDate":Ljava/lang/String;
.end local v16 # "number":Ljava/lang/String;
.end local v17 # "expiryDate":Ljava/lang/String;
.end local v18 # "expiryDateChecksum":I
.end local p0 # "birthDateChecksum":I
:cond_6b7
array-length v2, v1
const/4 v4, 0x2
if-ne v2, v4, :cond_872
const/4 v2, 0x0
aget-object v5, v1, v2
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v5
const/16 v9, 0x24
if-ne v5, v9, :cond_872
.line 331
aget-object v5, v1, v2
const/4 v9, 0x5
invoke-virtual {v5, v4, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
iput-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
.line 332
iget-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
const-string v5, "FRA"
invoke-virtual {v5, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_786
const/16 v4, 0x49
if-ne v10, v4, :cond_786
aget-object v4, v1, v2
const/4 v0, 0x1
invoke-virtual {v4, v0}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v5, 0x44
if-ne v4, v5, :cond_786
.line 333
const-string v4, "FRA"
iput-object v4, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 334
aget-object v4, v1, v2
const/16 v2, 0x1e
const/4 v5, 0x5
invoke-virtual {v4, v5, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
const/16 v4, 0x20
const/16 v5, 0x3c
invoke-virtual {v2, v5, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 335
const/4 v0, 0x1
aget-object v2, v1, v0
const/16 v9, 0xd
const/16 v11, 0x1b
invoke-virtual {v2, v9, v11}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
const-string v9, "<<"
const-string v11, ", "
invoke-virtual {v2, v9, v11}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2, v5, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 336
aget-object v2, v1, v0
const/16 v4, 0xc
const/4 v5, 0x0
invoke-virtual {v2, v5, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
const/16 v4, 0x4f
const/16 v5, 0x30
invoke-virtual {v2, v4, v5}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
.line 337
.restart local v2 # "number":Ljava/lang/String;
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v4
aget-object v5, v1, v0
const/16 v9, 0xc
invoke-virtual {v5, v9}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v5}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v5
if-ne v4, v5, :cond_745
.line 338
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
.line 340
:cond_745
aget-object v4, v1, v0
const/16 v5, 0x21
const/16 v9, 0x1b
invoke-virtual {v4, v9, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
const/16 v5, 0x4f
const/16 v9, 0x30
invoke-virtual {v4, v5, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v4
const/16 v5, 0x31
const/16 v9, 0x49
invoke-virtual {v4, v9, v5}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v4
.line 341
.local v4, "birthDate":Ljava/lang/String;
invoke-static {v4}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v5
aget-object v9, v1, v0
const/16 v11, 0x21
invoke-virtual {v9, v11}, Ljava/lang/String;->charAt(I)C
move-result v9
invoke-static {v9}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v9
if-ne v5, v9, :cond_774
.line 342
invoke-static {v4, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseBirthDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.line 344
:cond_774
aget-object v5, v1, v0
const/16 v9, 0x22
invoke-virtual {v5, v9}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v5}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseGender(C)I
move-result v5
iput v5, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->gender:I
.line 345
iput-boolean v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->doesNotExpire:Z
.line 346
.end local v2 # "number":Ljava/lang/String;
.end local v4 # "birthDate":Ljava/lang/String;
goto/16 :goto_873
.line 347
:cond_786
const/4 v2, 0x0
aget-object v4, v1, v2
const-string v5, "<<"
invoke-virtual {v4, v5}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v4
.line 348
.local v4, "lastNameEnd":I
const/4 v5, -0x1
if-eq v4, v5, :cond_7ba
.line 349
aget-object v5, v1, v2
const/4 v9, 0x5
invoke-virtual {v5, v9, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
const/16 v9, 0x20
const/16 v11, 0x3c
invoke-virtual {v5, v11, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v5
iput-object v5, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 350
aget-object v5, v1, v2
add-int/lit8 v2, v4, 0x2
invoke-virtual {v5, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2, v11, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
goto :goto_7be
.line 348
:cond_7ba
const/16 v9, 0x20
const/16 v11, 0x3c
.line 352
:goto_7be
const/4 v0, 0x1
aget-object v2, v1, v0
const/16 v5, 0x9
const/4 v12, 0x0
invoke-virtual {v2, v12, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2, v11, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
const/16 v5, 0x4f
const/16 v9, 0x30
invoke-virtual {v2, v5, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v2
.line 353
.restart local v2 # "number":Ljava/lang/String;
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v5
.line 354
.local v5, "numberChecksum":I
aget-object v9, v1, v0
const/16 v11, 0x9
invoke-virtual {v9, v11}, Ljava/lang/String;->charAt(I)C
move-result v9
invoke-static {v9}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v9
if-ne v5, v9, :cond_7ec
.line 355
iput-object v2, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->number:Ljava/lang/String;
.line 357
:cond_7ec
aget-object v9, v1, v0
const/16 v11, 0xd
const/16 v12, 0xa
invoke-virtual {v9, v12, v11}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v9
iput-object v9, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 358
aget-object v9, v1, v0
const/16 v12, 0x13
invoke-virtual {v9, v11, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v9
const/16 v11, 0x4f
const/16 v12, 0x30
invoke-virtual {v9, v11, v12}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
const/16 v11, 0x31
const/16 v12, 0x49
invoke-virtual {v9, v12, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v9
.line 359
.local v9, "birthDate":Ljava/lang/String;
invoke-static {v9}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v11
aget-object v12, v1, v0
const/16 v0, 0x13
invoke-virtual {v12, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v0
if-ne v11, v0, :cond_825
.line 360
invoke-static {v9, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseBirthDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
.line 362
:cond_825
const/4 v0, 0x1
aget-object v11, v1, v0
const/16 v12, 0x14
invoke-virtual {v11, v12}, Ljava/lang/String;->charAt(I)C
move-result v11
invoke-static {v11}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseGender(C)I
move-result v11
iput v11, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->gender:I
.line 363
aget-object v11, v1, v0
const/16 v12, 0x15
const/16 v0, 0x1b
invoke-virtual {v11, v12, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v11
const/16 v0, 0x30
const/16 v12, 0x4f
invoke-virtual {v11, v12, v0}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v11
const/16 v0, 0x31
const/16 v12, 0x49
invoke-virtual {v11, v12, v0}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
.line 364
.restart local v0 # "expiryDate":Ljava/lang/String;
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->checksum(Ljava/lang/String;)I
move-result v11
move-object/from16 p0, v2
const/4 v12, 0x1
.end local v2 # "number":Ljava/lang/String;
.local p0, "number":Ljava/lang/String;
aget-object v2, v1, v12
const/16 v12, 0x1b
invoke-virtual {v2, v12}, Ljava/lang/String;->charAt(I)C
move-result v2
invoke-static {v2}, Lim/tpelyyftgw/messenger/MrzRecognizer;->getNumber(C)I
move-result v2
if-eq v11, v2, :cond_86e
const/4 v2, 0x1
aget-object v2, v1, v2
invoke-virtual {v2, v12}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v11, 0x3c
if-ne v2, v11, :cond_873
.line 365
:cond_86e
invoke-static {v0, v3}, Lim/tpelyyftgw/messenger/MrzRecognizer;->parseExpiryDate(Ljava/lang/String;Lim/tpelyyftgw/messenger/MrzRecognizer$Result;)V
goto :goto_873
.line 330
.end local v0 # "expiryDate":Ljava/lang/String;
.end local v4 # "lastNameEnd":I
.end local v5 # "numberChecksum":I
.end local v9 # "birthDate":Ljava/lang/String;
.end local p0 # "number":Ljava/lang/String;
:cond_872
:goto_872
nop
.line 369
:cond_873
:goto_873
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
const/16 v2, 0x4f
const/16 v4, 0x30
invoke-virtual {v0, v4, v2}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
const/16 v5, 0x38
const/16 v9, 0x42
invoke-virtual {v0, v5, v9}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
.line 370
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
invoke-virtual {v0, v4, v2}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
const/16 v2, 0x38
const/16 v4, 0x42
invoke-virtual {v0, v2, v4}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lim/tpelyyftgw/messenger/MrzRecognizer;->capitalize(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
.line 374
:goto_89f
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->firstName:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_8b1
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->lastName:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_8b1
.line 375
const/4 v0, 0x0
return-object v0
.line 376
:cond_8b1
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
invoke-virtual {v6, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->issuingCountry:Ljava/lang/String;
.line 377
iget-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
invoke-virtual {v6, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
iput-object v0, v3, Lim/tpelyyftgw/messenger/MrzRecognizer$Result;->nationality:Ljava/lang/String;
.line 378
return-object v3
.line 251
.end local v6 # "countries":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
.end local v10 # "type":C
.end local v36 # "charRects":[[Landroid/graphics/Rect;
.end local v40 # "mrz":Ljava/lang/String;
.end local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
.local v0, "mrz":Ljava/lang/String;
.local v2, "binaryBitmap":Landroid/graphics/Bitmap;
.local v4, "charRects":[[Landroid/graphics/Rect;
:cond_8c6
move-object/from16 v40, v0
move-object/from16 v41, v2
move-object/from16 v36, v4
.line 380
.end local v0 # "mrz":Ljava/lang/String;
.end local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.end local v4 # "charRects":[[Landroid/graphics/Rect;
.restart local v36 # "charRects":[[Landroid/graphics/Rect;
.restart local v40 # "mrz":Ljava/lang/String;
.restart local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
const/4 v0, 0x0
return-object v0
.line 229
.end local v3 # "result":Lim/tpelyyftgw/messenger/MrzRecognizer$Result;
.end local v8 # "chrBitmap":Landroid/graphics/Bitmap;
.end local v13 # "chrCanvas":Landroid/graphics/Canvas;
.end local v14 # "aaPaint":Landroid/graphics/Paint;
.end local v15 # "dst":Landroid/graphics/Rect;
.end local v20 # "y":I
.end local v28 # "bitmap":Landroid/graphics/Bitmap;
.end local v29 # "scale":F
.end local v32 # "pointsScale":F
.end local v33 # "maxLength":I
.end local v36 # "charRects":[[Landroid/graphics/Rect;
.end local v40 # "mrz":Ljava/lang/String;
.end local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
.local v0, "bitmap":Landroid/graphics/Bitmap;
.local v1, "scale":F
.restart local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.restart local v4 # "charRects":[[Landroid/graphics/Rect;
.local v5, "pointsScale":F
.local v6, "maxLength":I
:cond_8ce
move-object/from16 v28, v0
move/from16 v29, v1
move-object/from16 v41, v2
move-object v0, v3
move-object/from16 v36, v4
move/from16 v32, v5
move/from16 v33, v6
.line 230
.end local v0 # "bitmap":Landroid/graphics/Bitmap;
.end local v1 # "scale":F
.end local v2 # "binaryBitmap":Landroid/graphics/Bitmap;
.end local v4 # "charRects":[[Landroid/graphics/Rect;
.end local v5 # "pointsScale":F
.end local v6 # "maxLength":I
.restart local v28 # "bitmap":Landroid/graphics/Bitmap;
.restart local v29 # "scale":F
.restart local v32 # "pointsScale":F
.restart local v33 # "maxLength":I
.restart local v36 # "charRects":[[Landroid/graphics/Rect;
.restart local v41 # "binaryBitmap":Landroid/graphics/Bitmap;
:goto_8db
return-object v0
.end method
.method private static russianPassportTranslit(Ljava/lang/String;)Ljava/lang/String;
.registers 7
.param p0, "s" # Ljava/lang/String;
.line 462
const-string/jumbo v0, "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f"
.line 463
.local v0, "cyrillic":Ljava/lang/String;
const-string v1, "ABVGDE2JZIQKLMNOPRSTUFHC34WXY9678"
.line 464
.local v1, "latin":Ljava/lang/String;
invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C
move-result-object v2
.line 465
.local v2, "chars":[C
const/4 v3, 0x0
.local v3, "i":I
:goto_a
array-length v4, v2
if-ge v3, v4, :cond_24
.line 466
aget-char v4, v2, v3
const-string v5, "ABVGDE2JZIQKLMNOPRSTUFHC34WXY9678"
invoke-virtual {v5, v4}, Ljava/lang/String;->indexOf(I)I
move-result v4
.line 467
.local v4, "idx":I
const/4 v5, -0x1
if-eq v4, v5, :cond_21
.line 468
const-string/jumbo v5, "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f"
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
aput-char v5, v2, v3
.line 465
.end local v4 # "idx":I
:cond_21
add-int/lit8 v3, v3, 0x1
goto :goto_a
.line 470
.end local v3 # "i":I
:cond_24
new-instance v3, Ljava/lang/String;
invoke-direct {v3, v2}, Ljava/lang/String;-><init>([C)V
return-object v3
.end method
.method private static native setYuvBitmapPixels(Landroid/graphics/Bitmap;[B)V
.end method