RSSExpandedReader.smali

.class public final Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;
.super Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;


# static fields
.field private static final EVEN_TOTAL_SUBSET:[I

.field private static final FINDER_PATTERNS:[[I

.field private static final FINDER_PATTERN_SEQUENCES:[[I

.field private static final FINDER_PAT_A:I = 0x0

.field private static final FINDER_PAT_B:I = 0x1

.field private static final FINDER_PAT_C:I = 0x2

.field private static final FINDER_PAT_D:I = 0x3

.field private static final FINDER_PAT_E:I = 0x4

.field private static final FINDER_PAT_F:I = 0x5

.field private static final GSUM:[I

.field private static final MAX_PAIRS:I = 0xb

.field private static final SYMBOL_WIDEST:[I

.field private static final WEIGHTS:[[I


# instance fields
.field private final pairs:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;"
        }
    .end annotation
.end field

.field private final rows:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;",
            ">;"
        }
    .end annotation
.end field

.field private final startEnd:[I

.field private startFromEven:Z


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

    const/4 v0, 0x5

    new-array v1, v0, [I

    .line 1
    fill-array-data v1, :array_15c

    sput-object v1, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->SYMBOL_WIDEST:[I

    new-array v1, v0, [I

    .line 2
    fill-array-data v1, :array_16a

    sput-object v1, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->EVEN_TOTAL_SUBSET:[I

    new-array v1, v0, [I

    .line 3
    fill-array-data v1, :array_178

    sput-object v1, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->GSUM:[I

    const/4 v1, 0x6

    new-array v2, v1, [[I

    const/4 v3, 0x4

    new-array v4, v3, [I

    .line 5
    fill-array-data v4, :array_186

    const/4 v5, 0x0

    aput-object v4, v2, v5

    new-array v4, v3, [I

    fill-array-data v4, :array_192

    const/4 v6, 0x1

    aput-object v4, v2, v6

    new-array v4, v3, [I

    fill-array-data v4, :array_19e

    const/4 v7, 0x2

    aput-object v4, v2, v7

    new-array v4, v3, [I

    fill-array-data v4, :array_1aa

    const/4 v8, 0x3

    aput-object v4, v2, v8

    new-array v4, v3, [I

    fill-array-data v4, :array_1b6

    aput-object v4, v2, v3

    new-array v4, v3, [I

    fill-array-data v4, :array_1c2

    aput-object v4, v2, v0

    sput-object v2, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->FINDER_PATTERNS:[[I

    const/16 v2, 0x17

    new-array v2, v2, [[I

    const/16 v4, 0x8

    new-array v9, v4, [I

    .line 14
    fill-array-data v9, :array_1ce

    aput-object v9, v2, v5

    new-array v9, v4, [I

    fill-array-data v9, :array_1e2

    aput-object v9, v2, v6

    new-array v9, v4, [I

    fill-array-data v9, :array_1f6

    aput-object v9, v2, v7

    new-array v9, v4, [I

    fill-array-data v9, :array_20a

    aput-object v9, v2, v8

    new-array v9, v4, [I

    fill-array-data v9, :array_21e

    aput-object v9, v2, v3

    new-array v9, v4, [I

    fill-array-data v9, :array_232

    aput-object v9, v2, v0

    new-array v9, v4, [I

    fill-array-data v9, :array_246

    aput-object v9, v2, v1

    new-array v9, v4, [I

    fill-array-data v9, :array_25a

    const/4 v10, 0x7

    aput-object v9, v2, v10

    new-array v9, v4, [I

    fill-array-data v9, :array_26e

    aput-object v9, v2, v4

    new-array v9, v4, [I

    fill-array-data v9, :array_282

    const/16 v11, 0x9

    aput-object v9, v2, v11

    new-array v9, v4, [I

    fill-array-data v9, :array_296

    const/16 v12, 0xa

    aput-object v9, v2, v12

    new-array v9, v4, [I

    fill-array-data v9, :array_2aa

    const/16 v13, 0xb

    aput-object v9, v2, v13

    new-array v9, v4, [I

    fill-array-data v9, :array_2be

    const/16 v14, 0xc

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_2d2

    const/16 v14, 0xd

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_2e6

    const/16 v14, 0xe

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_2fa

    const/16 v14, 0xf

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_30e

    const/16 v14, 0x10

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_322

    const/16 v14, 0x11

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_336

    const/16 v14, 0x12

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_34a

    const/16 v14, 0x13

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_35e

    const/16 v14, 0x14

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_372

    const/16 v14, 0x15

    aput-object v9, v2, v14

    new-array v9, v4, [I

    fill-array-data v9, :array_386

    const/16 v14, 0x16

    aput-object v9, v2, v14

    sput-object v2, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->WEIGHTS:[[I

    new-array v2, v12, [[I

    new-array v9, v7, [I

    .line 47
    fill-array-data v9, :array_39a

    aput-object v9, v2, v5

    new-array v5, v8, [I

    fill-array-data v5, :array_3a2

    aput-object v5, v2, v6

    new-array v5, v3, [I

    fill-array-data v5, :array_3ac

    aput-object v5, v2, v7

    new-array v5, v0, [I

    fill-array-data v5, :array_3b8

    aput-object v5, v2, v8

    new-array v5, v1, [I

    fill-array-data v5, :array_3c6

    aput-object v5, v2, v3

    new-array v3, v10, [I

    fill-array-data v3, :array_3d6

    aput-object v3, v2, v0

    new-array v0, v4, [I

    fill-array-data v0, :array_3e8

    aput-object v0, v2, v1

    new-array v0, v11, [I

    fill-array-data v0, :array_3fc

    aput-object v0, v2, v10

    new-array v0, v12, [I

    fill-array-data v0, :array_412

    aput-object v0, v2, v4

    new-array v0, v13, [I

    fill-array-data v0, :array_42a

    aput-object v0, v2, v11

    sput-object v2, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->FINDER_PATTERN_SEQUENCES:[[I

    return-void

    nop

    :array_15c
    .array-data 4
        0x7
        0x5
        0x4
        0x3
        0x1
    .end array-data

    :array_16a
    .array-data 4
        0x4
        0x14
        0x34
        0x68
        0xcc
    .end array-data

    :array_178
    .array-data 4
        0x0
        0x15c
        0x56c
        0xb84
        0xf94
    .end array-data

    :array_186
    .array-data 4
        0x1
        0x8
        0x4
        0x1
    .end array-data

    :array_192
    .array-data 4
        0x3
        0x6
        0x4
        0x1
    .end array-data

    :array_19e
    .array-data 4
        0x3
        0x4
        0x6
        0x1
    .end array-data

    :array_1aa
    .array-data 4
        0x3
        0x2
        0x8
        0x1
    .end array-data

    :array_1b6
    .array-data 4
        0x2
        0x6
        0x5
        0x1
    .end array-data

    :array_1c2
    .array-data 4
        0x2
        0x2
        0x9
        0x1
    .end array-data

    :array_1ce
    .array-data 4
        0x1
        0x3
        0x9
        0x1b
        0x51
        0x20
        0x60
        0x4d
    .end array-data

    :array_1e2
    .array-data 4
        0x14
        0x3c
        0xb4
        0x76
        0x8f
        0x7
        0x15
        0x3f
    .end array-data

    :array_1f6
    .array-data 4
        0xbd
        0x91
        0xd
        0x27
        0x75
        0x8c
        0xd1
        0xcd
    .end array-data

    :array_20a
    .array-data 4
        0xc1
        0x9d
        0x31
        0x93
        0x13
        0x39
        0xab
        0x5b
    .end array-data

    :array_21e
    .array-data 4
        0x3e
        0xba
        0x88
        0xc5
        0xa9
        0x55
        0x2c
        0x84
    .end array-data

    :array_232
    .array-data 4
        0xb9
        0x85
        0xbc
        0x8e
        0x4
        0xc
        0x24
        0x6c
    .end array-data

    :array_246
    .array-data 4
        0x71
        0x80
        0xad
        0x61
        0x50
        0x1d
        0x57
        0x32
    .end array-data

    :array_25a
    .array-data 4
        0x96
        0x1c
        0x54
        0x29
        0x7b
        0x9e
        0x34
        0x9c
    .end array-data

    :array_26e
    .array-data 4
        0x2e
        0x8a
        0xcb
        0xbb
        0x8b
        0xce
        0xc4
        0xa6
    .end array-data

    :array_282
    .array-data 4
        0x4c
        0x11
        0x33
        0x99
        0x25
        0x6f
        0x7a
        0x9b
    .end array-data

    :array_296
    .array-data 4
        0x2b
        0x81
        0xb0
        0x6a
        0x6b
        0x6e
        0x77
        0x92
    .end array-data

    :array_2aa
    .array-data 4
        0x10
        0x30
        0x90
        0xa
        0x1e
        0x5a
        0x3b
        0xb1
    .end array-data

    :array_2be
    .array-data 4
        0x6d
        0x74
        0x89
        0xc8
        0xb2
        0x70
        0x7d
        0xa4
    .end array-data

    :array_2d2
    .array-data 4
        0x46
        0xd2
        0xd0
        0xca
        0xb8
        0x82
        0xb3
        0x73
    .end array-data

    :array_2e6
    .array-data 4
        0x86
        0xbf
        0x97
        0x1f
        0x5d
        0x44
        0xcc
        0xbe
    .end array-data

    :array_2fa
    .array-data 4
        0x94
        0x16
        0x42
        0xc6
        0xac
        0x5e
        0x47
        0x2
    .end array-data

    :array_30e
    .array-data 4
        0x6
        0x12
        0x36
        0xa2
        0x40
        0xc0
        0x9a
        0x28
    .end array-data

    :array_322
    .array-data 4
        0x78
        0x95
        0x19
        0x4b
        0xe
        0x2a
        0x7e
        0xa7
    .end array-data

    :array_336
    .array-data 4
        0x4f
        0x1a
        0x4e
        0x17
        0x45
        0xcf
        0xc7
        0xaf
    .end array-data

    :array_34a
    .array-data 4
        0x67
        0x62
        0x53
        0x26
        0x72
        0x83
        0xb6
        0x7c
    .end array-data

    :array_35e
    .array-data 4
        0xa1
        0x3d
        0xb7
        0x7f
        0xaa
        0x58
        0x35
        0x9f
    .end array-data

    :array_372
    .array-data 4
        0x37
        0xa5
        0x49
        0x8
        0x18
        0x48
        0x5
        0xf
    .end array-data

    :array_386
    .array-data 4
        0x2d
        0x87
        0xc2
        0xa0
        0x3a
        0xae
        0x64
        0x59
    .end array-data

    :array_39a
    .array-data 4
        0x0
        0x0
    .end array-data

    :array_3a2
    .array-data 4
        0x0
        0x1
        0x1
    .end array-data

    :array_3ac
    .array-data 4
        0x0
        0x2
        0x1
        0x3
    .end array-data

    :array_3b8
    .array-data 4
        0x0
        0x4
        0x1
        0x3
        0x2
    .end array-data

    :array_3c6
    .array-data 4
        0x0
        0x4
        0x1
        0x3
        0x3
        0x5
    .end array-data

    :array_3d6
    .array-data 4
        0x0
        0x4
        0x1
        0x3
        0x4
        0x5
        0x5
    .end array-data

    :array_3e8
    .array-data 4
        0x0
        0x0
        0x1
        0x1
        0x2
        0x2
        0x3
        0x3
    .end array-data

    :array_3fc
    .array-data 4
        0x0
        0x0
        0x1
        0x1
        0x2
        0x2
        0x3
        0x4
        0x4
    .end array-data

    :array_412
    .array-data 4
        0x0
        0x0
        0x1
        0x1
        0x2
        0x2
        0x3
        0x4
        0x5
        0x5
    .end array-data

    :array_42a
    .array-data 4
        0x0
        0x0
        0x1
        0x1
        0x2
        0x3
        0x3
        0x4
        0x4
        0x5
        0x5
    .end array-data
.end method

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

    .line 1
    invoke-direct {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;-><init>()V

    .line 64
    new-instance v0, Ljava/util/ArrayList;

    const/16 v1, 0xb

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

    iput-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    .line 65
    new-instance v0, Ljava/util/ArrayList;

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

    iput-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    const/4 v0, 0x2

    new-array v0, v0, [I

    .line 66
    iput-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    return-void
.end method

.method private adjustOddEvenCounts(I)V
    .registers 12
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;
        }
    .end annotation

    .line 1
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddCounts()[I

    move-result-object v0

    invoke-static {v0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->count([I)I

    move-result v0

    .line 2
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getEvenCounts()[I

    move-result-object v1

    invoke-static {v1}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->count([I)I

    move-result v1

    add-int v2, v0, v1

    sub-int/2addr v2, p1

    and-int/lit8 p1, v0, 0x1

    const/4 v3, 0x0

    const/4 v4, 0x1

    if-ne p1, v4, :cond_1b

    move p1, v4

    goto :goto_1c

    :cond_1b
    move p1, v3

    :goto_1c
    and-int/lit8 v5, v1, 0x1

    if-nez v5, :cond_22

    move v5, v4

    goto :goto_23

    :cond_22
    move v5, v3

    :goto_23
    const/4 v6, 0x4

    const/16 v7, 0xd

    if-le v0, v7, :cond_2b

    move v8, v3

    move v9, v4

    goto :goto_32

    :cond_2b
    if-ge v0, v6, :cond_30

    move v9, v3

    move v8, v4

    goto :goto_32

    :cond_30
    move v8, v3

    move v9, v8

    :goto_32
    if-le v1, v7, :cond_36

    move v6, v4

    goto :goto_3c

    :cond_36
    if-ge v1, v6, :cond_3b

    move v6, v3

    move v3, v4

    goto :goto_3c

    :cond_3b
    move v6, v3

    :goto_3c
    if-ne v2, v4, :cond_53

    if-eqz p1, :cond_49

    if-nez v5, :cond_44

    move v9, v4

    goto :goto_4c

    .line 26
    :cond_44
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_49
    if-eqz v5, :cond_4e

    move v6, v4

    :goto_4c
    move v4, v8

    goto :goto_7e

    .line 31
    :cond_4e
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_53
    const/4 v7, -0x1

    if-ne v2, v7, :cond_69

    if-eqz p1, :cond_60

    if-nez v5, :cond_5b

    goto :goto_7e

    .line 38
    :cond_5b
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_60
    if-eqz v5, :cond_64

    move v3, v4

    goto :goto_4c

    .line 43
    :cond_64
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_69
    if-nez v2, :cond_c8

    if-eqz p1, :cond_7b

    if-eqz v5, :cond_76

    if-ge v0, v1, :cond_73

    move v6, v4

    goto :goto_7e

    :cond_73
    move v3, v4

    move v9, v3

    goto :goto_4c

    .line 50
    :cond_76
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_7b
    if-nez v5, :cond_c3

    goto :goto_4c

    :goto_7e
    if-eqz v4, :cond_93

    if-nez v9, :cond_8e

    .line 74
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddCounts()[I

    move-result-object p1

    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddRoundingErrors()[F

    move-result-object v0

    invoke-static {p1, v0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->increment([I[F)V

    goto :goto_93

    .line 75
    :cond_8e
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_93
    :goto_93
    if-eqz v9, :cond_a0

    .line 80
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddCounts()[I

    move-result-object p1

    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddRoundingErrors()[F

    move-result-object v0

    invoke-static {p1, v0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->decrement([I[F)V

    :cond_a0
    if-eqz v3, :cond_b5

    if-nez v6, :cond_b0

    .line 86
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getEvenCounts()[I

    move-result-object p1

    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddRoundingErrors()[F

    move-result-object v0

    invoke-static {p1, v0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->increment([I[F)V

    goto :goto_b5

    .line 87
    :cond_b0
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    :cond_b5
    :goto_b5
    if-eqz v6, :cond_c2

    .line 92
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getEvenCounts()[I

    move-result-object p1

    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getEvenRoundingErrors()[F

    move-result-object v0

    invoke-static {p1, v0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->decrement([I[F)V

    :cond_c2
    return-void

    .line 93
    :cond_c3
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    .line 98
    :cond_c8
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1
.end method

.method private checkChecksum()Z
    .registers 9

    .line 1
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    const/4 v1, 0x0

    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 2
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getLeftChar()Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    move-result-object v2

    .line 3
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getRightChar()Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    move-result-object v0

    if-nez v0, :cond_14

    return v1

    .line 9
    :cond_14
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/DataCharacter;->getChecksumPortion()I

    move-result v0

    const/4 v3, 0x2

    const/4 v4, 0x1

    move v5, v4

    .line 12
    :goto_1b
    iget-object v6, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v6}, Ljava/util/List;->size()I

    move-result v6

    if-ge v5, v6, :cond_46

    .line 13
    iget-object v6, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v6, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v6

    check-cast v6, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 14
    invoke-virtual {v6}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getLeftChar()Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    move-result-object v7

    invoke-virtual {v7}, Lcom/dcloud/zxing2/oned/rss/DataCharacter;->getChecksumPortion()I

    move-result v7

    add-int/2addr v0, v7

    add-int/lit8 v3, v3, 0x1

    .line 16
    invoke-virtual {v6}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getRightChar()Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    move-result-object v6

    if-eqz v6, :cond_43

    .line 18
    invoke-virtual {v6}, Lcom/dcloud/zxing2/oned/rss/DataCharacter;->getChecksumPortion()I

    move-result v6

    add-int/2addr v0, v6

    add-int/lit8 v3, v3, 0x1

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

    goto :goto_1b

    .line 23
    :cond_46
    rem-int/lit16 v0, v0, 0xd3

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

    mul-int/lit16 v3, v3, 0xd3

    add-int/2addr v3, v0

    .line 27
    invoke-virtual {v2}, Lcom/dcloud/zxing2/oned/rss/DataCharacter;->getValue()I

    move-result v0

    if-ne v3, v0, :cond_54

    move v1, v4

    :cond_54
    return v1
.end method

.method private checkRows(Ljava/util/List;I)Ljava/util/List;
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;",
            ">;I)",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;
        }
    .end annotation

    .line 20
    :goto_0
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    if-ge p2, v0, :cond_5e

    .line 21
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {v0, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;

    .line 22
    iget-object v1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v1}, Ljava/util/List;->clear()V

    .line 23
    invoke-interface {p1}, Ljava/util/List;->size()I

    move-result v1

    const/4 v2, 0x0

    :goto_1a
    if-ge v2, v1, :cond_2e

    .line 25
    iget-object v3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;

    invoke-virtual {v4}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->getPairs()Ljava/util/List;

    move-result-object v4

    invoke-interface {v3, v4}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z

    add-int/lit8 v2, v2, 0x1

    goto :goto_1a

    .line 27
    :cond_2e
    iget-object v1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->getPairs()Ljava/util/List;

    move-result-object v2

    invoke-interface {v1, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z

    .line 29
    iget-object v1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-static {v1}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->isValidSequence(Ljava/util/List;)Z

    move-result v1

    if-nez v1, :cond_40

    goto :goto_5b

    .line 33
    :cond_40
    invoke-direct {p0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->checkChecksum()Z

    move-result v1

    if-eqz v1, :cond_49

    .line 34
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    return-object p1

    .line 37
    :cond_49
    new-instance v1, Ljava/util/ArrayList;

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

    .line 38
    invoke-interface {v1, p1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z

    .line 39
    invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    add-int/lit8 v0, p2, 0x1

    .line 42
    :try_start_56
    invoke-direct {p0, v1, v0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->checkRows(Ljava/util/List;I)Ljava/util/List;

    move-result-object p1
    :try_end_5a
    .catch Lcom/dcloud/zxing2/NotFoundException; {:try_start_56 .. :try_end_5a} :catch_5b

    return-object p1

    :catch_5b
    :goto_5b
    add-int/lit8 p2, p2, 0x1

    goto :goto_0

    .line 48
    :cond_5e
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1
.end method

.method private checkRows(Z)Ljava/util/List;
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(Z)",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;"
        }
    .end annotation

    .line 1
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    const/4 v1, 0x0

    const/16 v2, 0x19

    if-le v0, v2, :cond_11

    .line 2
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {p1}, Ljava/util/List;->clear()V

    return-object v1

    .line 6
    :cond_11
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->clear()V

    if-eqz p1, :cond_1d

    .line 8
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-static {v0}, Ljava/util/Collections;->reverse(Ljava/util/List;)V

    .line 13
    :cond_1d
    :try_start_1d
    new-instance v0, Ljava/util/ArrayList;

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

    const/4 v2, 0x0

    invoke-direct {p0, v0, v2}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->checkRows(Ljava/util/List;I)Ljava/util/List;

    move-result-object v1
    :try_end_27
    .catch Lcom/dcloud/zxing2/NotFoundException; {:try_start_1d .. :try_end_27} :catch_27

    :catch_27
    if-eqz p1, :cond_2e

    .line 19
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-static {p1}, Ljava/util/Collections;->reverse(Ljava/util/List;)V

    :cond_2e
    return-object v1
.end method

.method static constructResult(Ljava/util/List;)Lcom/dcloud/zxing2/Result;
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;)",
            "Lcom/dcloud/zxing2/Result;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;,
            Lcom/dcloud/zxing2/FormatException;
        }
    .end annotation

    .line 1
    invoke-static {p0}, Lcom/dcloud/zxing2/oned/rss/expanded/BitArrayBuilder;->buildBitArray(Ljava/util/List;)Lcom/dcloud/zxing2/common/BitArray;

    move-result-object v0

    .line 3
    invoke-static {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/decoders/AbstractExpandedDecoder;->createDecoder(Lcom/dcloud/zxing2/common/BitArray;)Lcom/dcloud/zxing2/oned/rss/expanded/decoders/AbstractExpandedDecoder;

    move-result-object v0

    .line 4
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/decoders/AbstractExpandedDecoder;->parseInformation()Ljava/lang/String;

    move-result-object v0

    const/4 v1, 0x0

    .line 6
    invoke-interface {p0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    invoke-virtual {v2}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getFinderPattern()Lcom/dcloud/zxing2/oned/rss/FinderPattern;

    move-result-object v2

    invoke-virtual {v2}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getResultPoints()[Lcom/dcloud/zxing2/ResultPoint;

    move-result-object v2

    .line 7
    invoke-interface {p0}, Ljava/util/List;->size()I

    move-result v3

    const/4 v4, 0x1

    sub-int/2addr v3, v4

    invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object p0

    check-cast p0, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getFinderPattern()Lcom/dcloud/zxing2/oned/rss/FinderPattern;

    move-result-object p0

    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getResultPoints()[Lcom/dcloud/zxing2/ResultPoint;

    move-result-object p0

    .line 9
    new-instance v3, Lcom/dcloud/zxing2/Result;

    const/4 v5, 0x4

    new-array v5, v5, [Lcom/dcloud/zxing2/ResultPoint;

    aget-object v6, v2, v1

    aput-object v6, v5, v1

    aget-object v2, v2, v4

    aput-object v2, v5, v4

    aget-object v1, p0, v1

    const/4 v2, 0x2

    aput-object v1, v5, v2

    aget-object p0, p0, v4

    const/4 v1, 0x3

    aput-object p0, v5, v1

    sget-object p0, Lcom/dcloud/zxing2/BarcodeFormat;->RSS_EXPANDED:Lcom/dcloud/zxing2/BarcodeFormat;

    const/4 v1, 0x0

    invoke-direct {v3, v0, v1, v5, p0}, Lcom/dcloud/zxing2/Result;-><init>(Ljava/lang/String;[B[Lcom/dcloud/zxing2/ResultPoint;Lcom/dcloud/zxing2/BarcodeFormat;)V

    return-object v3
.end method

.method private findNextPair(Lcom/dcloud/zxing2/common/BitArray;Ljava/util/List;I)V
    .registers 15
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/dcloud/zxing2/common/BitArray;",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;I)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;
        }
    .end annotation

    .line 1
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getDecodeFinderCounters()[I

    move-result-object v0

    const/4 v1, 0x0

    .line 2
    aput v1, v0, v1

    const/4 v2, 0x1

    .line 3
    aput v1, v0, v2

    const/4 v3, 0x2

    .line 4
    aput v1, v0, v3

    const/4 v4, 0x3

    .line 5
    aput v1, v0, v4

    .line 7
    invoke-virtual {p1}, Lcom/dcloud/zxing2/common/BitArray;->getSize()I

    move-result v5

    if-ltz p3, :cond_17

    goto :goto_34

    .line 12
    :cond_17
    invoke-interface {p2}, Ljava/util/List;->isEmpty()Z

    move-result p3

    if-eqz p3, :cond_1f

    move p3, v1

    goto :goto_34

    .line 15
    :cond_1f
    invoke-interface {p2}, Ljava/util/List;->size()I

    move-result p3

    sub-int/2addr p3, v2

    invoke-interface {p2, p3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object p3

    check-cast p3, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 16
    invoke-virtual {p3}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getFinderPattern()Lcom/dcloud/zxing2/oned/rss/FinderPattern;

    move-result-object p3

    invoke-virtual {p3}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getStartEnd()[I

    move-result-object p3

    aget p3, p3, v2

    .line 18
    :goto_34
    invoke-interface {p2}, Ljava/util/List;->size()I

    move-result p2

    rem-int/2addr p2, v3

    if-eqz p2, :cond_3d

    move p2, v2

    goto :goto_3e

    :cond_3d
    move p2, v1

    .line 19
    :goto_3e
    iget-boolean v6, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startFromEven:Z

    if-eqz v6, :cond_44

    xor-int/lit8 p2, p2, 0x1

    :cond_44
    move v6, v1

    :goto_45
    if-ge p3, v5, :cond_52

    .line 25
    invoke-virtual {p1, p3}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v6

    xor-int/2addr v6, v2

    if-nez v6, :cond_4f

    goto :goto_52

    :cond_4f
    add-int/lit8 p3, p3, 0x1

    goto :goto_45

    :cond_52
    :goto_52
    move v8, v1

    move v7, v6

    move v6, p3

    :goto_55
    if-ge p3, v5, :cond_9b

    .line 35
    invoke-virtual {p1, p3}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v9

    xor-int/2addr v9, v7

    if-eqz v9, :cond_64

    .line 36
    aget v9, v0, v8

    add-int/2addr v9, v2

    aput v9, v0, v8

    goto :goto_98

    :cond_64
    if-ne v8, v4, :cond_92

    if-eqz p2, :cond_6b

    .line 40
    invoke-static {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->reverseCounters([I)V

    .line 43
    :cond_6b
    invoke-static {v0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->isFinderPattern([I)Z

    move-result v9

    if-eqz v9, :cond_78

    .line 44
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    aput v6, p1, v1

    .line 45
    aput p3, p1, v2

    return-void

    :cond_78
    if-eqz p2, :cond_7d

    .line 50
    invoke-static {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->reverseCounters([I)V

    .line 53
    :cond_7d
    aget v9, v0, v1

    aget v10, v0, v2

    add-int/2addr v9, v10

    add-int/2addr v6, v9

    .line 54
    aget v9, v0, v3

    aput v9, v0, v1

    .line 55
    aget v9, v0, v4

    aput v9, v0, v2

    .line 56
    aput v1, v0, v3

    .line 57
    aput v1, v0, v4

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

    goto :goto_94

    :cond_92
    add-int/lit8 v8, v8, 0x1

    .line 62
    :goto_94
    aput v2, v0, v8

    xor-int/lit8 v7, v7, 0x1

    :goto_98
    add-int/lit8 p3, p3, 0x1

    goto :goto_55

    .line 66
    :cond_9b
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1
.end method

.method private static getNextSecondBar(Lcom/dcloud/zxing2/common/BitArray;I)I
    .registers 3

    .line 1
    invoke-virtual {p0, p1}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v0

    if-eqz v0, :cond_f

    .line 2
    invoke-virtual {p0, p1}, Lcom/dcloud/zxing2/common/BitArray;->getNextUnset(I)I

    move-result p1

    .line 3
    invoke-virtual {p0, p1}, Lcom/dcloud/zxing2/common/BitArray;->getNextSet(I)I

    move-result p0

    goto :goto_17

    .line 5
    :cond_f
    invoke-virtual {p0, p1}, Lcom/dcloud/zxing2/common/BitArray;->getNextSet(I)I

    move-result p1

    .line 6
    invoke-virtual {p0, p1}, Lcom/dcloud/zxing2/common/BitArray;->getNextUnset(I)I

    move-result p0

    :goto_17
    return p0
.end method

.method private static isNotA1left(Lcom/dcloud/zxing2/oned/rss/FinderPattern;ZZ)Z
    .registers 3

    .line 1
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getValue()I

    move-result p0

    if-nez p0, :cond_d

    if-eqz p1, :cond_d

    if-nez p2, :cond_b

    goto :goto_d

    :cond_b
    const/4 p0, 0x0

    goto :goto_e

    :cond_d
    :goto_d
    const/4 p0, 0x1

    :goto_e
    return p0
.end method

.method private static isPartialRow(Ljava/lang/Iterable;Ljava/lang/Iterable;)Z
    .registers 9
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Iterable<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;",
            "Ljava/lang/Iterable<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;",
            ">;)Z"
        }
    .end annotation

    .line 1
    invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;

    move-result-object p1

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

    move-result v0

    const/4 v1, 0x0

    if-eqz v0, :cond_46

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

    move-result-object v0

    check-cast v0, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;

    .line 3
    invoke-interface {p0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;

    move-result-object v2

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

    move-result v3

    const/4 v4, 0x1

    if-eqz v3, :cond_42

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

    move-result-object v3

    check-cast v3, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 5
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->getPairs()Ljava/util/List;

    move-result-object v5

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

    move-result-object v5

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

    move-result v6

    if-eqz v6, :cond_3e

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

    move-result-object v6

    check-cast v6, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 6
    invoke-virtual {v3, v6}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-eqz v6, :cond_2a

    move v3, v4

    goto :goto_3f

    :cond_3e
    move v3, v1

    :goto_3f
    if-nez v3, :cond_15

    goto :goto_43

    :cond_42
    move v1, v4

    :goto_43
    if-eqz v1, :cond_4

    return v4

    :cond_46
    return v1
.end method

.method private static isValidSequence(Ljava/util/List;)Z
    .registers 10
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;)Z"
        }
    .end annotation

    .line 1
    sget-object v0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->FINDER_PATTERN_SEQUENCES:[[I

    array-length v1, v0

    const/4 v2, 0x0

    move v3, v2

    :goto_5
    if-ge v3, v1, :cond_37

    aget-object v4, v0, v3

    .line 2
    invoke-interface {p0}, Ljava/util/List;->size()I

    move-result v5

    array-length v6, v4

    if-le v5, v6, :cond_11

    goto :goto_34

    :cond_11
    move v5, v2

    .line 7
    :goto_12
    invoke-interface {p0}, Ljava/util/List;->size()I

    move-result v6

    const/4 v7, 0x1

    if-ge v5, v6, :cond_30

    .line 8
    invoke-interface {p0, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v6

    check-cast v6, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    invoke-virtual {v6}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->getFinderPattern()Lcom/dcloud/zxing2/oned/rss/FinderPattern;

    move-result-object v6

    invoke-virtual {v6}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getValue()I

    move-result v6

    aget v8, v4, v5

    if-eq v6, v8, :cond_2d

    move v4, v2

    goto :goto_31

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

    goto :goto_12

    :cond_30
    move v4, v7

    :goto_31
    if-eqz v4, :cond_34

    return v7

    :cond_34
    :goto_34
    add-int/lit8 v3, v3, 0x1

    goto :goto_5

    :cond_37
    return v2
.end method

.method private parseFoundFinderPattern(Lcom/dcloud/zxing2/common/BitArray;IZ)Lcom/dcloud/zxing2/oned/rss/FinderPattern;
    .registers 13

    const/4 v0, 0x0

    const/4 v1, 0x1

    if-eqz p3, :cond_1f

    .line 1
    iget-object p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    aget p3, p3, v0

    sub-int/2addr p3, v1

    :goto_9
    if-ltz p3, :cond_14

    .line 3
    invoke-virtual {p1, p3}, Lcom/dcloud/zxing2/common/BitArray;->get(I)Z

    move-result v2

    if-nez v2, :cond_14

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

    goto :goto_9

    :cond_14
    add-int/2addr p3, v1

    .line 8
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    aget v2, p1, v0

    sub-int/2addr v2, p3

    .line 10
    aget p1, p1, v1

    move v7, p1

    move v6, p3

    goto :goto_33

    .line 15
    :cond_1f
    iget-object p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    aget v2, p3, v0

    .line 17
    aget p3, p3, v1

    add-int/2addr p3, v1

    invoke-virtual {p1, p3}, Lcom/dcloud/zxing2/common/BitArray;->getNextUnset(I)I

    move-result p1

    .line 18
    iget-object p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    aget p3, p3, v1

    sub-int p3, p1, p3

    move v7, p1

    move v6, v2

    move v2, p3

    .line 22
    :goto_33
    invoke-virtual {p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getDecodeFinderCounters()[I

    move-result-object p1

    .line 23
    array-length p3, p1

    sub-int/2addr p3, v1

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

    .line 25
    aput v2, p1, v0

    .line 28
    :try_start_3e
    sget-object p3, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->FINDER_PATTERNS:[[I

    invoke-static {p1, p3}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->parseFinderValue([I[[I)I

    move-result v4
    :try_end_44
    .catch Lcom/dcloud/zxing2/NotFoundException; {:try_start_3e .. :try_end_44} :catch_53

    .line 32
    new-instance p1, Lcom/dcloud/zxing2/oned/rss/FinderPattern;

    const/4 p3, 0x2

    new-array v5, p3, [I

    aput v6, v5, v0

    aput v7, v5, v1

    move-object v3, p1

    move v8, p2

    invoke-direct/range {v3 .. v8}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;-><init>(I[IIII)V

    return-object p1

    :catch_53
    const/4 p1, 0x0

    return-object p1
.end method

.method private static removePartialRows(Ljava/util/List;Ljava/util/List;)V
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;",
            ">;)V"
        }
    .end annotation

    .line 1
    invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object p1

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

    move-result v0

    if-eqz v0, :cond_57

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

    move-result-object v0

    check-cast v0, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;

    .line 3
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->getPairs()Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    invoke-interface {p0}, Ljava/util/List;->size()I

    move-result v2

    if-ne v1, v2, :cond_1f

    goto :goto_4

    .line 7
    :cond_1f
    invoke-virtual {v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->getPairs()Ljava/util/List;

    move-result-object v0

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

    move-result-object v0

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

    move-result v1

    const/4 v2, 0x0

    const/4 v3, 0x1

    if-eqz v1, :cond_50

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

    move-result-object v1

    check-cast v1, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 9
    invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v4

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

    move-result v5

    if-eqz v5, :cond_4c

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

    move-result-object v5

    check-cast v5, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    .line 10
    invoke-virtual {v1, v5}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_39

    goto :goto_4d

    :cond_4c
    move v3, v2

    :goto_4d
    if-nez v3, :cond_27

    goto :goto_51

    :cond_50
    move v2, v3

    :goto_51
    if-eqz v2, :cond_4

    .line 22
    invoke-interface {p1}, Ljava/util/Iterator;->remove()V

    goto :goto_4

    :cond_57
    return-void
.end method

.method private static reverseCounters([I)V
    .registers 6

    .line 1
    array-length v0, p0

    const/4 v1, 0x0

    .line 2
    :goto_2
    div-int/lit8 v2, v0, 0x2

    if-ge v1, v2, :cond_15

    .line 3
    aget v2, p0, v1

    sub-int v3, v0, v1

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

    .line 4
    aget v4, p0, v3

    aput v4, p0, v1

    .line 5
    aput v2, p0, v3

    add-int/lit8 v1, v1, 0x1

    goto :goto_2

    :cond_15
    return-void
.end method

.method private storeRow(IZ)V
    .registers 8

    const/4 v0, 0x0

    move v1, v0

    move v2, v1

    .line 1
    :goto_3
    iget-object v3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {v3}, Ljava/util/List;->size()I

    move-result v3

    if-ge v1, v3, :cond_29

    .line 2
    iget-object v3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {v3, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;

    .line 3
    invoke-virtual {v3}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->getRowNumber()I

    move-result v4

    if-le v4, p1, :cond_20

    .line 4
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-virtual {v3, v0}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->isEquivalent(Ljava/util/List;)Z

    move-result v0

    goto :goto_29

    .line 7
    :cond_20
    iget-object v2, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-virtual {v3, v2}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;->isEquivalent(Ljava/util/List;)Z

    move-result v2

    add-int/lit8 v1, v1, 0x1

    goto :goto_3

    :cond_29
    :goto_29
    if-nez v0, :cond_4c

    if-eqz v2, :cond_2e

    goto :goto_4c

    .line 19
    :cond_2e
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    iget-object v2, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-static {v0, v2}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->isPartialRow(Ljava/lang/Iterable;Ljava/lang/Iterable;)Z

    move-result v0

    if-eqz v0, :cond_39

    return-void

    .line 23
    :cond_39
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    new-instance v2, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;

    iget-object v3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-direct {v2, v3, p1, p2}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;-><init>(Ljava/util/List;IZ)V

    invoke-interface {v0, v1, v2}, Ljava/util/List;->add(ILjava/lang/Object;)V

    .line 25
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    iget-object p2, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-static {p1, p2}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->removePartialRows(Ljava/util/List;Ljava/util/List;)V

    :cond_4c
    :goto_4c
    return-void
.end method


# virtual methods
.method decodeDataCharacter(Lcom/dcloud/zxing2/common/BitArray;Lcom/dcloud/zxing2/oned/rss/FinderPattern;ZZ)Lcom/dcloud/zxing2/oned/rss/DataCharacter;
    .registers 22
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;
        }
    .end annotation

    move-object/from16 v0, p1

    .line 1
    invoke-virtual/range {p0 .. p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getDataCharacterCounters()[I

    move-result-object v1

    const/4 v2, 0x0

    .line 2
    aput v2, v1, v2

    const/4 v3, 0x1

    .line 3
    aput v2, v1, v3

    const/4 v4, 0x2

    .line 4
    aput v2, v1, v4

    const/4 v5, 0x3

    .line 5
    aput v2, v1, v5

    const/4 v5, 0x4

    .line 6
    aput v2, v1, v5

    const/4 v6, 0x5

    .line 7
    aput v2, v1, v6

    const/4 v6, 0x6

    .line 8
    aput v2, v1, v6

    const/4 v6, 0x7

    .line 9
    aput v2, v1, v6

    if-eqz p4, :cond_2a

    .line 12
    invoke-virtual/range {p2 .. p2}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getStartEnd()[I

    move-result-object v6

    aget v6, v6, v2

    invoke-static {v0, v6, v1}, Lcom/dcloud/zxing2/oned/OneDReader;->recordPatternInReverse(Lcom/dcloud/zxing2/common/BitArray;I[I)V

    goto :goto_45

    .line 14
    :cond_2a
    invoke-virtual/range {p2 .. p2}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getStartEnd()[I

    move-result-object v6

    aget v6, v6, v3

    invoke-static {v0, v6, v1}, Lcom/dcloud/zxing2/oned/OneDReader;->recordPattern(Lcom/dcloud/zxing2/common/BitArray;I[I)V

    .line 16
    array-length v0, v1

    sub-int/2addr v0, v3

    move v6, v2

    :goto_36
    if-ge v6, v0, :cond_45

    .line 17
    aget v7, v1, v6

    .line 18
    aget v8, v1, v0

    aput v8, v1, v6

    .line 19
    aput v7, v1, v0

    add-int/lit8 v6, v6, 0x1

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

    goto :goto_36

    :cond_45
    :goto_45
    const/16 v0, 0x11

    .line 24
    invoke-static {v1}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->count([I)I

    move-result v6

    int-to-float v6, v6

    int-to-float v7, v0

    div-float/2addr v6, v7

    .line 27
    invoke-virtual/range {p2 .. p2}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getStartEnd()[I

    move-result-object v7

    aget v7, v7, v3

    invoke-virtual/range {p2 .. p2}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getStartEnd()[I

    move-result-object v8

    aget v8, v8, v2

    sub-int/2addr v7, v8

    int-to-float v7, v7

    const/high16 v8, 0x41700000    # 15.0f

    div-float/2addr v7, v8

    sub-float v8, v6, v7

    .line 28
    invoke-static {v8}, Ljava/lang/Math;->abs(F)F

    move-result v8

    div-float/2addr v8, v7

    const v7, 0x3e99999a    # 0.3f

    cmpl-float v8, v8, v7

    if-gtz v8, :cond_13f

    .line 32
    invoke-virtual/range {p0 .. p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddCounts()[I

    move-result-object v8

    .line 33
    invoke-virtual/range {p0 .. p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getEvenCounts()[I

    move-result-object v9

    .line 34
    invoke-virtual/range {p0 .. p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getOddRoundingErrors()[F

    move-result-object v10

    .line 35
    invoke-virtual/range {p0 .. p0}, Lcom/dcloud/zxing2/oned/rss/AbstractRSSReader;->getEvenRoundingErrors()[F

    move-result-object v11

    move v12, v2

    .line 37
    :goto_7e
    array-length v13, v1

    if-ge v12, v13, :cond_c1

    .line 38
    aget v13, v1, v12

    int-to-float v13, v13

    const/high16 v14, 0x3f800000    # 1.0f

    mul-float/2addr v13, v14

    div-float/2addr v13, v6

    const/high16 v14, 0x3f000000    # 0.5f

    add-float/2addr v14, v13

    float-to-int v14, v14

    const/16 v15, 0x8

    if-ge v14, v3, :cond_9b

    cmpg-float v14, v13, v7

    if-ltz v14, :cond_96

    move v14, v3

    goto :goto_ab

    .line 42
    :cond_96
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object v0

    throw v0

    :cond_9b
    if-le v14, v15, :cond_ab

    const v14, 0x410b3333    # 8.7f

    cmpl-float v14, v13, v14

    if-gtz v14, :cond_a6

    move v14, v15

    goto :goto_ab

    .line 47
    :cond_a6
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object v0

    throw v0

    .line 51
    :cond_ab
    :goto_ab
    div-int/lit8 v15, v12, 0x2

    and-int/lit8 v16, v12, 0x1

    if-nez v16, :cond_b8

    .line 53
    aput v14, v8, v15

    int-to-float v14, v14

    sub-float/2addr v13, v14

    .line 54
    aput v13, v10, v15

    goto :goto_be

    .line 56
    :cond_b8
    aput v14, v9, v15

    int-to-float v14, v14

    sub-float/2addr v13, v14

    .line 57
    aput v13, v11, v15

    :goto_be
    add-int/lit8 v12, v12, 0x1

    goto :goto_7e

    :cond_c1
    move-object/from16 v12, p0

    .line 61
    invoke-direct {v12, v0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->adjustOddEvenCounts(I)V

    .line 63
    invoke-virtual/range {p2 .. p2}, Lcom/dcloud/zxing2/oned/rss/FinderPattern;->getValue()I

    move-result v0

    mul-int/2addr v0, v5

    if-eqz p3, :cond_cf

    move v1, v2

    goto :goto_d0

    :cond_cf
    move v1, v4

    :goto_d0
    add-int/2addr v0, v1

    xor-int/lit8 v1, p4, 0x1

    add-int/2addr v0, v1

    sub-int/2addr v0, v3

    .line 67
    array-length v1, v8

    sub-int/2addr v1, v3

    move v6, v2

    move v7, v6

    :goto_d9
    if-ltz v1, :cond_f3

    .line 68
    invoke-static/range {p2 .. p4}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->isNotA1left(Lcom/dcloud/zxing2/oned/rss/FinderPattern;ZZ)Z

    move-result v10

    if-eqz v10, :cond_ed

    .line 69
    sget-object v10, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->WEIGHTS:[[I

    aget-object v10, v10, v0

    mul-int/lit8 v11, v1, 0x2

    aget v10, v10, v11

    .line 70
    aget v11, v8, v1

    mul-int/2addr v11, v10

    add-int/2addr v6, v11

    .line 72
    :cond_ed
    aget v10, v8, v1

    add-int/2addr v7, v10

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

    goto :goto_d9

    .line 76
    :cond_f3
    array-length v1, v9

    sub-int/2addr v1, v3

    move v10, v2

    :goto_f6
    if-ltz v1, :cond_10e

    .line 77
    invoke-static/range {p2 .. p4}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->isNotA1left(Lcom/dcloud/zxing2/oned/rss/FinderPattern;ZZ)Z

    move-result v11

    if-eqz v11, :cond_10b

    .line 78
    sget-object v11, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->WEIGHTS:[[I

    aget-object v11, v11, v0

    mul-int/lit8 v13, v1, 0x2

    add-int/2addr v13, v3

    aget v11, v11, v13

    .line 79
    aget v13, v9, v1

    mul-int/2addr v13, v11

    add-int/2addr v10, v13

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

    goto :goto_f6

    :cond_10e
    add-int/2addr v6, v10

    and-int/lit8 v0, v7, 0x1

    if-nez v0, :cond_13a

    const/16 v0, 0xd

    if-gt v7, v0, :cond_13a

    if-lt v7, v5, :cond_13a

    sub-int/2addr v0, v7

    .line 89
    div-int/2addr v0, v4

    .line 90
    sget-object v1, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->SYMBOL_WIDEST:[I

    aget v1, v1, v0

    rsub-int/lit8 v4, v1, 0x9

    .line 92
    invoke-static {v8, v1, v3}, Lcom/dcloud/zxing2/oned/rss/RSSUtils;->getRSSvalue([IIZ)I

    move-result v1

    .line 93
    invoke-static {v9, v4, v2}, Lcom/dcloud/zxing2/oned/rss/RSSUtils;->getRSSvalue([IIZ)I

    move-result v2

    .line 94
    sget-object v3, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->EVEN_TOTAL_SUBSET:[I

    aget v3, v3, v0

    .line 95
    sget-object v4, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->GSUM:[I

    aget v0, v4, v0

    mul-int/2addr v1, v3

    add-int/2addr v1, v2

    add-int/2addr v1, v0

    .line 98
    new-instance v0, Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    invoke-direct {v0, v1, v6}, Lcom/dcloud/zxing2/oned/rss/DataCharacter;-><init>(II)V

    return-object v0

    .line 99
    :cond_13a
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object v0

    throw v0

    :cond_13f
    move-object/from16 v12, p0

    .line 100
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object v0

    throw v0
.end method

.method public decodeRow(ILcom/dcloud/zxing2/common/BitArray;Ljava/util/Map;)Lcom/dcloud/zxing2/Result;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(I",
            "Lcom/dcloud/zxing2/common/BitArray;",
            "Ljava/util/Map<",
            "Lcom/dcloud/zxing2/DecodeHintType;",
            "*>;)",
            "Lcom/dcloud/zxing2/Result;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;,
            Lcom/dcloud/zxing2/FormatException;
        }
    .end annotation

    .line 1
    iget-object p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {p3}, Ljava/util/List;->clear()V

    const/4 p3, 0x0

    .line 2
    iput-boolean p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startFromEven:Z

    .line 4
    :try_start_8
    invoke-virtual {p0, p1, p2}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->decodeRow2pairs(ILcom/dcloud/zxing2/common/BitArray;)Ljava/util/List;

    move-result-object p3

    .line 5
    invoke-static {p3}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->constructResult(Ljava/util/List;)Lcom/dcloud/zxing2/Result;

    move-result-object p1
    :try_end_10
    .catch Lcom/dcloud/zxing2/NotFoundException; {:try_start_8 .. :try_end_10} :catch_11

    return-object p1

    .line 10
    :catch_11
    iget-object p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {p3}, Ljava/util/List;->clear()V

    const/4 p3, 0x1

    .line 11
    iput-boolean p3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startFromEven:Z

    .line 12
    invoke-virtual {p0, p1, p2}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->decodeRow2pairs(ILcom/dcloud/zxing2/common/BitArray;)Ljava/util/List;

    move-result-object p1

    .line 13
    invoke-static {p1}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->constructResult(Ljava/util/List;)Lcom/dcloud/zxing2/Result;

    move-result-object p1

    return-object p1
.end method

.method decodeRow2pairs(ILcom/dcloud/zxing2/common/BitArray;)Ljava/util/List;
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(I",
            "Lcom/dcloud/zxing2/common/BitArray;",
            ")",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;
        }
    .end annotation

    .line 1
    :goto_0
    :try_start_0
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-virtual {p0, p2, v0, p1}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->retrieveNextPair(Lcom/dcloud/zxing2/common/BitArray;Ljava/util/List;I)Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    move-result-object v0

    .line 2
    iget-object v1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_b
    .catch Lcom/dcloud/zxing2/NotFoundException; {:try_start_0 .. :try_end_b} :catch_c

    goto :goto_0

    :catch_c
    move-exception p2

    .line 6
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->isEmpty()Z

    move-result v0

    if-nez v0, :cond_3f

    .line 12
    invoke-direct {p0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->checkChecksum()Z

    move-result p2

    if-eqz p2, :cond_1e

    .line 13
    iget-object p1, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    return-object p1

    .line 16
    :cond_1e
    iget-object p2, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {p2}, Ljava/util/List;->isEmpty()Z

    move-result p2

    const/4 v0, 0x1

    xor-int/2addr p2, v0

    const/4 v1, 0x0

    .line 18
    invoke-direct {p0, p1, v1}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->storeRow(IZ)V

    if-eqz p2, :cond_3a

    .line 22
    invoke-direct {p0, v1}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->checkRows(Z)Ljava/util/List;

    move-result-object p1

    if-eqz p1, :cond_33

    return-object p1

    .line 26
    :cond_33
    invoke-direct {p0, v0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->checkRows(Z)Ljava/util/List;

    move-result-object p1

    if-eqz p1, :cond_3a

    return-object p1

    .line 32
    :cond_3a
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    .line 33
    :cond_3f
    throw p2
.end method

.method getRows()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedRow;",
            ">;"
        }
    .end annotation

    .line 1
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    return-object v0
.end method

.method public reset()V
    .registers 2

    .line 1
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->pairs:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->clear()V

    .line 2
    iget-object v0, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->rows:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->clear()V

    return-void
.end method

.method retrieveNextPair(Lcom/dcloud/zxing2/common/BitArray;Ljava/util/List;I)Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;
    .registers 10
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/dcloud/zxing2/common/BitArray;",
            "Ljava/util/List<",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;",
            ">;I)",
            "Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/dcloud/zxing2/NotFoundException;
        }
    .end annotation

    .line 1
    invoke-interface {p2}, Ljava/util/List;->size()I

    move-result v0

    rem-int/lit8 v0, v0, 0x2

    const/4 v1, 0x0

    const/4 v2, 0x1

    if-nez v0, :cond_c

    move v0, v2

    goto :goto_d

    :cond_c
    move v0, v1

    .line 2
    :goto_d
    iget-boolean v3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startFromEven:Z

    if-eqz v3, :cond_13

    xor-int/lit8 v0, v0, 0x1

    :cond_13
    const/4 v3, -0x1

    move v4, v2

    .line 11
    :cond_15
    invoke-direct {p0, p1, p2, v3}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->findNextPair(Lcom/dcloud/zxing2/common/BitArray;Ljava/util/List;I)V

    .line 12
    invoke-direct {p0, p1, p3, v0}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->parseFoundFinderPattern(Lcom/dcloud/zxing2/common/BitArray;IZ)Lcom/dcloud/zxing2/oned/rss/FinderPattern;

    move-result-object v5

    if-nez v5, :cond_27

    .line 14
    iget-object v3, p0, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->startEnd:[I

    aget v3, v3, v1

    invoke-static {p1, v3}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->getNextSecondBar(Lcom/dcloud/zxing2/common/BitArray;I)I

    move-result v3

    goto :goto_28

    :cond_27
    move v4, v1

    :goto_28
    if-nez v4, :cond_15

    .line 23
    invoke-virtual {p0, p1, v5, v0, v2}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->decodeDataCharacter(Lcom/dcloud/zxing2/common/BitArray;Lcom/dcloud/zxing2/oned/rss/FinderPattern;ZZ)Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    move-result-object p3

    .line 25
    invoke-interface {p2}, Ljava/util/List;->isEmpty()Z

    move-result v3

    if-nez v3, :cond_4b

    invoke-interface {p2}, Ljava/util/List;->size()I

    move-result v3

    sub-int/2addr v3, v2

    invoke-interface {p2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object p2

    check-cast p2, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    invoke-virtual {p2}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;->mustBeLast()Z

    move-result p2

    if-nez p2, :cond_46

    goto :goto_4b

    .line 26
    :cond_46
    invoke-static {}, Lcom/dcloud/zxing2/NotFoundException;->getNotFoundInstance()Lcom/dcloud/zxing2/NotFoundException;

    move-result-object p1

    throw p1

    .line 31
    :cond_4b
    :goto_4b
    :try_start_4b
    invoke-virtual {p0, p1, v5, v0, v1}, Lcom/dcloud/zxing2/oned/rss/expanded/RSSExpandedReader;->decodeDataCharacter(Lcom/dcloud/zxing2/common/BitArray;Lcom/dcloud/zxing2/oned/rss/FinderPattern;ZZ)Lcom/dcloud/zxing2/oned/rss/DataCharacter;

    move-result-object p1
    :try_end_4f
    .catch Lcom/dcloud/zxing2/NotFoundException; {:try_start_4b .. :try_end_4f} :catch_50

    goto :goto_51

    :catch_50
    const/4 p1, 0x0

    .line 36
    :goto_51
    new-instance p2, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;

    invoke-direct {p2, p3, p1, v5, v2}, Lcom/dcloud/zxing2/oned/rss/expanded/ExpandedPair;-><init>(Lcom/dcloud/zxing2/oned/rss/DataCharacter;Lcom/dcloud/zxing2/oned/rss/DataCharacter;Lcom/dcloud/zxing2/oned/rss/FinderPattern;Z)V

    return-object p2
.end method