.class final Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser; .super Ljava/lang/Object; .source "DecodedBitStreamParser.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; } .end annotation # static fields .field private static final AL:I = 0x1c .field private static final AS:I = 0x1b .field private static final BEGIN_MACRO_PDF417_CONTROL_BLOCK:I = 0x3a0 .field private static final BEGIN_MACRO_PDF417_OPTIONAL_FIELD:I = 0x39b .field private static final BYTE_COMPACTION_MODE_LATCH:I = 0x385 .field private static final BYTE_COMPACTION_MODE_LATCH_6:I = 0x39c .field private static final ECI_CHARSET:I = 0x39f .field private static final ECI_GENERAL_PURPOSE:I = 0x39e .field private static final ECI_USER_DEFINED:I = 0x39d .field private static final EXP900:[Ljava/math/BigInteger; .field private static final LL:I = 0x1b .field private static final MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE:I = 0x4 .field private static final MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM:I = 0x6 .field private static final MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME:I = 0x0 .field private static final MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE:I = 0x5 .field private static final MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT:I = 0x1 .field private static final MACRO_PDF417_OPTIONAL_FIELD_SENDER:I = 0x3 .field private static final MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP:I = 0x2 .field private static final MACRO_PDF417_TERMINATOR:I = 0x39a .field private static final MAX_NUMERIC_CODEWORDS:I = 0xf .field private static final MIXED_CHARS:[C .field private static final ML:I = 0x1c .field private static final MODE_SHIFT_TO_BYTE_COMPACTION_MODE:I = 0x391 .field private static final NUMBER_OF_SEQUENCE_CODEWORDS:I = 0x2 .field private static final NUMERIC_COMPACTION_MODE_LATCH:I = 0x386 .field private static final PAL:I = 0x1d .field private static final PL:I = 0x19 .field private static final PS:I = 0x1d .field private static final PUNCT_CHARS:[C .field private static final TEXT_COMPACTION_MODE_LATCH:I = 0x384 # direct methods .method static constructor ()V .locals 4 const-string v0, ";<>@[\\]_`~!\r\t,:\n-.$/\"|*()?{}\'" .line 1 invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C move-result-object v0 sput-object v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->PUNCT_CHARS:[C const-string v0, "0123456789&\r\t,:#-.$/+%*=^" .line 2 invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C move-result-object v0 sput-object v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->MIXED_CHARS:[C const/16 v0, 0x10 new-array v0, v0, [Ljava/math/BigInteger; .line 3 sput-object v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger; sget-object v1, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger; const/4 v2, 0x0 aput-object v1, v0, v2 const-wide/16 v0, 0x384 .line 4 invoke-static {v0, v1}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger; move-result-object v0 .line 5 sget-object v1, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger; const/4 v2, 0x1 aput-object v0, v1, v2 const/4 v1, 0x2 .line 6 :goto_0 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger; array-length v3, v2 if-ge v1, v3, :cond_0 add-int/lit8 v3, v1, -0x1 .line 7 aget-object v3, v2, v3 invoke-virtual {v3, v0}, Ljava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger; move-result-object v3 aput-object v3, v2, v1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return-void .end method .method private constructor ()V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private static byteCompaction(I[ILjava/nio/charset/Charset;ILjava/lang/StringBuilder;)I .locals 16 move/from16 v0, p0 .line 1 new-instance v1, Ljava/io/ByteArrayOutputStream; invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;->()V const/16 v2, 0x385 const-wide/16 v3, 0x384 const/16 v5, 0x3a0 const/16 v6, 0x384 const/4 v7, 0x6 const/4 v10, 0x0 if-eq v0, v2, :cond_5 const/16 v2, 0x39c if-eq v0, v2, :cond_0 move/from16 v0, p3 goto/16 :goto_7 :cond_0 move/from16 v0, p3 const/4 v2, 0x0 :cond_1 const/4 v12, 0x0 const-wide/16 v13, 0x0 .line 2 :cond_2 aget v15, p1, v10 if-ge v0, v15, :cond_c if-nez v2, :cond_c add-int/lit8 v15, v0, 0x1 .line 3 aget v0, p1, v0 if-ge v0, v6, :cond_3 add-int/lit8 v12, v12, 0x1 mul-long v13, v13, v3 int-to-long v8, v0 add-long/2addr v13, v8 goto :goto_0 :cond_3 if-eq v0, v5, :cond_4 packed-switch v0, :pswitch_data_0 packed-switch v0, :pswitch_data_1 :goto_0 move v0, v15 goto :goto_1 :cond_4 :pswitch_0 add-int/lit8 v15, v15, -0x1 move v0, v15 const/4 v2, 0x1 .line 4 :goto_1 rem-int/lit8 v8, v12, 0x5 if-nez v8, :cond_2 if-lez v12, :cond_2 const/4 v8, 0x0 :goto_2 if-ge v8, v7, :cond_1 rsub-int/lit8 v9, v8, 0x5 mul-int/lit8 v9, v9, 0x8 shr-long v11, v13, v9 long-to-int v9, v11 int-to-byte v9, v9 .line 5 invoke-virtual {v1, v9}, Ljava/io/ByteArrayOutputStream;->write(I)V add-int/lit8 v8, v8, 0x1 goto :goto_2 :cond_5 new-array v0, v7, [I add-int/lit8 v2, p3, 0x1 .line 6 aget v8, p1, p3 move v9, v8 const/4 v8, 0x0 :goto_3 const/4 v11, 0x0 const-wide/16 v12, 0x0 .line 7 :goto_4 aget v14, p1, v10 if-ge v2, v14, :cond_9 if-nez v8, :cond_9 add-int/lit8 v14, v11, 0x1 .line 8 aput v9, v0, v11 mul-long v12, v12, v3 int-to-long v3, v9 add-long/2addr v12, v3 add-int/lit8 v3, v2, 0x1 .line 9 aget v9, p1, v2 if-eq v9, v5, :cond_8 packed-switch v9, :pswitch_data_2 packed-switch v9, :pswitch_data_3 .line 10 rem-int/lit8 v2, v14, 0x5 if-nez v2, :cond_7 if-lez v14, :cond_7 const/4 v2, 0x0 :goto_5 if-ge v2, v7, :cond_6 rsub-int/lit8 v4, v2, 0x5 mul-int/lit8 v4, v4, 0x8 move/from16 p0, v8 shr-long v7, v12, v4 long-to-int v4, v7 int-to-byte v4, v4 .line 11 invoke-virtual {v1, v4}, Ljava/io/ByteArrayOutputStream;->write(I)V add-int/lit8 v2, v2, 0x1 const/4 v7, 0x6 move/from16 v8, p0 goto :goto_5 :cond_6 move/from16 p0, v8 move v2, v3 const-wide/16 v3, 0x384 goto :goto_3 :cond_7 move/from16 p0, v8 move/from16 v8, p0 move v2, v3 move v11, v14 const-wide/16 v3, 0x384 const/4 v7, 0x6 goto :goto_4 :cond_8 :pswitch_1 add-int/lit8 v2, v3, -0x1 move v11, v14 const-wide/16 v3, 0x384 const/4 v7, 0x6 const/4 v8, 0x1 goto :goto_4 .line 12 :cond_9 aget v3, p1, v10 if-ne v2, v3, :cond_a if-ge v9, v6, :cond_a add-int/lit8 v3, v11, 0x1 .line 13 aput v9, v0, v11 move v11, v3 :cond_a :goto_6 if-ge v10, v11, :cond_b .line 14 aget v3, v0, v10 int-to-byte v3, v3 invoke-virtual {v1, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V add-int/lit8 v10, v10, 0x1 goto :goto_6 :cond_b move v0, v2 .line 15 :cond_c :goto_7 new-instance v2, Ljava/lang/String; invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object v1 move-object/from16 v3, p2 invoke-direct {v2, v1, v3}, Ljava/lang/String;->([BLjava/nio/charset/Charset;)V move-object/from16 v1, p4 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; return v0 :pswitch_data_0 .packed-switch 0x384 :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch :pswitch_data_1 .packed-switch 0x39a :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch :pswitch_data_2 .packed-switch 0x384 :pswitch_1 :pswitch_1 :pswitch_1 .end packed-switch :pswitch_data_3 .packed-switch 0x39a :pswitch_1 :pswitch_1 :pswitch_1 .end packed-switch .end method .method static decode([ILjava/lang/String;)Lcom/google/zxing/common/DecoderResult; .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation .line 1 new-instance v0, Ljava/lang/StringBuilder; array-length v1, p0 const/4 v2, 0x1 shl-int/2addr v1, v2 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(I)V .line 2 sget-object v1, Ljava/nio/charset/StandardCharsets;->ISO_8859_1:Ljava/nio/charset/Charset; .line 3 aget v2, p0, v2 .line 4 new-instance v3, Lcom/google/zxing/pdf417/PDF417ResultMetadata; invoke-direct {v3}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->()V const/4 v4, 0x2 :goto_0 const/4 v5, 0x0 .line 5 aget v5, p0, v5 if-ge v4, v5, :cond_2 const/16 v5, 0x391 if-eq v2, v5, :cond_0 packed-switch v2, :pswitch_data_0 packed-switch v2, :pswitch_data_1 add-int/lit8 v4, v4, -0x1 .line 6 invoke-static {p0, v4, v0}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I move-result v2 goto :goto_1 .line 7 :pswitch_0 invoke-static {p0, v4, v3}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->decodeMacroBlock([IILcom/google/zxing/pdf417/PDF417ResultMetadata;)I move-result v2 goto :goto_1 :pswitch_1 add-int/lit8 v2, v4, 0x1 .line 8 aget v1, p0, v4 .line 9 invoke-static {v1}, Lcom/google/zxing/common/CharacterSetECI;->getCharacterSetECIByValue(I)Lcom/google/zxing/common/CharacterSetECI; move-result-object v1 .line 10 invoke-virtual {v1}, Ljava/lang/Enum;->name()Ljava/lang/String; move-result-object v1 invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; move-result-object v1 goto :goto_1 :pswitch_2 add-int/lit8 v2, v4, 0x2 goto :goto_1 :pswitch_3 add-int/lit8 v2, v4, 0x1 goto :goto_1 .line 11 :pswitch_4 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 .line 12 :pswitch_5 invoke-static {p0, v4, v0}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->numericCompaction([IILjava/lang/StringBuilder;)I move-result v2 goto :goto_1 .line 13 :pswitch_6 invoke-static {v2, p0, v1, v4, v0}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->byteCompaction(I[ILjava/nio/charset/Charset;ILjava/lang/StringBuilder;)I move-result v2 goto :goto_1 .line 14 :pswitch_7 invoke-static {p0, v4, v0}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I move-result v2 goto :goto_1 :cond_0 add-int/lit8 v2, v4, 0x1 .line 15 aget v4, p0, v4 int-to-char v4, v4 invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 16 :goto_1 array-length v4, p0 if-ge v2, v4, :cond_1 add-int/lit8 v4, v2, 0x1 .line 17 aget v2, p0, v2 goto :goto_0 .line 18 :cond_1 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 .line 19 :cond_2 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result p0 if-eqz p0, :cond_3 .line 20 new-instance p0, Lcom/google/zxing/common/DecoderResult; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const/4 v1, 0x0 invoke-direct {p0, v1, v0, v1, p1}, Lcom/google/zxing/common/DecoderResult;->([BLjava/lang/String;Ljava/util/List;Ljava/lang/String;)V .line 21 invoke-virtual {p0, v3}, Lcom/google/zxing/common/DecoderResult;->setOther(Ljava/lang/Object;)V return-object p0 .line 22 :cond_3 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :pswitch_data_0 .packed-switch 0x384 :pswitch_7 :pswitch_6 :pswitch_5 .end packed-switch :pswitch_data_1 .packed-switch 0x39a :pswitch_4 :pswitch_4 :pswitch_6 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static decodeBase900toBase10([II)Ljava/lang/String; .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation .line 1 sget-object v0, Ljava/math/BigInteger;->ZERO:Ljava/math/BigInteger; const/4 v1, 0x0 move-object v2, v0 const/4 v0, 0x0 :goto_0 const/4 v3, 0x1 if-ge v0, p1, :cond_0 .line 2 sget-object v4, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->EXP900:[Ljava/math/BigInteger; sub-int v5, p1, v0 sub-int/2addr v5, v3 aget-object v3, v4, v5 aget v4, p0, v0 int-to-long v4, v4 invoke-static {v4, v5}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger; move-result-object v4 invoke-virtual {v3, v4}, Ljava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger; move-result-object v3 invoke-virtual {v2, v3}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger; move-result-object v2 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 3 :cond_0 invoke-virtual {v2}, Ljava/math/BigInteger;->toString()Ljava/lang/String; move-result-object p0 .line 4 invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C move-result p1 const/16 v0, 0x31 if-ne p1, v0, :cond_1 .line 5 invoke-virtual {p0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p0 return-object p0 .line 6 :cond_1 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 .end method .method static decodeMacroBlock([IILcom/google/zxing/pdf417/PDF417ResultMetadata;)I .locals 6 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation add-int/lit8 v0, p1, 0x2 const/4 v1, 0x0 .line 1 aget v2, p0, v1 if-gt v0, v2, :cond_7 const/4 v0, 0x2 new-array v2, v0, [I move v3, p1 const/4 p1, 0x0 :goto_0 if-ge p1, v0, :cond_0 .line 2 aget v4, p0, v3 aput v4, v2, p1 add-int/lit8 p1, p1, 0x1 add-int/lit8 v3, v3, 0x1 goto :goto_0 .line 3 :cond_0 invoke-static {v2, v0}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->decodeBase900toBase10([II)Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p1 invoke-virtual {p2, p1}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setSegmentIndex(I)V .line 4 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1}, Ljava/lang/StringBuilder;->()V .line 5 invoke-static {p0, v3, p1}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 6 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {p2, p1}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setFileId(Ljava/lang/String;)V .line 7 aget p1, p0, v0 const/16 v2, 0x39b const/4 v3, -0x1 if-ne p1, v2, :cond_1 add-int/lit8 p1, v0, 0x1 goto :goto_1 :cond_1 const/4 p1, -0x1 .line 8 :goto_1 aget v4, p0, v1 if-ge v0, v4, :cond_4 .line 9 aget v4, p0, v0 const/16 v5, 0x39a if-eq v4, v5, :cond_3 if-ne v4, v2, :cond_2 add-int/lit8 v0, v0, 0x1 .line 10 aget v4, p0, v0 packed-switch v4, :pswitch_data_0 .line 11 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 .line 12 :pswitch_0 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 13 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->numericCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 14 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v4 invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setChecksum(I)V goto :goto_1 .line 15 :pswitch_1 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 16 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->numericCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 17 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v4 invoke-virtual {p2, v4, v5}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setFileSize(J)V goto :goto_1 .line 18 :pswitch_2 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 19 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 20 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setAddressee(Ljava/lang/String;)V goto :goto_1 .line 21 :pswitch_3 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 22 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 23 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setSender(Ljava/lang/String;)V goto :goto_1 .line 24 :pswitch_4 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 25 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->numericCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 26 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v4 invoke-virtual {p2, v4, v5}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setTimestamp(J)V goto/16 :goto_1 .line 27 :pswitch_5 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 28 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->numericCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 29 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v4 invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setSegmentCount(I)V goto/16 :goto_1 .line 30 :pswitch_6 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V add-int/lit8 v0, v0, 0x1 .line 31 invoke-static {p0, v0, v4}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->textCompaction([IILjava/lang/StringBuilder;)I move-result v0 .line 32 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setFileName(Ljava/lang/String;)V goto/16 :goto_1 .line 33 :cond_2 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :cond_3 add-int/lit8 v0, v0, 0x1 const/4 v4, 0x1 .line 34 invoke-virtual {p2, v4}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setLastSegment(Z)V goto/16 :goto_1 :cond_4 if-eq p1, v3, :cond_6 sub-int v1, v0, p1 .line 35 invoke-virtual {p2}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->isLastSegment()Z move-result v2 if-eqz v2, :cond_5 add-int/lit8 v1, v1, -0x1 :cond_5 add-int/2addr v1, p1 .line 36 invoke-static {p0, p1, v1}, Ljava/util/Arrays;->copyOfRange([III)[I move-result-object p0 invoke-virtual {p2, p0}, Lcom/google/zxing/pdf417/PDF417ResultMetadata;->setOptionalData([I)V :cond_6 return v0 .line 37 :cond_7 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :pswitch_data_0 .packed-switch 0x0 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static decodeTextCompaction([I[IILjava/lang/StringBuilder;)V .locals 12 .line 1 sget-object v0, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; const/4 v1, 0x0 move-object v2, v0 move-object v3, v2 const/4 v0, 0x0 :goto_0 if-ge v0, p2, :cond_15 .line 2 aget v4, p0, v0 .line 3 sget-object v5, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$1;->$SwitchMap$com$google$zxing$pdf417$decoder$DecodedBitStreamParser$Mode:[I invoke-virtual {v2}, Ljava/lang/Enum;->ordinal()I move-result v6 aget v5, v5, v6 const/16 v6, 0x20 const/16 v7, 0x1d const/16 v8, 0x1a const/16 v9, 0x391 const/16 v10, 0x384 packed-switch v5, :pswitch_data_0 goto/16 :goto_6 :pswitch_0 if-ge v4, v7, :cond_0 .line 4 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->PUNCT_CHARS:[C aget-char v2, v2, v4 goto :goto_2 :cond_0 if-eq v4, v7, :cond_3 if-eq v4, v10, :cond_2 if-eq v4, v9, :cond_1 goto :goto_1 .line 5 :cond_1 aget v2, p1, v0 int-to-char v2, v2 invoke-virtual {p3, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; :goto_1 move-object v2, v3 goto/16 :goto_6 .line 6 :cond_2 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 .line 7 :cond_3 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 :pswitch_1 if-ge v4, v8, :cond_4 add-int/lit8 v4, v4, 0x41 int-to-char v2, v4 :goto_2 move v4, v2 move-object v2, v3 goto/16 :goto_7 :cond_4 if-eq v4, v8, :cond_6 if-eq v4, v10, :cond_5 goto :goto_1 .line 8 :cond_5 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 :cond_6 move-object v2, v3 goto/16 :goto_5 :pswitch_2 if-ge v4, v7, :cond_7 .line 9 sget-object v5, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->PUNCT_CHARS:[C aget-char v4, v5, v4 goto/16 :goto_7 :cond_7 if-eq v4, v7, :cond_a if-eq v4, v10, :cond_9 if-eq v4, v9, :cond_8 goto/16 :goto_6 .line 10 :cond_8 aget v4, p1, v0 int-to-char v4, v4 invoke-virtual {p3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; goto/16 :goto_6 .line 11 :cond_9 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 .line 12 :cond_a sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 :pswitch_3 const/16 v5, 0x19 if-ge v4, v5, :cond_b .line 13 sget-object v5, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->MIXED_CHARS:[C aget-char v4, v5, v4 goto/16 :goto_7 :cond_b if-eq v4, v10, :cond_d if-eq v4, v9, :cond_c packed-switch v4, :pswitch_data_1 goto/16 :goto_6 .line 14 :pswitch_4 sget-object v3, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_4 .line 15 :pswitch_5 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 .line 16 :pswitch_6 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->LOWER:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 .line 17 :pswitch_7 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto/16 :goto_6 .line 18 :cond_c aget v4, p1, v0 int-to-char v4, v4 invoke-virtual {p3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; goto :goto_6 .line 19 :cond_d sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_6 :pswitch_8 if-ge v4, v8, :cond_e add-int/lit8 v4, v4, 0x61 goto :goto_3 :cond_e if-eq v4, v10, :cond_10 if-eq v4, v9, :cond_f packed-switch v4, :pswitch_data_2 goto :goto_6 .line 20 :pswitch_9 sget-object v3, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_4 .line 21 :pswitch_a sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->MIXED:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_6 .line 22 :pswitch_b sget-object v3, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_4 .line 23 :cond_f aget v4, p1, v0 int-to-char v4, v4 invoke-virtual {p3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; goto :goto_6 .line 24 :cond_10 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_6 :pswitch_c if-ge v4, v8, :cond_11 add-int/lit8 v4, v4, 0x41 :goto_3 int-to-char v4, v4 goto :goto_7 :cond_11 if-eq v4, v10, :cond_13 if-eq v4, v9, :cond_12 packed-switch v4, :pswitch_data_3 goto :goto_6 .line 25 :pswitch_d sget-object v3, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->PUNCT_SHIFT:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; :goto_4 const/4 v4, 0x0 move-object v11, v3 move-object v3, v2 move-object v2, v11 goto :goto_7 .line 26 :pswitch_e sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->MIXED:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_6 .line 27 :pswitch_f sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->LOWER:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; goto :goto_6 :goto_5 :pswitch_10 const/16 v4, 0x20 goto :goto_7 .line 28 :cond_12 aget v4, p1, v0 int-to-char v4, v4 invoke-virtual {p3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; goto :goto_6 .line 29 :cond_13 sget-object v2, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode;->ALPHA:Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode; :goto_6 const/4 v4, 0x0 :goto_7 if-eqz v4, :cond_14 .line 30 invoke-virtual {p3, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; :cond_14 add-int/lit8 v0, v0, 0x1 goto/16 :goto_0 :cond_15 return-void nop :pswitch_data_0 .packed-switch 0x1 :pswitch_c :pswitch_8 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch :pswitch_data_1 .packed-switch 0x19 :pswitch_7 :pswitch_10 :pswitch_6 :pswitch_5 :pswitch_4 .end packed-switch :pswitch_data_2 .packed-switch 0x1a :pswitch_10 :pswitch_b :pswitch_a :pswitch_9 .end packed-switch :pswitch_data_3 .packed-switch 0x1a :pswitch_10 :pswitch_f :pswitch_e :pswitch_d .end packed-switch .end method .method private static numericCompaction([IILjava/lang/StringBuilder;)I .locals 7 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation const/16 v0, 0xf new-array v0, v0, [I const/4 v1, 0x0 const/4 v2, 0x0 const/4 v3, 0x0 .line 1 :goto_0 aget v4, p0, v1 if-ge p1, v4, :cond_5 if-nez v2, :cond_5 add-int/lit8 v4, p1, 0x1 .line 2 aget p1, p0, p1 .line 3 aget v5, p0, v1 const/4 v6, 0x1 if-ne v4, v5, :cond_0 const/4 v2, 0x1 :cond_0 const/16 v5, 0x384 if-ge p1, v5, :cond_1 .line 4 aput p1, v0, v3 add-int/lit8 v3, v3, 0x1 goto :goto_1 :cond_1 if-eq p1, v5, :cond_2 const/16 v5, 0x385 if-eq p1, v5, :cond_2 const/16 v5, 0x3a0 if-eq p1, v5, :cond_2 packed-switch p1, :pswitch_data_0 goto :goto_1 :cond_2 :pswitch_0 add-int/lit8 v4, v4, -0x1 const/4 v2, 0x1 .line 5 :goto_1 rem-int/lit8 v5, v3, 0xf if-eqz v5, :cond_3 const/16 v5, 0x386 if-eq p1, v5, :cond_3 if-eqz v2, :cond_4 :cond_3 if-lez v3, :cond_4 .line 6 invoke-static {v0, v3}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->decodeBase900toBase10([II)Ljava/lang/String; move-result-object p1 invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/4 v3, 0x0 :cond_4 move p1, v4 goto :goto_0 :cond_5 return p1 :pswitch_data_0 .packed-switch 0x39a :pswitch_0 :pswitch_0 :pswitch_0 .end packed-switch .end method .method private static textCompaction([IILjava/lang/StringBuilder;)I .locals 9 const/4 v0, 0x0 .line 1 aget v1, p0, v0 sub-int/2addr v1, p1 const/4 v2, 0x1 shl-int/2addr v1, v2 new-array v1, v1, [I .line 2 aget v3, p0, v0 sub-int/2addr v3, p1 shl-int/2addr v3, v2 new-array v3, v3, [I const/4 v4, 0x0 const/4 v5, 0x0 .line 3 :goto_0 aget v6, p0, v0 if-ge p1, v6, :cond_3 if-nez v4, :cond_3 add-int/lit8 v6, p1, 0x1 .line 4 aget p1, p0, p1 const/16 v7, 0x384 if-ge p1, v7, :cond_0 .line 5 div-int/lit8 v7, p1, 0x1e aput v7, v1, v5 add-int/lit8 v7, v5, 0x1 .line 6 rem-int/lit8 p1, p1, 0x1e aput p1, v1, v7 add-int/lit8 v5, v5, 0x2 :goto_1 move p1, v6 goto :goto_0 :cond_0 const/16 v8, 0x391 if-eq p1, v8, :cond_2 const/16 v8, 0x3a0 if-eq p1, v8, :cond_1 packed-switch p1, :pswitch_data_0 packed-switch p1, :pswitch_data_1 goto :goto_1 :pswitch_0 add-int/lit8 p1, v5, 0x1 .line 7 aput v7, v1, v5 move v5, p1 goto :goto_1 :cond_1 :pswitch_1 add-int/lit8 p1, v6, -0x1 const/4 v4, 0x1 goto :goto_0 .line 8 :cond_2 aput v8, v1, v5 add-int/lit8 p1, v6, 0x1 .line 9 aget v6, p0, v6 .line 10 aput v6, v3, v5 add-int/lit8 v5, v5, 0x1 goto :goto_0 .line 11 :cond_3 invoke-static {v1, v3, v5, p2}, Lcom/google/zxing/pdf417/decoder/DecodedBitStreamParser;->decodeTextCompaction([I[IILjava/lang/StringBuilder;)V return p1 :pswitch_data_0 .packed-switch 0x384 :pswitch_0 :pswitch_1 :pswitch_1 .end packed-switch :pswitch_data_1 .packed-switch 0x39a :pswitch_1 :pswitch_1 :pswitch_1 .end packed-switch .end method