BarcodePDF417.java

1
/*
2
 *
3
 * Copyright 2003 Paulo Soares
4
 *
5
 * The contents of this file are subject to the Mozilla Public License Version 1.1
6
 * (the "License"); you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at http://www.mozilla.org/MPL/
8
 *
9
 * Software distributed under the License is distributed on an "AS IS" basis,
10
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
 * for the specific language governing rights and limitations under the License.
12
 *
13
 * The Original Code is 'iText, a free JAVA-PDF library'.
14
 *
15
 * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
16
 * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
17
 * All Rights Reserved.
18
 * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
19
 * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
20
 *
21
 * Contributor(s): all the names of the contributors are added in the source code
22
 * where applicable.
23
 *
24
 * Alternatively, the contents of this file may be used under the terms of the
25
 * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
26
 * provisions of LGPL are applicable instead of those above.  If you wish to
27
 * allow use of your version of this file only under the terms of the LGPL
28
 * License and not to allow others to use your version of this file under
29
 * the MPL, indicate your decision by deleting the provisions above and
30
 * replace them with the notice and other provisions required by the LGPL.
31
 * If you do not delete the provisions above, a recipient may use your version
32
 * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
33
 *
34
 * This library is free software; you can redistribute it and/or modify it
35
 * under the terms of the MPL as stated above or under the terms of the GNU
36
 * Library General Public License as published by the Free Software Foundation;
37
 * either version 2 of the License, or any later version.
38
 *
39
 * This library is distributed in the hope that it will be useful, but WITHOUT
40
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
41
 * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
42
 * details.
43
 *
44
 * If you didn't download this code from the following link, you should check if
45
 * you aren't using an obsolete version:
46
 * http://www.lowagie.com/iText/
47
 */
48
49
package com.lowagie.text.pdf;
50
51
import java.awt.Canvas;
52
import java.awt.Color;
53
import java.awt.image.MemoryImageSource;
54
import java.util.ArrayList;
55
import com.lowagie.text.error_messages.MessageLocalization;
56
57
import com.lowagie.text.BadElementException;
58
import com.lowagie.text.Image;
59
import com.lowagie.text.pdf.codec.CCITTG4Encoder;
60
61
/** Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed
62
 * and variable sizes, automatic and manual error levels, raw codeword input,
63
 * codeword size optimization and bitmap inversion. The output can
64
 * be a CCITT G4 <CODE>Image</CODE> or a raw bitmap.
65
 * @author Paulo Soares (psoares@consiste.pt)
66
 */
67
public class BarcodePDF417 {
68
69
    /** Auto-size is made based on <CODE>aspectRatio</CODE> and <CODE>yHeight</CODE>. */    
70
    public static final int PDF417_USE_ASPECT_RATIO = 0;
71
    /** The size of the barcode will be at least <CODE>codeColumns*codeRows</CODE>. */    
72
    public static final int PDF417_FIXED_RECTANGLE = 1;
73
    /** The size will be at least <CODE>codeColumns</CODE>
74
     * with a variable number of <CODE>codeRows</CODE>.
75
     */    
76
    public static final int PDF417_FIXED_COLUMNS = 2;
77
    /** The size will be at least <CODE>codeRows</CODE>
78
     * with a variable number of <CODE>codeColumns</CODE>.
79
     */    
80
    public static final int PDF417_FIXED_ROWS = 4;
81
    /** The error level correction is set automatically according
82
     * to ISO 15438 recommendations.
83
     */    
84
    public static final int PDF417_AUTO_ERROR_LEVEL = 0;
85
    /** The error level correction is set by the user. It can be 0 to 8. */    
86
    public static final int PDF417_USE_ERROR_LEVEL = 16;
87
    /**
88
     * One single binary segment is used
89
     */
90
    public static final int PDF417_FORCE_BINARY = 32;
91
    /** No <CODE>text</CODE> interpretation is done and the content of <CODE>codewords</CODE>
92
     * is used directly.
93
     */    
94
    public static final int PDF417_USE_RAW_CODEWORDS = 64;
95
    /** Inverts the output bits of the raw bitmap that is normally
96
     * bit one for black. It has only effect for the raw bitmap.
97
     */    
98
    public static final int PDF417_INVERT_BITMAP = 128;
99
    /** Use Macro PDF417 Encoding
100
     * @see #setMacroFileId(String)
101
     * @see #setMacroSegmentId(int)
102
     * @see #setMacroSegmentCount(int)
103
     */    
104
    public static final int PDF417_USE_MACRO = 256;
105
    
106
107
    private int macroSegmentCount=0;
108
    private int macroSegmentId=-1;
109
    private String macroFileId;
110
    private int macroIndex;
111
    protected int bitPtr;
112
    protected int cwPtr;
113
    protected SegmentList segmentList;
114
    
115
    
116
    /** Creates a new <CODE>BarcodePDF417</CODE> with the default settings. */    
117
    public BarcodePDF417() {
118 1 1. : removed call to com/lowagie/text/pdf/BarcodePDF417::setDefaultParameters → NO_COVERAGE
        setDefaultParameters();
119
    }
120
    
121
    /**
122
     * Sets the segment id for macro PDF417 encoding
123
     * @param id the id (starting at 0)
124
     * @see #setMacroSegmentCount(int)
125
     */
126
    public void setMacroSegmentId(int id) {
127
        this.macroSegmentId = id;
128
    }
129
    
130
    /**
131
     * Sets the segment count for macro PDF417 encoding
132
     * @param cnt the number of macro segments
133
     * @see #setMacroSegmentId(int)
134
     */
135
    public void setMacroSegmentCount(int cnt) {
136
        this.macroSegmentCount = cnt;
137
    }
138
139
    /**
140
     * Sets the File ID for macro PDF417 encoding 
141
     * @param id the file id
142
     */
143
    public void setMacroFileId(String id) {
144
        this.macroFileId = id;        
145
    }
146
       
147
    protected boolean checkSegmentType(Segment segment, char type) {
148 1 1. checkSegmentType : negated conditional → NO_COVERAGE
        if (segment == null)
149 1 1. checkSegmentType : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return false;
150 2 1. checkSegmentType : negated conditional → NO_COVERAGE
2. checkSegmentType : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return segment.type == type;
151
    }
152
    
153
    protected int getSegmentLength(Segment segment) {
154 1 1. getSegmentLength : negated conditional → NO_COVERAGE
        if (segment == null)
155 1 1. getSegmentLength : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return 0;
156 2 1. getSegmentLength : Replaced integer subtraction with addition → NO_COVERAGE
2. getSegmentLength : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return segment.end - segment.start;
157
    }
158
    
159
    /** Set the default settings that correspond to <CODE>PDF417_USE_ASPECT_RATIO</CODE>
160
     * and <CODE>PDF417_AUTO_ERROR_LEVEL</CODE>.
161
     */    
162
    public void setDefaultParameters() {
163
        options = 0;
164
        outBits = null;
165
        text = new byte[0];
166
        yHeight = 3;
167
        aspectRatio = 0.5f;
168
    }
169
170
    protected void outCodeword17(int codeword) {
171 1 1. outCodeword17 : Replaced integer division with multiplication → NO_COVERAGE
        int bytePtr = bitPtr / 8;
172 2 1. outCodeword17 : Replaced integer multiplication with division → NO_COVERAGE
2. outCodeword17 : Replaced integer subtraction with addition → NO_COVERAGE
        int bit = bitPtr - bytePtr * 8;
173 4 1. outCodeword17 : Changed increment from 1 to -1 → NO_COVERAGE
2. outCodeword17 : Replaced integer addition with subtraction → NO_COVERAGE
3. outCodeword17 : Replaced Shift Right with Shift Left → NO_COVERAGE
4. outCodeword17 : Replaced bitwise OR with AND → NO_COVERAGE
        outBits[bytePtr++] |= codeword >> (9 + bit);
174 4 1. outCodeword17 : Changed increment from 1 to -1 → NO_COVERAGE
2. outCodeword17 : Replaced integer addition with subtraction → NO_COVERAGE
3. outCodeword17 : Replaced Shift Right with Shift Left → NO_COVERAGE
4. outCodeword17 : Replaced bitwise OR with AND → NO_COVERAGE
        outBits[bytePtr++] |= codeword >> (1 + bit);
175 1 1. outCodeword17 : Replaced Shift Left with Shift Right → NO_COVERAGE
        codeword <<= 8;
176 3 1. outCodeword17 : Replaced integer addition with subtraction → NO_COVERAGE
2. outCodeword17 : Replaced Shift Right with Shift Left → NO_COVERAGE
3. outCodeword17 : Replaced bitwise OR with AND → NO_COVERAGE
        outBits[bytePtr] |= codeword >> (1 + bit);
177 1 1. outCodeword17 : Replaced integer addition with subtraction → NO_COVERAGE
        bitPtr += 17;
178
    }
179
180
    protected void outCodeword18(int codeword) {
181 1 1. outCodeword18 : Replaced integer division with multiplication → NO_COVERAGE
        int bytePtr = bitPtr / 8;
182 2 1. outCodeword18 : Replaced integer multiplication with division → NO_COVERAGE
2. outCodeword18 : Replaced integer subtraction with addition → NO_COVERAGE
        int bit = bitPtr - bytePtr * 8;
183 4 1. outCodeword18 : Changed increment from 1 to -1 → NO_COVERAGE
2. outCodeword18 : Replaced integer addition with subtraction → NO_COVERAGE
3. outCodeword18 : Replaced Shift Right with Shift Left → NO_COVERAGE
4. outCodeword18 : Replaced bitwise OR with AND → NO_COVERAGE
        outBits[bytePtr++] |= codeword >> (10 + bit);
184 4 1. outCodeword18 : Changed increment from 1 to -1 → NO_COVERAGE
2. outCodeword18 : Replaced integer addition with subtraction → NO_COVERAGE
3. outCodeword18 : Replaced Shift Right with Shift Left → NO_COVERAGE
4. outCodeword18 : Replaced bitwise OR with AND → NO_COVERAGE
        outBits[bytePtr++] |= codeword >> (2 + bit);
185 1 1. outCodeword18 : Replaced Shift Left with Shift Right → NO_COVERAGE
        codeword <<= 8;
186 3 1. outCodeword18 : Replaced integer addition with subtraction → NO_COVERAGE
2. outCodeword18 : Replaced Shift Right with Shift Left → NO_COVERAGE
3. outCodeword18 : Replaced bitwise OR with AND → NO_COVERAGE
        outBits[bytePtr] |= codeword >> (2 + bit);
187 1 1. outCodeword18 : negated conditional → NO_COVERAGE
        if (bit == 7)
188 2 1. outCodeword18 : Changed increment from 1 to -1 → NO_COVERAGE
2. outCodeword18 : Replaced bitwise OR with AND → NO_COVERAGE
            outBits[++bytePtr] |= 0x80;
189 1 1. outCodeword18 : Replaced integer addition with subtraction → NO_COVERAGE
        bitPtr += 18;
190
    }
191
192
    protected void outCodeword(int codeword) {
193
        outCodeword17(codeword);
194
    }
195
196
    protected void outStopPattern() {
197 1 1. outStopPattern : removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword18 → NO_COVERAGE
        outCodeword18(STOP_PATTERN);
198
    }
199
200
    protected void outStartPattern() {
201 1 1. outStartPattern : removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword17 → NO_COVERAGE
        outCodeword17(START_PATTERN);
202
    }
203
204
    protected void outPaintCode() {
205
        int codePtr = 0;
206 3 1. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
        bitColumns = START_CODE_SIZE * (codeColumns + 3) + STOP_SIZE;
207 4 1. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
3. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
4. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
        int lenBits = ((bitColumns - 1) / 8 + 1) * codeRows;
208
        outBits = new byte[lenBits];
209 3 1. outPaintCode : changed conditional boundary → NO_COVERAGE
2. outPaintCode : Changed increment from 1 to -1 → NO_COVERAGE
3. outPaintCode : negated conditional → NO_COVERAGE
        for (int row = 0; row < codeRows; ++row) {
210 5 1. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
3. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
4. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
5. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
            bitPtr = ((bitColumns - 1) / 8 + 1) * 8 * row;
211 1 1. outPaintCode : Replaced integer modulus with multiplication → NO_COVERAGE
            int rowMod = row % 3;
212
            int[] cluster = CLUSTERS[rowMod];
213 1 1. outPaintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::outStartPattern → NO_COVERAGE
            outStartPattern();
214
            int edge = 0;
215
            switch (rowMod) {
216
            case 0:
217 5 1. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
4. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
5. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
                edge = 30 * (row / 3) + ((codeRows - 1) / 3);
218
                break;
219
            case 1:
220 7 1. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
4. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
5. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
6. outPaintCode : Replaced integer modulus with multiplication → NO_COVERAGE
7. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
                edge = 30 * (row / 3) + errorLevel * 3 + ((codeRows - 1) % 3);
221
                break;
222
            default:
223 4 1. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
4. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
                edge = 30 * (row / 3) + codeColumns - 1;
224
                break;
225
            }
226 1 1. outPaintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword → NO_COVERAGE
            outCodeword(cluster[edge]);
227
228 3 1. outPaintCode : changed conditional boundary → NO_COVERAGE
2. outPaintCode : Changed increment from 1 to -1 → NO_COVERAGE
3. outPaintCode : negated conditional → NO_COVERAGE
            for (int column = 0; column < codeColumns; ++column) {
229 2 1. outPaintCode : Changed increment from 1 to -1 → NO_COVERAGE
2. outPaintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword → NO_COVERAGE
                outCodeword(cluster[codewords[codePtr++]]);
230
            }
231
232
            switch (rowMod) {
233
            case 0:
234 4 1. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
4. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
                edge = 30 * (row / 3) + codeColumns - 1;
235
                break;
236
            case 1:
237 5 1. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
4. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
5. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
                edge = 30 * (row / 3) + ((codeRows - 1) / 3);
238
                break;
239
            default:
240 7 1. outPaintCode : Replaced integer division with multiplication → NO_COVERAGE
2. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
3. outPaintCode : Replaced integer multiplication with division → NO_COVERAGE
4. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
5. outPaintCode : Replaced integer subtraction with addition → NO_COVERAGE
6. outPaintCode : Replaced integer modulus with multiplication → NO_COVERAGE
7. outPaintCode : Replaced integer addition with subtraction → NO_COVERAGE
                edge = 30 * (row / 3) + errorLevel * 3 + ((codeRows - 1) % 3);
241
                break;
242
            }
243 1 1. outPaintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword → NO_COVERAGE
            outCodeword(cluster[edge]);
244 1 1. outPaintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::outStopPattern → NO_COVERAGE
            outStopPattern();
245
        }
246 2 1. outPaintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. outPaintCode : negated conditional → NO_COVERAGE
        if ((options & PDF417_INVERT_BITMAP) != 0) {
247 2 1. outPaintCode : changed conditional boundary → NO_COVERAGE
2. outPaintCode : negated conditional → NO_COVERAGE
            for (int k = 0; k < outBits.length; ++k)
248 1 1. outPaintCode : Replaced XOR with AND → NO_COVERAGE
                outBits[k] ^= 0xff;
249
        }
250
    }
251
252
    protected void calculateErrorCorrection(int dest) {
253 4 1. calculateErrorCorrection : changed conditional boundary → NO_COVERAGE
2. calculateErrorCorrection : changed conditional boundary → NO_COVERAGE
3. calculateErrorCorrection : negated conditional → NO_COVERAGE
4. calculateErrorCorrection : negated conditional → NO_COVERAGE
        if (errorLevel < 0 || errorLevel > 8)
254
            errorLevel = 0;
255
        int[] A = ERROR_LEVEL[errorLevel];
256 1 1. calculateErrorCorrection : Replaced Shift Left with Shift Right → NO_COVERAGE
        int Alength = 2 << errorLevel;
257 3 1. calculateErrorCorrection : changed conditional boundary → NO_COVERAGE
2. calculateErrorCorrection : Changed increment from 1 to -1 → NO_COVERAGE
3. calculateErrorCorrection : negated conditional → NO_COVERAGE
        for (int k = 0; k < Alength; ++k)
258 1 1. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
            codewords[dest + k] = 0;
259 1 1. calculateErrorCorrection : Replaced integer subtraction with addition → NO_COVERAGE
        int lastE = Alength - 1;
260 3 1. calculateErrorCorrection : changed conditional boundary → NO_COVERAGE
2. calculateErrorCorrection : Changed increment from 1 to -1 → NO_COVERAGE
3. calculateErrorCorrection : negated conditional → NO_COVERAGE
        for (int k = 0; k < lenCodewords; ++k) {
261 1 1. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
            int t1 = codewords[k] + codewords[dest];
262 3 1. calculateErrorCorrection : changed conditional boundary → NO_COVERAGE
2. calculateErrorCorrection : Changed increment from 1 to -1 → NO_COVERAGE
3. calculateErrorCorrection : negated conditional → NO_COVERAGE
            for (int e = 0; e <= lastE; ++e) {
263 3 1. calculateErrorCorrection : Replaced integer subtraction with addition → NO_COVERAGE
2. calculateErrorCorrection : Replaced integer multiplication with division → NO_COVERAGE
3. calculateErrorCorrection : Replaced integer modulus with multiplication → NO_COVERAGE
                int t2 = (t1 * A[lastE - e]) % MOD;
264 1 1. calculateErrorCorrection : Replaced integer subtraction with addition → NO_COVERAGE
                int t3 = MOD - t2;
265 6 1. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
2. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
3. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
4. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
5. calculateErrorCorrection : Replaced integer modulus with multiplication → NO_COVERAGE
6. calculateErrorCorrection : negated conditional → NO_COVERAGE
                codewords[dest + e] = ((e == lastE ? 0 : codewords[dest + e + 1]) + t3) % MOD;
266
            }
267
        }
268 3 1. calculateErrorCorrection : changed conditional boundary → NO_COVERAGE
2. calculateErrorCorrection : Changed increment from 1 to -1 → NO_COVERAGE
3. calculateErrorCorrection : negated conditional → NO_COVERAGE
        for (int k = 0; k < Alength; ++k)
269 4 1. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
2. calculateErrorCorrection : Replaced integer addition with subtraction → NO_COVERAGE
3. calculateErrorCorrection : Replaced integer subtraction with addition → NO_COVERAGE
4. calculateErrorCorrection : Replaced integer modulus with multiplication → NO_COVERAGE
            codewords[dest + k] = (MOD - codewords[dest + k]) % MOD;
270
    }
271
    
272
    private static int getTextTypeAndValue(byte[] input, int maxLength, int idx) {
273 2 1. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
2. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (idx >= maxLength)
274 1 1. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return 0;
275 1 1. getTextTypeAndValue : Replaced bitwise AND with OR → NO_COVERAGE
        char c = (char)(input[idx] & 0xff);
276 4 1. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
2. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
3. getTextTypeAndValue : negated conditional → NO_COVERAGE
4. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (c >= 'A' && c <= 'Z')
277 3 1. getTextTypeAndValue : Replaced integer addition with subtraction → NO_COVERAGE
2. getTextTypeAndValue : Replaced integer subtraction with addition → NO_COVERAGE
3. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return (ALPHA + c - 'A');
278 4 1. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
2. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
3. getTextTypeAndValue : negated conditional → NO_COVERAGE
4. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (c >= 'a' && c <= 'z')
279 3 1. getTextTypeAndValue : Replaced integer addition with subtraction → NO_COVERAGE
2. getTextTypeAndValue : Replaced integer subtraction with addition → NO_COVERAGE
3. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return (LOWER + c - 'a');
280 1 1. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (c == ' ')
281 1 1. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return (ALPHA + LOWER + MIXED + SPACE);
282
        int ms = MIXED_SET.indexOf(c);
283
        int ps = PUNCTUATION_SET.indexOf(c);
284 4 1. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
2. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
3. getTextTypeAndValue : negated conditional → NO_COVERAGE
4. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (ms < 0 && ps < 0)
285 2 1. getTextTypeAndValue : Replaced integer addition with subtraction → NO_COVERAGE
2. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return (ISBYTE + c);
286 1 1. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (ms == ps)
287 2 1. getTextTypeAndValue : Replaced integer addition with subtraction → NO_COVERAGE
2. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return (MIXED + PUNCTUATION + ms);
288 2 1. getTextTypeAndValue : changed conditional boundary → NO_COVERAGE
2. getTextTypeAndValue : negated conditional → NO_COVERAGE
        if (ms >= 0)
289 2 1. getTextTypeAndValue : Replaced integer addition with subtraction → NO_COVERAGE
2. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
            return (MIXED + ms);
290 2 1. getTextTypeAndValue : Replaced integer addition with subtraction → NO_COVERAGE
2. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return (PUNCTUATION + ps);
291
    }
292
    
293
    protected int getTextTypeAndValue(int maxLength, int idx) {
294 1 1. getTextTypeAndValue : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return getTextTypeAndValue(text, maxLength,idx);
295
    }
296
    
297
    private void textCompaction(byte[] input, int start, int length) {
298
        int[] dest = new int[ABSOLUTE_MAX_TEXT_SIZE * 2];
299
        int mode = ALPHA;
300
        int ptr = 0;
301
        int fullBytes = 0;
302
        int v = 0;
303
        int k;
304
        int size;
305 1 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        length += start;
306 3 1. textCompaction : changed conditional boundary → NO_COVERAGE
2. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
3. textCompaction : negated conditional → NO_COVERAGE
        for (k = start; k < length; ++k) {
307
            v = getTextTypeAndValue(input, length, k);
308 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
            if ((v & mode) != 0) {
309 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                dest[ptr++] = v & 0xff;
310
                continue;
311
            }
312 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
            if ((v & ISBYTE) != 0) {
313 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                if ((ptr & 1) != 0) {
314
                    //add a padding word
315 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PAL;
316 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                    mode = (mode & PUNCTUATION) != 0 ? ALPHA : mode;
317
                }
318 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                dest[ptr++] = BYTESHIFT;
319 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                dest[ptr++] = v & 0xff;
320 1 1. textCompaction : Changed increment from 2 to -2 → NO_COVERAGE
                fullBytes += 2;
321
                continue;
322
            }
323
            switch (mode) {
324
            case ALPHA:
325 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                if ((v & LOWER) != 0) {
326 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = LL;
327 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
328
                    mode = LOWER;
329
                }
330 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                else if ((v & MIXED) != 0) {
331 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = ML;
332 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
333
                    mode = MIXED;
334
                }
335 5 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
4. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
5. textCompaction : negated conditional → NO_COVERAGE
                else if ((getTextTypeAndValue(input, length, k + 1) & getTextTypeAndValue(input, length, k + 2) & PUNCTUATION) != 0) {
336 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = ML;
337 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PL;
338 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
339
                    mode = PUNCTUATION;
340
                }
341
                else {
342 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PS;
343 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
344
                }
345
                break;
346
            case LOWER:
347 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                if ((v & ALPHA) != 0) {
348 5 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
4. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
5. textCompaction : negated conditional → NO_COVERAGE
                    if ((getTextTypeAndValue(input, length, k + 1) & getTextTypeAndValue(input, length, k + 2) & ALPHA) != 0) {
349 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                        dest[ptr++] = ML;
350 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                        dest[ptr++] = AL;
351
                        mode = ALPHA;
352
                    }
353
                    else {
354 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                        dest[ptr++] = AS;
355
                    }
356 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
357
                }
358 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                else if ((v & MIXED) != 0) {
359 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = ML;
360 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
361
                    mode = MIXED;
362
                }
363 5 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
4. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
5. textCompaction : negated conditional → NO_COVERAGE
                else if ((getTextTypeAndValue(input, length, k + 1) & getTextTypeAndValue(input, length, k + 2) & PUNCTUATION) != 0) {
364 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = ML;
365 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PL;
366 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
367
                    mode = PUNCTUATION;
368
                }
369
                else {
370 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PS;
371 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
372
                }
373
                break;
374
            case MIXED:
375 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                if ((v & LOWER) != 0) {
376 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = LL;
377 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
378
                    mode = LOWER;
379
                }
380 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
                else if ((v & ALPHA) != 0) {
381 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = AL;
382 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
383
                    mode = ALPHA;
384
                }
385 5 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
4. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
5. textCompaction : negated conditional → NO_COVERAGE
                else if ((getTextTypeAndValue(input, length, k + 1) & getTextTypeAndValue(input, length, k + 2) & PUNCTUATION) != 0) {
386 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PL;
387 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
388
                    mode = PUNCTUATION;
389
                }
390
                else {
391 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                    dest[ptr++] = PS;
392 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    dest[ptr++] = v & 0xff;
393
                }
394
                break;
395
            case PUNCTUATION:
396 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
                dest[ptr++] = PAL;
397
                mode = ALPHA;
398 1 1. textCompaction : Changed increment from -1 to 1 → NO_COVERAGE
                --k;
399
                break;
400
            }
401
        }
402 2 1. textCompaction : Replaced bitwise AND with OR → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
        if ((ptr & 1) != 0)
403 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
            dest[ptr++] = PS;
404 2 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. textCompaction : Replaced integer division with multiplication → NO_COVERAGE
        size = (ptr + fullBytes) / 2;
405 3 1. textCompaction : changed conditional boundary → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. textCompaction : negated conditional → NO_COVERAGE
        if (size + cwPtr > MAX_DATA_CODEWORDS) {
406
            throw new IndexOutOfBoundsException(MessageLocalization.getComposedMessage("the.text.is.too.big"));
407
        }
408
        length = ptr;
409
        ptr = 0;
410 2 1. textCompaction : changed conditional boundary → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
        while (ptr < length) {
411 1 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
            v = dest[ptr++];
412 2 1. textCompaction : changed conditional boundary → NO_COVERAGE
2. textCompaction : negated conditional → NO_COVERAGE
            if (v >= 30) {
413 1 1. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[cwPtr++] = v;
414 2 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[cwPtr++] = dest[ptr++];
415
            }
416
            else
417 4 1. textCompaction : Changed increment from 1 to -1 → NO_COVERAGE
2. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. textCompaction : Replaced integer multiplication with division → NO_COVERAGE
4. textCompaction : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[cwPtr++] = v * 30 + dest[ptr++];
418
        }
419
    }
420
    protected void textCompaction(int start, int length) {
421 1 1. textCompaction : removed call to com/lowagie/text/pdf/BarcodePDF417::textCompaction → NO_COVERAGE
        textCompaction(text, start, length);
422
    }
423
424
    protected void basicNumberCompaction(int start, int length) {
425 1 1. basicNumberCompaction : removed call to com/lowagie/text/pdf/BarcodePDF417::basicNumberCompaction → NO_COVERAGE
        basicNumberCompaction(text, start, length);
426
    }
427
428
    private void basicNumberCompaction(byte[] input, int start, int length) {
429
        int ret = cwPtr;
430 1 1. basicNumberCompaction : Replaced integer division with multiplication → NO_COVERAGE
        int retLast = length / 3;
431
        int ni, k;
432 2 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        cwPtr += retLast + 1;
433 3 1. basicNumberCompaction : changed conditional boundary → NO_COVERAGE
2. basicNumberCompaction : Changed increment from 1 to -1 → NO_COVERAGE
3. basicNumberCompaction : negated conditional → NO_COVERAGE
        for (k = 0; k <= retLast; ++k)
434 1 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
            codewords[ret + k] = 0;
435 1 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        codewords[ret + retLast] = 1;
436 1 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        length += start;
437 3 1. basicNumberCompaction : changed conditional boundary → NO_COVERAGE
2. basicNumberCompaction : Changed increment from 1 to -1 → NO_COVERAGE
3. basicNumberCompaction : negated conditional → NO_COVERAGE
        for (ni = start; ni < length; ++ni) {
438
            // multiply by 10
439 3 1. basicNumberCompaction : changed conditional boundary → NO_COVERAGE
2. basicNumberCompaction : Changed increment from -1 to 1 → NO_COVERAGE
3. basicNumberCompaction : negated conditional → NO_COVERAGE
            for (k = retLast; k >= 0; --k)
440 2 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. basicNumberCompaction : Replaced integer multiplication with division → NO_COVERAGE
                codewords[ret + k] *= 10;
441
            // add the digit
442 3 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. basicNumberCompaction : Replaced integer subtraction with addition → NO_COVERAGE
3. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
            codewords[ret + retLast] += input[ni] - '0';
443
            // propagate carry
444 3 1. basicNumberCompaction : changed conditional boundary → NO_COVERAGE
2. basicNumberCompaction : Changed increment from -1 to 1 → NO_COVERAGE
3. basicNumberCompaction : negated conditional → NO_COVERAGE
            for (k = retLast; k > 0; --k) {
445 5 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. basicNumberCompaction : Replaced integer subtraction with addition → NO_COVERAGE
3. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
4. basicNumberCompaction : Replaced integer division with multiplication → NO_COVERAGE
5. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[ret + k - 1] += codewords[ret + k] / 900;
446 2 1. basicNumberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. basicNumberCompaction : Replaced integer modulus with multiplication → NO_COVERAGE
                codewords[ret + k] %= 900;
447
            }
448
        }
449
    }
450
451
    private void numberCompaction(byte[] input, int start, int length) {
452 2 1. numberCompaction : Replaced integer division with multiplication → NO_COVERAGE
2. numberCompaction : Replaced integer multiplication with division → NO_COVERAGE
        int full = (length / 44) * 15;
453 1 1. numberCompaction : Replaced integer modulus with multiplication → NO_COVERAGE
        int size = length % 44;
454
        int k;
455 1 1. numberCompaction : negated conditional → NO_COVERAGE
        if (size == 0)
456
            size = full;
457
        else
458 3 1. numberCompaction : Replaced integer division with multiplication → NO_COVERAGE
2. numberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. numberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
            size = full + size / 3 + 1;
459 3 1. numberCompaction : changed conditional boundary → NO_COVERAGE
2. numberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. numberCompaction : negated conditional → NO_COVERAGE
        if (size + cwPtr > MAX_DATA_CODEWORDS) {
460
            throw new IndexOutOfBoundsException(MessageLocalization.getComposedMessage("the.text.is.too.big"));
461
        }
462 1 1. numberCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        length += start;
463 3 1. numberCompaction : changed conditional boundary → NO_COVERAGE
2. numberCompaction : Changed increment from 44 to -44 → NO_COVERAGE
3. numberCompaction : negated conditional → NO_COVERAGE
        for (k = start; k < length; k += 44) {
464 4 1. numberCompaction : changed conditional boundary → NO_COVERAGE
2. numberCompaction : Replaced integer subtraction with addition → NO_COVERAGE
3. numberCompaction : Replaced integer subtraction with addition → NO_COVERAGE
4. numberCompaction : negated conditional → NO_COVERAGE
            size = length - k < 44 ? length - k : 44;
465 1 1. numberCompaction : removed call to com/lowagie/text/pdf/BarcodePDF417::basicNumberCompaction → NO_COVERAGE
            basicNumberCompaction(input, k, size);
466
        }        
467
        }
468
    
469
    protected void numberCompaction(int start, int length) {
470 1 1. numberCompaction : removed call to com/lowagie/text/pdf/BarcodePDF417::numberCompaction → NO_COVERAGE
        numberCompaction(text, start, length);
471
    }
472
473
    protected void byteCompaction6(int start) {
474
        int length = 6;
475
        int ret = cwPtr;
476
        int retLast = 4;
477
        int ni, k;
478 2 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
2. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
        cwPtr += retLast + 1;
479 3 1. byteCompaction6 : changed conditional boundary → NO_COVERAGE
2. byteCompaction6 : Changed increment from 1 to -1 → NO_COVERAGE
3. byteCompaction6 : negated conditional → NO_COVERAGE
        for (k = 0; k <= retLast ; ++k)
480 1 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
            codewords[ret + k] = 0;
481 1 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
        length += start;
482 3 1. byteCompaction6 : changed conditional boundary → NO_COVERAGE
2. byteCompaction6 : Changed increment from 1 to -1 → NO_COVERAGE
3. byteCompaction6 : negated conditional → NO_COVERAGE
        for (ni = start; ni < length; ++ni) {
483
            // multiply by 256
484 3 1. byteCompaction6 : changed conditional boundary → NO_COVERAGE
2. byteCompaction6 : Changed increment from -1 to 1 → NO_COVERAGE
3. byteCompaction6 : negated conditional → NO_COVERAGE
            for (k = retLast; k >= 0; --k)
485 2 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
2. byteCompaction6 : Replaced integer multiplication with division → NO_COVERAGE
                codewords[ret + k] *= 256;
486
            // add the digit
487 3 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
2. byteCompaction6 : Replaced bitwise AND with OR → NO_COVERAGE
3. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
            codewords[ret + retLast] += text[ni] & 0xff;
488
            // propagate carry
489 3 1. byteCompaction6 : changed conditional boundary → NO_COVERAGE
2. byteCompaction6 : Changed increment from -1 to 1 → NO_COVERAGE
3. byteCompaction6 : negated conditional → NO_COVERAGE
            for (k = retLast; k > 0; --k) {
490 5 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
2. byteCompaction6 : Replaced integer subtraction with addition → NO_COVERAGE
3. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
4. byteCompaction6 : Replaced integer division with multiplication → NO_COVERAGE
5. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[ret + k - 1] += codewords[ret + k] / 900;
491 2 1. byteCompaction6 : Replaced integer addition with subtraction → NO_COVERAGE
2. byteCompaction6 : Replaced integer modulus with multiplication → NO_COVERAGE
                codewords[ret + k] %= 900;
492
            }
493
        }
494
    }
495
496
    void byteCompaction(int start, int length) {
497
        int k, j;
498 4 1. byteCompaction : Replaced integer division with multiplication → NO_COVERAGE
2. byteCompaction : Replaced integer multiplication with division → NO_COVERAGE
3. byteCompaction : Replaced integer modulus with multiplication → NO_COVERAGE
4. byteCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        int size = (length / 6) * 5 + (length % 6);
499 3 1. byteCompaction : changed conditional boundary → NO_COVERAGE
2. byteCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. byteCompaction : negated conditional → NO_COVERAGE
        if (size + cwPtr > MAX_DATA_CODEWORDS) {
500
            throw new IndexOutOfBoundsException(MessageLocalization.getComposedMessage("the.text.is.too.big"));
501
        }
502 1 1. byteCompaction : Replaced integer addition with subtraction → NO_COVERAGE
        length += start;
503 3 1. byteCompaction : changed conditional boundary → NO_COVERAGE
2. byteCompaction : Changed increment from 6 to -6 → NO_COVERAGE
3. byteCompaction : negated conditional → NO_COVERAGE
        for (k = start; k < length; k += 6) {
504 4 1. byteCompaction : changed conditional boundary → NO_COVERAGE
2. byteCompaction : Replaced integer subtraction with addition → NO_COVERAGE
3. byteCompaction : Replaced integer subtraction with addition → NO_COVERAGE
4. byteCompaction : negated conditional → NO_COVERAGE
            size = length - k < 44 ? length - k : 6;
505 2 1. byteCompaction : changed conditional boundary → NO_COVERAGE
2. byteCompaction : negated conditional → NO_COVERAGE
            if (size < 6) {
506 2 1. byteCompaction : changed conditional boundary → NO_COVERAGE
2. byteCompaction : negated conditional → NO_COVERAGE
                for (j = 0; j < size; ++j)
507 3 1. byteCompaction : Replaced integer addition with subtraction → NO_COVERAGE
2. byteCompaction : Replaced integer addition with subtraction → NO_COVERAGE
3. byteCompaction : Replaced bitwise AND with OR → NO_COVERAGE
                    codewords[cwPtr++] = text[k + j] & 0xff;
508
            }
509
            else {
510 1 1. byteCompaction : removed call to com/lowagie/text/pdf/BarcodePDF417::byteCompaction6 → NO_COVERAGE
                byteCompaction6(k);
511
            }
512
        }
513
    }
514
515
    void breakString() {
516
        int textLength = text.length;
517
        int lastP = 0;
518
        int startN = 0;
519
        int nd = 0;
520
        char c = 0;
521
        int k, j;
522
        boolean lastTxt, txt;
523
        Segment v;
524
        Segment vp;
525
        Segment vn;
526
        
527 2 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
        if ((options & PDF417_FORCE_BINARY) != 0) {
528 1 1. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
            segmentList.add('B', 0, textLength);
529
            return;
530
        }
531 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
        for (k = 0; k < textLength; ++k) {
532 1 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
            c = (char)(text[k] & 0xff);
533 4 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : changed conditional boundary → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
            if (c >= '0' && c <= '9') {
534 1 1. breakString : negated conditional → NO_COVERAGE
                if (nd == 0)
535
                    startN = k;
536 1 1. breakString : Changed increment from 1 to -1 → NO_COVERAGE
                ++nd;
537
                continue;
538
            }
539 2 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
            if (nd >= 13) {
540 1 1. breakString : negated conditional → NO_COVERAGE
                if (lastP != startN) {
541 1 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
                    c = (char)(text[lastP] & 0xff);
542 7 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : changed conditional boundary → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
5. breakString : negated conditional → NO_COVERAGE
6. breakString : negated conditional → NO_COVERAGE
7. breakString : negated conditional → NO_COVERAGE
                    lastTxt = (c >= ' ' && c < 127) || c == '\r' || c == '\n' || c == '\t';
543 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
                    for (j = lastP; j < startN; ++j) {
544 1 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
                        c = (char)(text[j] & 0xff);
545 7 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : changed conditional boundary → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
5. breakString : negated conditional → NO_COVERAGE
6. breakString : negated conditional → NO_COVERAGE
7. breakString : negated conditional → NO_COVERAGE
                        txt = (c >= ' ' && c < 127) || c == '\r' || c == '\n' || c == '\t';
546 1 1. breakString : negated conditional → NO_COVERAGE
                        if (txt != lastTxt) {
547 2 1. breakString : negated conditional → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
                            segmentList.add(lastTxt ? 'T' : 'B', lastP, j);
548
                            lastP = j;
549
                            lastTxt = txt;
550
                        }
551
                    }
552 2 1. breakString : negated conditional → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
                    segmentList.add(lastTxt ? 'T' : 'B', lastP, startN);
553
                }
554 1 1. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
                segmentList.add('N', startN, k);
555
                lastP = k;
556
            }
557
            nd = 0;
558
        }
559 2 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
        if (nd < 13)
560
            startN = textLength;
561 1 1. breakString : negated conditional → NO_COVERAGE
        if (lastP != startN) {
562 1 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
            c = (char)(text[lastP] & 0xff);
563 7 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : changed conditional boundary → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
5. breakString : negated conditional → NO_COVERAGE
6. breakString : negated conditional → NO_COVERAGE
7. breakString : negated conditional → NO_COVERAGE
            lastTxt = (c >= ' ' && c < 127) || c == '\r' || c == '\n' || c == '\t';
564 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
            for (j = lastP; j < startN; ++j) {
565 1 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
                c = (char)(text[j] & 0xff);
566 7 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : changed conditional boundary → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
5. breakString : negated conditional → NO_COVERAGE
6. breakString : negated conditional → NO_COVERAGE
7. breakString : negated conditional → NO_COVERAGE
                txt = (c >= ' ' && c < 127) || c == '\r' || c == '\n' || c == '\t';
567 1 1. breakString : negated conditional → NO_COVERAGE
                if (txt != lastTxt) {
568 2 1. breakString : negated conditional → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
                    segmentList.add(lastTxt ? 'T' : 'B', lastP, j);
569
                    lastP = j;
570
                    lastTxt = txt;
571
                }
572
            }
573 2 1. breakString : negated conditional → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
            segmentList.add(lastTxt ? 'T' : 'B', lastP, startN);
574
        }
575 2 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
        if (nd >= 13)
576 1 1. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE
            segmentList.add('N', startN, textLength);
577
        //optimize
578
        //merge short binary
579 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
        for (k = 0; k < segmentList.size(); ++k) {
580
            v = segmentList.get(k);
581 1 1. breakString : Replaced integer subtraction with addition → NO_COVERAGE
            vp = segmentList.get(k - 1);
582 1 1. breakString : Replaced integer addition with subtraction → NO_COVERAGE
            vn = segmentList.get(k + 1);
583 2 1. breakString : negated conditional → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
            if (checkSegmentType(v, 'B') && getSegmentLength(v) == 1) {
584 2 1. breakString : negated conditional → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
                if (checkSegmentType(vp, 'T') && checkSegmentType(vn, 'T') 
585 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Replaced integer addition with subtraction → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
                    && getSegmentLength(vp) + getSegmentLength(vn) >= 3) {
586
                    vp.end = vn.end;
587 1 1. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE
                    segmentList.remove(k);
588 1 1. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE
                    segmentList.remove(k);
589
                    k = -1;
590
                    continue;
591
                }
592
            }
593
        }
594
        //merge text sections
595 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
        for (k = 0; k < segmentList.size(); ++k) {
596
            v = segmentList.get(k);
597 1 1. breakString : Replaced integer subtraction with addition → NO_COVERAGE
            vp = segmentList.get(k - 1);
598 1 1. breakString : Replaced integer addition with subtraction → NO_COVERAGE
            vn = segmentList.get(k + 1);
599 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
            if (checkSegmentType(v, 'T') && getSegmentLength(v) >= 5) {
600
                boolean redo = false;
601 3 1. breakString : negated conditional → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
                if ((checkSegmentType(vp, 'B') && getSegmentLength(vp) == 1) || checkSegmentType(vp, 'T')) {
602
                    redo = true;
603
                    v.start = vp.start;
604 2 1. breakString : Replaced integer subtraction with addition → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE
                    segmentList.remove(k - 1);
605 1 1. breakString : Changed increment from -1 to 1 → NO_COVERAGE
                    --k;
606
                }
607 3 1. breakString : negated conditional → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
                if ((checkSegmentType(vn, 'B') && getSegmentLength(vn) == 1) || checkSegmentType(vn, 'T')) {
608
                    redo = true;
609
                    v.end = vn.end;
610 2 1. breakString : Replaced integer addition with subtraction → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE
                    segmentList.remove(k + 1);
611
                }
612 1 1. breakString : negated conditional → NO_COVERAGE
                if (redo) {
613
                    k = -1;
614
                    continue;
615
                }
616
            }
617
        }
618
        //merge binary sections
619 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
        for (k = 0; k < segmentList.size(); ++k) {
620
            v = segmentList.get(k);
621 1 1. breakString : Replaced integer subtraction with addition → NO_COVERAGE
            vp = segmentList.get(k - 1);
622 1 1. breakString : Replaced integer addition with subtraction → NO_COVERAGE
            vn = segmentList.get(k + 1);
623 1 1. breakString : negated conditional → NO_COVERAGE
            if (checkSegmentType(v, 'B')) {
624
                boolean redo = false;
625 4 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
                if ((checkSegmentType(vp, 'T') && getSegmentLength(vp) < 5) || checkSegmentType(vp, 'B')) {
626
                    redo = true;
627
                    v.start = vp.start;
628 2 1. breakString : Replaced integer subtraction with addition → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE
                    segmentList.remove(k - 1);
629 1 1. breakString : Changed increment from -1 to 1 → NO_COVERAGE
                    --k;
630
                }
631 4 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
                if ((checkSegmentType(vn, 'T') && getSegmentLength(vn) < 5) || checkSegmentType(vn, 'B')) {
632
                    redo = true;
633
                    v.end = vn.end;
634 2 1. breakString : Replaced integer addition with subtraction → NO_COVERAGE
2. breakString : removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE
                    segmentList.remove(k + 1);
635
                }
636 1 1. breakString : negated conditional → NO_COVERAGE
                if (redo) {
637
                    k = -1;
638
                    continue;
639
                }
640
            }
641
        }
642
        // check if all numbers
643 4 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : negated conditional → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
        if (segmentList.size() == 1 && (v = segmentList.get(0)).type == 'T' && getSegmentLength(v) >= 8) {
644 3 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : Changed increment from 1 to -1 → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
            for (k = v.start; k < v.end; ++k) {
645 1 1. breakString : Replaced bitwise AND with OR → NO_COVERAGE
                c = (char)(text[k] & 0xff);
646 4 1. breakString : changed conditional boundary → NO_COVERAGE
2. breakString : changed conditional boundary → NO_COVERAGE
3. breakString : negated conditional → NO_COVERAGE
4. breakString : negated conditional → NO_COVERAGE
                if (c < '0' || c > '9')
647
                    break;
648
            }
649 1 1. breakString : negated conditional → NO_COVERAGE
            if (k == v.end)
650
                v.type = 'N';
651
        }
652
    }
653
654
    protected void assemble() {
655
        int k;
656 1 1. assemble : negated conditional → NO_COVERAGE
        if (segmentList.size() == 0)
657
            return;
658
        cwPtr = 1;
659 2 1. assemble : changed conditional boundary → NO_COVERAGE
2. assemble : negated conditional → NO_COVERAGE
        for (k = 0; k < segmentList.size(); ++k) {
660
            Segment v = segmentList.get(k);
661
            switch (v.type) {
662
            case 'T':
663 1 1. assemble : negated conditional → NO_COVERAGE
                if (k != 0)
664 1 1. assemble : Replaced integer addition with subtraction → NO_COVERAGE
                    codewords[cwPtr++] = TEXT_MODE;
665 1 1. assemble : removed call to com/lowagie/text/pdf/BarcodePDF417::textCompaction → NO_COVERAGE
                textCompaction(v.start, getSegmentLength(v));
666
                break;
667
            case 'N':
668 1 1. assemble : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[cwPtr++] = NUMERIC_MODE;
669 1 1. assemble : removed call to com/lowagie/text/pdf/BarcodePDF417::numberCompaction → NO_COVERAGE
                numberCompaction(v.start, getSegmentLength(v));
670
                break;
671
            case 'B':
672 3 1. assemble : Replaced integer addition with subtraction → NO_COVERAGE
2. assemble : Replaced integer modulus with multiplication → NO_COVERAGE
3. assemble : negated conditional → NO_COVERAGE
                codewords[cwPtr++] = (getSegmentLength(v) % 6) != 0 ? BYTE_MODE : BYTE_MODE_6;
673 1 1. assemble : removed call to com/lowagie/text/pdf/BarcodePDF417::byteCompaction → NO_COVERAGE
                byteCompaction(v.start, getSegmentLength(v));
674
                break;
675
            }
676
        }
677
678 2 1. assemble : Replaced bitwise AND with OR → NO_COVERAGE
2. assemble : negated conditional → NO_COVERAGE
        if ((options & PDF417_USE_MACRO) != 0) {
679 1 1. assemble : removed call to com/lowagie/text/pdf/BarcodePDF417::macroCodes → NO_COVERAGE
            macroCodes();
680
        }
681
682
    }
683
    
684
    private void macroCodes() {
685 2 1. macroCodes : changed conditional boundary → NO_COVERAGE
2. macroCodes : negated conditional → NO_COVERAGE
        if (macroSegmentId < 0) {
686
            throw new IllegalStateException(MessageLocalization.getComposedMessage("macrosegmentid.must.be.gt.eq.0"));
687
        }
688 2 1. macroCodes : changed conditional boundary → NO_COVERAGE
2. macroCodes : negated conditional → NO_COVERAGE
        if (macroSegmentId >= macroSegmentCount) {
689
            throw new IllegalStateException(MessageLocalization.getComposedMessage("macrosegmentid.must.be.lt.macrosemgentcount"));
690
        }
691 2 1. macroCodes : changed conditional boundary → NO_COVERAGE
2. macroCodes : negated conditional → NO_COVERAGE
        if (macroSegmentCount < 1) {
692
            throw new IllegalStateException(MessageLocalization.getComposedMessage("macrosemgentcount.must.be.gt.0"));
693
        }
694
695
        macroIndex = cwPtr;
696 1 1. macroCodes : Replaced integer addition with subtraction → NO_COVERAGE
        codewords[cwPtr++] = MACRO_SEGMENT_ID;
697 1 1. macroCodes : removed call to com/lowagie/text/pdf/BarcodePDF417::append → NO_COVERAGE
        append(macroSegmentId, 5);
698
            
699 1 1. macroCodes : negated conditional → NO_COVERAGE
        if (macroFileId != null) {
700 1 1. macroCodes : removed call to com/lowagie/text/pdf/BarcodePDF417::append → NO_COVERAGE
            append(macroFileId);
701
        }
702
                
703 3 1. macroCodes : changed conditional boundary → NO_COVERAGE
2. macroCodes : Replaced integer subtraction with addition → NO_COVERAGE
3. macroCodes : negated conditional → NO_COVERAGE
        if (macroSegmentId >= macroSegmentCount-1) {
704 1 1. macroCodes : Replaced integer addition with subtraction → NO_COVERAGE
            codewords[cwPtr++] = MACRO_LAST_SEGMENT;
705
        }
706
        
707
    }
708
    
709
    private void append(int in, int len) {
710 1 1. append : Replaced integer addition with subtraction → NO_COVERAGE
        StringBuilder sb = new StringBuilder(len+1);
711
        sb.append(in);
712 3 1. append : changed conditional boundary → NO_COVERAGE
2. append : Changed increment from 1 to -1 → NO_COVERAGE
3. append : negated conditional → NO_COVERAGE
        for(int i = sb.length(); i < len; i++) {
713
            sb.insert(0, "0");
714
        }
715
    
716
        byte[] bytes = PdfEncodings.convertToBytes(sb.toString(), "cp437");
717 1 1. append : removed call to com/lowagie/text/pdf/BarcodePDF417::numberCompaction → NO_COVERAGE
        numberCompaction(bytes, 0, bytes.length);
718
    }    
719
    
720
    private void append(String s) {
721
        byte[] bytes = PdfEncodings.convertToBytes(s, "cp437");
722 1 1. append : removed call to com/lowagie/text/pdf/BarcodePDF417::textCompaction → NO_COVERAGE
        textCompaction(bytes, 0, bytes.length);
723
    }    
724
    
725
    
726
    protected static int maxPossibleErrorLevel(int remain) {
727
        int level = 8;
728
        int size = 512;
729 2 1. maxPossibleErrorLevel : changed conditional boundary → NO_COVERAGE
2. maxPossibleErrorLevel : negated conditional → NO_COVERAGE
        while (level > 0) {
730 2 1. maxPossibleErrorLevel : changed conditional boundary → NO_COVERAGE
2. maxPossibleErrorLevel : negated conditional → NO_COVERAGE
            if (remain >= size)
731 1 1. maxPossibleErrorLevel : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
                return level;
732 1 1. maxPossibleErrorLevel : Changed increment from -1 to 1 → NO_COVERAGE
            --level;
733 1 1. maxPossibleErrorLevel : Replaced Shift Right with Shift Left → NO_COVERAGE
            size >>= 1;
734
        }
735 1 1. maxPossibleErrorLevel : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return 0;
736
    }
737
738
    protected void dumpList() {
739 1 1. dumpList : negated conditional → NO_COVERAGE
        if (segmentList.size() == 0)
740
            return;
741 3 1. dumpList : changed conditional boundary → NO_COVERAGE
2. dumpList : Changed increment from 1 to -1 → NO_COVERAGE
3. dumpList : negated conditional → NO_COVERAGE
        for (int k = 0; k < segmentList.size(); ++k) {
742
            Segment v = segmentList.get(k);
743
            int len = getSegmentLength(v);
744
            char[] c = new char[len];
745 3 1. dumpList : changed conditional boundary → NO_COVERAGE
2. dumpList : Changed increment from 1 to -1 → NO_COVERAGE
3. dumpList : negated conditional → NO_COVERAGE
            for (int j = 0; j < len; ++j) {
746 2 1. dumpList : Replaced integer addition with subtraction → NO_COVERAGE
2. dumpList : Replaced bitwise AND with OR → NO_COVERAGE
                c[j] = (char)(text[v.start + j] & 0xff);
747 1 1. dumpList : negated conditional → NO_COVERAGE
                if (c[j] == '\r')
748
                    c[j] = '\n';
749
            }
750
            StringBuilder sb = new StringBuilder();
751
            sb.append(v.type);
752
            sb.append(c);
753 1 1. dumpList : removed call to java/io/PrintStream::println → NO_COVERAGE
            System.out.println(sb.toString());
754
        }
755
    }
756
757
    protected int getMaxSquare() {
758 2 1. getMaxSquare : changed conditional boundary → NO_COVERAGE
2. getMaxSquare : negated conditional → NO_COVERAGE
        if (codeColumns > 21) {
759
            codeColumns = 29;
760
            codeRows = 32;
761
        }
762
        else {
763
            codeColumns = 16;
764
            codeRows = 58;
765
        }
766 1 1. getMaxSquare : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return MAX_DATA_CODEWORDS + 2;
767
    }
768
769
    /** Paints the barcode. If no exception was thrown a valid barcode is available. */    
770
    public void paintCode() {
771
        int maxErr, lenErr, tot, pad;
772 2 1. paintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if ((options & PDF417_USE_RAW_CODEWORDS) != 0) {
773 5 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : changed conditional boundary → NO_COVERAGE
3. paintCode : negated conditional → NO_COVERAGE
4. paintCode : negated conditional → NO_COVERAGE
5. paintCode : negated conditional → NO_COVERAGE
            if (lenCodewords > MAX_DATA_CODEWORDS || lenCodewords < 1 || lenCodewords != codewords[0]) {
774
                throw new IllegalArgumentException(MessageLocalization.getComposedMessage("invalid.codeword.size"));
775
            }
776
        }
777
        else {
778 1 1. paintCode : negated conditional → NO_COVERAGE
            if (text == null)
779
                throw new NullPointerException(MessageLocalization.getComposedMessage("text.cannot.be.null"));
780 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            if (text.length > ABSOLUTE_MAX_TEXT_SIZE) {
781
                throw new IndexOutOfBoundsException(MessageLocalization.getComposedMessage("the.text.is.too.big"));
782
            }
783
            segmentList = new SegmentList();
784 1 1. paintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::breakString → NO_COVERAGE
            breakString();
785
            //dumpList();
786 1 1. paintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::assemble → NO_COVERAGE
            assemble();
787
            segmentList = null;
788
            codewords[0] = lenCodewords = cwPtr;
789
        }
790 1 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
        maxErr = maxPossibleErrorLevel(MAX_DATA_CODEWORDS + 2 - lenCodewords);
791 2 1. paintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if ((options & PDF417_USE_ERROR_LEVEL) == 0) {
792 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            if (lenCodewords < 41)
793
                errorLevel = 2;
794 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            else if (lenCodewords < 161)
795
                errorLevel = 3;
796 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            else if (lenCodewords < 321)
797
                errorLevel = 4;
798
            else
799
                errorLevel = 5;
800
        }
801 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if (errorLevel < 0)
802
            errorLevel = 0;
803 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        else if (errorLevel > maxErr)
804
            errorLevel = maxErr;
805 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if (codeColumns < 1)
806
            codeColumns = 1;
807 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        else if (codeColumns > 30)
808
            codeColumns = 30;
809 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if (codeRows < 3)
810
            codeRows = 3;
811 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        else if (codeRows > 90)
812
            codeRows = 90;
813 1 1. paintCode : Replaced Shift Left with Shift Right → NO_COVERAGE
        lenErr = 2 << errorLevel;
814 2 1. paintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        boolean fixedColumn = (options & PDF417_FIXED_ROWS) == 0;
815
        boolean skipRowColAdjust = false;
816 1 1. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
        tot = lenCodewords + lenErr;
817 2 1. paintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if ((options & PDF417_FIXED_RECTANGLE) != 0) {
818 1 1. paintCode : Replaced integer multiplication with division → NO_COVERAGE
            tot = codeColumns * codeRows;
819 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            if (tot > MAX_DATA_CODEWORDS + 2) {
820
                tot = getMaxSquare();
821
            }
822 3 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
3. paintCode : negated conditional → NO_COVERAGE
            if (tot < lenCodewords + lenErr)
823 1 1. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                tot = lenCodewords + lenErr;
824
            else
825
                skipRowColAdjust = true;
826
        }
827 2 1. paintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        else if ((options & (PDF417_FIXED_COLUMNS | PDF417_FIXED_ROWS)) == 0) {
828
            double c, b;
829
            fixedColumn = true;
830 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            if (aspectRatio < 0.001)
831
                aspectRatio = 0.001f;
832 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            else if (aspectRatio > 1000)
833
                aspectRatio = 1000;
834 2 1. paintCode : Replaced float multiplication with division → NO_COVERAGE
2. paintCode : Replaced float subtraction with addition → NO_COVERAGE
            b = 73 * aspectRatio - 4;
835 10 1. paintCode : removed negation → NO_COVERAGE
2. paintCode : Replaced double multiplication with division → NO_COVERAGE
3. paintCode : Replaced float multiplication with division → NO_COVERAGE
4. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
5. paintCode : Replaced float multiplication with division → NO_COVERAGE
6. paintCode : Replaced float multiplication with division → NO_COVERAGE
7. paintCode : Replaced double addition with subtraction → NO_COVERAGE
8. paintCode : Replaced double addition with subtraction → NO_COVERAGE
9. paintCode : Replaced float multiplication with division → NO_COVERAGE
10. paintCode : Replaced double division with multiplication → NO_COVERAGE
            c = (-b + Math.sqrt(b * b + 4 * 17 * aspectRatio * (lenCodewords + lenErr) * yHeight)) / (2 * 17 * aspectRatio);
836 1 1. paintCode : Replaced double addition with subtraction → NO_COVERAGE
            codeColumns = (int)(c + 0.5);
837 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            if (codeColumns < 1)
838
                codeColumns = 1;
839 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            else if (codeColumns > 30)
840
                codeColumns = 30;
841
        }
842 1 1. paintCode : negated conditional → NO_COVERAGE
        if (!skipRowColAdjust) {
843 1 1. paintCode : negated conditional → NO_COVERAGE
            if (fixedColumn) {
844 3 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. paintCode : Replaced integer division with multiplication → NO_COVERAGE
3. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                codeRows = (tot - 1) / codeColumns + 1;
845 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
                if (codeRows < 3)
846
                    codeRows = 3;
847 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
                else if (codeRows > 90) {
848
                    codeRows = 90;
849 3 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. paintCode : Replaced integer division with multiplication → NO_COVERAGE
3. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                    codeColumns = (tot - 1) / 90 + 1;
850
                }
851
            }
852
            else {
853 3 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. paintCode : Replaced integer division with multiplication → NO_COVERAGE
3. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                codeColumns = (tot - 1) / codeRows + 1;
854 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
                if (codeColumns > 30) {
855
                    codeColumns = 30;
856 3 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. paintCode : Replaced integer division with multiplication → NO_COVERAGE
3. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                    codeRows = (tot - 1) / 30 + 1;
857
                }
858
            }
859 1 1. paintCode : Replaced integer multiplication with division → NO_COVERAGE
            tot = codeRows * codeColumns;
860
        }
861 2 1. paintCode : changed conditional boundary → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if (tot > MAX_DATA_CODEWORDS + 2) {
862
            tot = getMaxSquare();
863
        }
864 1 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
        errorLevel = maxPossibleErrorLevel(tot - lenCodewords);
865 1 1. paintCode : Replaced Shift Left with Shift Right → NO_COVERAGE
        lenErr = 2 << errorLevel;
866 2 1. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
2. paintCode : Replaced integer subtraction with addition → NO_COVERAGE
        pad = tot - lenErr - lenCodewords;
867 2 1. paintCode : Replaced bitwise AND with OR → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
        if ((options & PDF417_USE_MACRO) != 0) {
868
            // the padding comes before the control block
869 2 1. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
2. paintCode : removed call to java/lang/System::arraycopy → NO_COVERAGE
            System.arraycopy(codewords, macroIndex, codewords, macroIndex + pad, pad);
870 1 1. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
            cwPtr = lenCodewords + pad;
871 2 1. paintCode : Changed increment from -1 to 1 → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            while (pad-- != 0)
872 1 1. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[macroIndex++] = TEXT_MODE;
873
        }
874
        else {
875
            cwPtr = lenCodewords;
876 2 1. paintCode : Changed increment from -1 to 1 → NO_COVERAGE
2. paintCode : negated conditional → NO_COVERAGE
            while (pad-- != 0)
877 1 1. paintCode : Replaced integer addition with subtraction → NO_COVERAGE
                codewords[cwPtr++] = TEXT_MODE;
878
        }
879
        codewords[0] = lenCodewords = cwPtr;
880 1 1. paintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::calculateErrorCorrection → NO_COVERAGE
        calculateErrorCorrection(lenCodewords);
881
        lenCodewords = tot;
882 1 1. paintCode : removed call to com/lowagie/text/pdf/BarcodePDF417::outPaintCode → NO_COVERAGE
        outPaintCode();
883
    }
884
885
    /** Gets an <CODE>Image</CODE> with the barcode. The image will have to be
886
     * scaled in the Y direction by <CODE>yHeight</CODE>for the barcode
887
     * to have the right printing aspect.
888
     * @return the barcode <CODE>Image</CODE>
889
     * @throws BadElementException on error
890
     */    
891
    public Image getImage() throws BadElementException {
892 1 1. getImage : removed call to com/lowagie/text/pdf/BarcodePDF417::paintCode → NO_COVERAGE
        paintCode();
893
        byte[] g4 = CCITTG4Encoder.compress(outBits, bitColumns, codeRows);
894 3 1. getImage : Replaced bitwise AND with OR → NO_COVERAGE
2. getImage : negated conditional → NO_COVERAGE
3. getImage : mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417::getImage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return Image.getInstance(bitColumns, codeRows, false, Image.CCITTG4, (options & PDF417_INVERT_BITMAP) == 0 ? 0 : Image.CCITT_BLACKIS1, g4, null);
895
    }
896
897
    /** Creates a <CODE>java.awt.Image</CODE>.
898
     * @param foreground the color of the bars
899
     * @param background the color of the background
900
     * @return the image
901
     */    
902
    public java.awt.Image createAwtImage(Color foreground, Color background) {
903
        int f = foreground.getRGB();
904
        int g = background.getRGB();
905
        Canvas canvas = new Canvas();
906
907 1 1. createAwtImage : removed call to com/lowagie/text/pdf/BarcodePDF417::paintCode → NO_COVERAGE
        paintCode();
908
        int h = (int)yHeight;
909 2 1. createAwtImage : Replaced integer multiplication with division → NO_COVERAGE
2. createAwtImage : Replaced integer multiplication with division → NO_COVERAGE
        int[] pix = new int[bitColumns * codeRows * h];
910 2 1. createAwtImage : Replaced integer addition with subtraction → NO_COVERAGE
2. createAwtImage : Replaced integer division with multiplication → NO_COVERAGE
        int stride = (bitColumns + 7) / 8;
911
        int ptr = 0;
912 3 1. createAwtImage : changed conditional boundary → NO_COVERAGE
2. createAwtImage : Changed increment from 1 to -1 → NO_COVERAGE
3. createAwtImage : negated conditional → NO_COVERAGE
        for (int k = 0; k < codeRows; ++k) {
913 1 1. createAwtImage : Replaced integer multiplication with division → NO_COVERAGE
            int p = k * stride;
914 3 1. createAwtImage : changed conditional boundary → NO_COVERAGE
2. createAwtImage : Changed increment from 1 to -1 → NO_COVERAGE
3. createAwtImage : negated conditional → NO_COVERAGE
            for (int j = 0; j < bitColumns; ++j) {
915 3 1. createAwtImage : Replaced integer division with multiplication → NO_COVERAGE
2. createAwtImage : Replaced integer addition with subtraction → NO_COVERAGE
3. createAwtImage : Replaced bitwise AND with OR → NO_COVERAGE
                int b = outBits[p + (j / 8)] & 0xff;
916 2 1. createAwtImage : Replaced integer modulus with multiplication → NO_COVERAGE
2. createAwtImage : Replaced Shift Left with Shift Right → NO_COVERAGE
                b <<= j % 8;
917 3 1. createAwtImage : Changed increment from 1 to -1 → NO_COVERAGE
2. createAwtImage : Replaced bitwise AND with OR → NO_COVERAGE
3. createAwtImage : negated conditional → NO_COVERAGE
                pix[ptr++] = (b & 0x80) == 0 ? g : f;
918
            }
919 3 1. createAwtImage : changed conditional boundary → NO_COVERAGE
2. createAwtImage : Changed increment from 1 to -1 → NO_COVERAGE
3. createAwtImage : negated conditional → NO_COVERAGE
            for (int j = 1; j < h; ++j) {
920 5 1. createAwtImage : Replaced integer subtraction with addition → NO_COVERAGE
2. createAwtImage : Replaced integer subtraction with addition → NO_COVERAGE
3. createAwtImage : Replaced integer multiplication with division → NO_COVERAGE
4. createAwtImage : Replaced integer addition with subtraction → NO_COVERAGE
5. createAwtImage : removed call to java/lang/System::arraycopy → NO_COVERAGE
                System.arraycopy(pix, ptr - bitColumns, pix, ptr + bitColumns * (j - 1), bitColumns);
921
            }
922 3 1. createAwtImage : Replaced integer subtraction with addition → NO_COVERAGE
2. createAwtImage : Replaced integer multiplication with division → NO_COVERAGE
3. createAwtImage : Replaced integer addition with subtraction → NO_COVERAGE
            ptr += bitColumns * (h - 1);
923
        }
924
        
925 1 1. createAwtImage : Replaced integer multiplication with division → NO_COVERAGE
        java.awt.Image img = canvas.createImage(new MemoryImageSource(bitColumns, codeRows * h, pix, 0, bitColumns));
926 1 1. createAwtImage : mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417::createAwtImage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return img;
927
    }
928
    
929
    /** Gets the raw image bits of the barcode. The image will have to
930
     * be scaled in the Y direction by <CODE>yHeight</CODE>.
931
     * @return The raw barcode image
932
     */
933
    public byte[] getOutBits() {
934
        return this.outBits;
935
    }
936
    
937
    /** Gets the number of X pixels of <CODE>outBits</CODE>.
938
     * @return the number of X pixels of <CODE>outBits</CODE>
939
     */
940
    public int getBitColumns() {
941
        return this.bitColumns;
942
    }
943
    
944
    /** Gets the number of Y pixels of <CODE>outBits</CODE>.
945
     * It is also the number of rows in the barcode.
946
     * @return the number of Y pixels of <CODE>outBits</CODE>
947
     */
948
    public int getCodeRows() {
949
        return this.codeRows;
950
    }
951
    
952
    /** Sets the number of barcode rows. This number may be changed
953
     * to keep the barcode valid.
954
     * @param codeRows the number of barcode rows
955
     */
956
    public void setCodeRows(int codeRows) {
957
        this.codeRows = codeRows;
958
    }
959
    
960
    /** Gets the number of barcode data columns.
961
     * @return he number of barcode data columns
962
     */
963
    public int getCodeColumns() {
964
        return this.codeColumns;
965
    }
966
    
967
    /** Sets the number of barcode data columns.
968
     * This number may be changed to keep the barcode valid.
969
     * @param codeColumns the number of barcode data columns
970
     */
971
    public void setCodeColumns(int codeColumns) {
972
        this.codeColumns = codeColumns;
973
    }
974
    
975
    /** Gets the codeword array. This array is always 928 elements long.
976
     * It can be written to if the option <CODE>PDF417_USE_RAW_CODEWORDS</CODE>
977
     * is set.
978
     * @return the codeword array
979
     */
980
    public int[] getCodewords() {
981
        return this.codewords;
982
    }
983
    
984
    /** Gets the length of the codewords.
985
     * @return the length of the codewords
986
     */
987
    public int getLenCodewords() {
988
        return this.lenCodewords;
989
    }
990
    
991
    /** Sets the length of the codewords.
992
     * @param lenCodewords the length of the codewords
993
     */
994
    public void setLenCodewords(int lenCodewords) {
995
        this.lenCodewords = lenCodewords;
996
    }
997
    
998
    /** Gets the error level correction used for the barcode. It may different
999
     * from the previously set value.
1000
     * @return the error level correction used for the barcode
1001
     */
1002
    public int getErrorLevel() {
1003
        return this.errorLevel;
1004
    }
1005
    
1006
    /** Sets the error level correction for the barcode.
1007
     * @param errorLevel the error level correction for the barcode
1008
     */
1009
    public void setErrorLevel(int errorLevel) {
1010
        this.errorLevel = errorLevel;
1011
    }
1012
    
1013
    /** Gets the bytes that form the barcode. This bytes should
1014
     * be interpreted in the codepage Cp437.
1015
     * @return the bytes that form the barcode
1016
     */
1017
    public byte[] getText() {
1018
        return this.text;
1019
    }
1020
    
1021
    /** Sets the bytes that form the barcode. This bytes should
1022
     * be interpreted in the codepage Cp437.
1023
     * @param text the bytes that form the barcode
1024
     */
1025
    public void setText(byte[] text) {
1026
        this.text = text;
1027
    }
1028
    
1029
    /** Sets the text that will form the barcode. This text is converted
1030
     * to bytes using the encoding Cp437.
1031
     * @param s the text that will form the barcode
1032
     */    
1033
    public void setText(String s) {
1034
        this.text = PdfEncodings.convertToBytes(s, "cp437");
1035
    }
1036
    
1037
    /** Gets the options to generate the barcode.
1038
     * @return the options to generate the barcode
1039
     */
1040
    public int getOptions() {
1041
        return this.options;
1042
    }
1043
    
1044
    /** Sets the options to generate the barcode. This can be all
1045
     * the <CODE>PDF417_*</CODE> constants.
1046
     * @param options the options to generate the barcode
1047
     */
1048
    public void setOptions(int options) {
1049
        this.options = options;
1050
    }
1051
    
1052
    /** Gets the barcode aspect ratio.
1053
     * @return the barcode aspect ratio
1054
     */
1055
    public float getAspectRatio() {
1056
        return this.aspectRatio;
1057
    }
1058
    
1059
    /** Sets the barcode aspect ratio. A ratio or 0.5 will make the
1060
     * barcode width twice as large as the height.
1061
     * @param aspectRatio the barcode aspect ratio
1062
     */
1063
    public void setAspectRatio(float aspectRatio) {
1064
        this.aspectRatio = aspectRatio;
1065
    }
1066
    
1067
    /** Gets the Y pixel height relative to X.
1068
     * @return the Y pixel height relative to X
1069
     */
1070
    public float getYHeight() {
1071
        return this.yHeight;
1072
    }
1073
    
1074
    /** Sets the Y pixel height relative to X. It is usually 3.
1075
     * @param yHeight the Y pixel height relative to X
1076
     */
1077
    public void setYHeight(float yHeight) {
1078
        this.yHeight = yHeight;
1079
    }
1080
    
1081
    protected static final int START_PATTERN = 0x1fea8;
1082
    protected static final int STOP_PATTERN = 0x3fa29;
1083
    protected static final int START_CODE_SIZE = 17;
1084
    protected static final int STOP_SIZE = 18;
1085
    protected static final int MOD = 929;
1086
    protected static final int ALPHA = 0x10000;
1087
    protected static final int LOWER = 0x20000;
1088
    protected static final int MIXED = 0x40000;
1089
    protected static final int PUNCTUATION = 0x80000;
1090
    protected static final int ISBYTE = 0x100000;
1091
    protected static final int BYTESHIFT = 913;
1092
    protected static final int PL = 25;
1093
    protected static final int LL = 27;
1094
    protected static final int AS = 27;
1095
    protected static final int ML = 28;
1096
    protected static final int AL = 28;
1097
    protected static final int PS = 29;
1098
    protected static final int PAL = 29;
1099
    protected static final int SPACE = 26;
1100
    protected static final int TEXT_MODE = 900;
1101
    protected static final int BYTE_MODE_6 = 924;
1102
    protected static final int BYTE_MODE = 901;
1103
    protected static final int NUMERIC_MODE = 902;
1104
    protected static final int ABSOLUTE_MAX_TEXT_SIZE = 5420;
1105
    protected static final int MAX_DATA_CODEWORDS = 926;
1106
    protected static final int MACRO_SEGMENT_ID=928;
1107
    protected static final int MACRO_LAST_SEGMENT=922;
1108
1109
    private static final String MIXED_SET = "0123456789&\r\t,:#-.$/+%*=^";
1110
    private static final String PUNCTUATION_SET = ";<>@[\\]_`~!\r\t,:\n-.$/\"|*()?{}'";
1111
1112
    private static final int[][] CLUSTERS =
1113
            {{
1114
                    0x1d5c0, 0x1eaf0, 0x1f57c, 0x1d4e0, 0x1ea78, 0x1f53e, 0x1a8c0, 0x1d470,
1115
                    0x1a860, 0x15040, 0x1a830, 0x15020, 0x1adc0, 0x1d6f0, 0x1eb7c, 0x1ace0,
1116
                    0x1d678, 0x1eb3e, 0x158c0, 0x1ac70, 0x15860, 0x15dc0, 0x1aef0, 0x1d77c,
1117
                    0x15ce0, 0x1ae78, 0x1d73e, 0x15c70, 0x1ae3c, 0x15ef0, 0x1af7c, 0x15e78,
1118
                    0x1af3e, 0x15f7c, 0x1f5fa, 0x1d2e0, 0x1e978, 0x1f4be, 0x1a4c0, 0x1d270,
1119
                    0x1e93c, 0x1a460, 0x1d238, 0x14840, 0x1a430, 0x1d21c, 0x14820, 0x1a418,
1120
                    0x14810, 0x1a6e0, 0x1d378, 0x1e9be, 0x14cc0, 0x1a670, 0x1d33c, 0x14c60,
1121
                    0x1a638, 0x1d31e, 0x14c30, 0x1a61c, 0x14ee0, 0x1a778, 0x1d3be, 0x14e70,
1122
                    0x1a73c, 0x14e38, 0x1a71e, 0x14f78, 0x1a7be, 0x14f3c, 0x14f1e, 0x1a2c0,
1123
                    0x1d170, 0x1e8bc, 0x1a260, 0x1d138, 0x1e89e, 0x14440, 0x1a230, 0x1d11c,
1124
                    0x14420, 0x1a218, 0x14410, 0x14408, 0x146c0, 0x1a370, 0x1d1bc, 0x14660,
1125
                    0x1a338, 0x1d19e, 0x14630, 0x1a31c, 0x14618, 0x1460c, 0x14770, 0x1a3bc,
1126
                    0x14738, 0x1a39e, 0x1471c, 0x147bc, 0x1a160, 0x1d0b8, 0x1e85e, 0x14240,
1127
                    0x1a130, 0x1d09c, 0x14220, 0x1a118, 0x1d08e, 0x14210, 0x1a10c, 0x14208,
1128
                    0x1a106, 0x14360, 0x1a1b8, 0x1d0de, 0x14330, 0x1a19c, 0x14318, 0x1a18e,
1129
                    0x1430c, 0x14306, 0x1a1de, 0x1438e, 0x14140, 0x1a0b0, 0x1d05c, 0x14120,
1130
                    0x1a098, 0x1d04e, 0x14110, 0x1a08c, 0x14108, 0x1a086, 0x14104, 0x141b0,
1131
                    0x14198, 0x1418c, 0x140a0, 0x1d02e, 0x1a04c, 0x1a046, 0x14082, 0x1cae0,
1132
                    0x1e578, 0x1f2be, 0x194c0, 0x1ca70, 0x1e53c, 0x19460, 0x1ca38, 0x1e51e,
1133
                    0x12840, 0x19430, 0x12820, 0x196e0, 0x1cb78, 0x1e5be, 0x12cc0, 0x19670,
1134
                    0x1cb3c, 0x12c60, 0x19638, 0x12c30, 0x12c18, 0x12ee0, 0x19778, 0x1cbbe,
1135
                    0x12e70, 0x1973c, 0x12e38, 0x12e1c, 0x12f78, 0x197be, 0x12f3c, 0x12fbe,
1136
                    0x1dac0, 0x1ed70, 0x1f6bc, 0x1da60, 0x1ed38, 0x1f69e, 0x1b440, 0x1da30,
1137
                    0x1ed1c, 0x1b420, 0x1da18, 0x1ed0e, 0x1b410, 0x1da0c, 0x192c0, 0x1c970,
1138
                    0x1e4bc, 0x1b6c0, 0x19260, 0x1c938, 0x1e49e, 0x1b660, 0x1db38, 0x1ed9e,
1139
                    0x16c40, 0x12420, 0x19218, 0x1c90e, 0x16c20, 0x1b618, 0x16c10, 0x126c0,
1140
                    0x19370, 0x1c9bc, 0x16ec0, 0x12660, 0x19338, 0x1c99e, 0x16e60, 0x1b738,
1141
                    0x1db9e, 0x16e30, 0x12618, 0x16e18, 0x12770, 0x193bc, 0x16f70, 0x12738,
1142
                    0x1939e, 0x16f38, 0x1b79e, 0x16f1c, 0x127bc, 0x16fbc, 0x1279e, 0x16f9e,
1143
                    0x1d960, 0x1ecb8, 0x1f65e, 0x1b240, 0x1d930, 0x1ec9c, 0x1b220, 0x1d918,
1144
                    0x1ec8e, 0x1b210, 0x1d90c, 0x1b208, 0x1b204, 0x19160, 0x1c8b8, 0x1e45e,
1145
                    0x1b360, 0x19130, 0x1c89c, 0x16640, 0x12220, 0x1d99c, 0x1c88e, 0x16620,
1146
                    0x12210, 0x1910c, 0x16610, 0x1b30c, 0x19106, 0x12204, 0x12360, 0x191b8,
1147
                    0x1c8de, 0x16760, 0x12330, 0x1919c, 0x16730, 0x1b39c, 0x1918e, 0x16718,
1148
                    0x1230c, 0x12306, 0x123b8, 0x191de, 0x167b8, 0x1239c, 0x1679c, 0x1238e,
1149
                    0x1678e, 0x167de, 0x1b140, 0x1d8b0, 0x1ec5c, 0x1b120, 0x1d898, 0x1ec4e,
1150
                    0x1b110, 0x1d88c, 0x1b108, 0x1d886, 0x1b104, 0x1b102, 0x12140, 0x190b0,
1151
                    0x1c85c, 0x16340, 0x12120, 0x19098, 0x1c84e, 0x16320, 0x1b198, 0x1d8ce,
1152
                    0x16310, 0x12108, 0x19086, 0x16308, 0x1b186, 0x16304, 0x121b0, 0x190dc,
1153
                    0x163b0, 0x12198, 0x190ce, 0x16398, 0x1b1ce, 0x1638c, 0x12186, 0x16386,
1154
                    0x163dc, 0x163ce, 0x1b0a0, 0x1d858, 0x1ec2e, 0x1b090, 0x1d84c, 0x1b088,
1155
                    0x1d846, 0x1b084, 0x1b082, 0x120a0, 0x19058, 0x1c82e, 0x161a0, 0x12090,
1156
                    0x1904c, 0x16190, 0x1b0cc, 0x19046, 0x16188, 0x12084, 0x16184, 0x12082,
1157
                    0x120d8, 0x161d8, 0x161cc, 0x161c6, 0x1d82c, 0x1d826, 0x1b042, 0x1902c,
1158
                    0x12048, 0x160c8, 0x160c4, 0x160c2, 0x18ac0, 0x1c570, 0x1e2bc, 0x18a60,
1159
                    0x1c538, 0x11440, 0x18a30, 0x1c51c, 0x11420, 0x18a18, 0x11410, 0x11408,
1160
                    0x116c0, 0x18b70, 0x1c5bc, 0x11660, 0x18b38, 0x1c59e, 0x11630, 0x18b1c,
1161
                    0x11618, 0x1160c, 0x11770, 0x18bbc, 0x11738, 0x18b9e, 0x1171c, 0x117bc,
1162
                    0x1179e, 0x1cd60, 0x1e6b8, 0x1f35e, 0x19a40, 0x1cd30, 0x1e69c, 0x19a20,
1163
                    0x1cd18, 0x1e68e, 0x19a10, 0x1cd0c, 0x19a08, 0x1cd06, 0x18960, 0x1c4b8,
1164
                    0x1e25e, 0x19b60, 0x18930, 0x1c49c, 0x13640, 0x11220, 0x1cd9c, 0x1c48e,
1165
                    0x13620, 0x19b18, 0x1890c, 0x13610, 0x11208, 0x13608, 0x11360, 0x189b8,
1166
                    0x1c4de, 0x13760, 0x11330, 0x1cdde, 0x13730, 0x19b9c, 0x1898e, 0x13718,
1167
                    0x1130c, 0x1370c, 0x113b8, 0x189de, 0x137b8, 0x1139c, 0x1379c, 0x1138e,
1168
                    0x113de, 0x137de, 0x1dd40, 0x1eeb0, 0x1f75c, 0x1dd20, 0x1ee98, 0x1f74e,
1169
                    0x1dd10, 0x1ee8c, 0x1dd08, 0x1ee86, 0x1dd04, 0x19940, 0x1ccb0, 0x1e65c,
1170
                    0x1bb40, 0x19920, 0x1eedc, 0x1e64e, 0x1bb20, 0x1dd98, 0x1eece, 0x1bb10,
1171
                    0x19908, 0x1cc86, 0x1bb08, 0x1dd86, 0x19902, 0x11140, 0x188b0, 0x1c45c,
1172
                    0x13340, 0x11120, 0x18898, 0x1c44e, 0x17740, 0x13320, 0x19998, 0x1ccce,
1173
                    0x17720, 0x1bb98, 0x1ddce, 0x18886, 0x17710, 0x13308, 0x19986, 0x17708,
1174
                    0x11102, 0x111b0, 0x188dc, 0x133b0, 0x11198, 0x188ce, 0x177b0, 0x13398,
1175
                    0x199ce, 0x17798, 0x1bbce, 0x11186, 0x13386, 0x111dc, 0x133dc, 0x111ce,
1176
                    0x177dc, 0x133ce, 0x1dca0, 0x1ee58, 0x1f72e, 0x1dc90, 0x1ee4c, 0x1dc88,
1177
                    0x1ee46, 0x1dc84, 0x1dc82, 0x198a0, 0x1cc58, 0x1e62e, 0x1b9a0, 0x19890,
1178
                    0x1ee6e, 0x1b990, 0x1dccc, 0x1cc46, 0x1b988, 0x19884, 0x1b984, 0x19882,
1179
                    0x1b982, 0x110a0, 0x18858, 0x1c42e, 0x131a0, 0x11090, 0x1884c, 0x173a0,
1180
                    0x13190, 0x198cc, 0x18846, 0x17390, 0x1b9cc, 0x11084, 0x17388, 0x13184,
1181
                    0x11082, 0x13182, 0x110d8, 0x1886e, 0x131d8, 0x110cc, 0x173d8, 0x131cc,
1182
                    0x110c6, 0x173cc, 0x131c6, 0x110ee, 0x173ee, 0x1dc50, 0x1ee2c, 0x1dc48,
1183
                    0x1ee26, 0x1dc44, 0x1dc42, 0x19850, 0x1cc2c, 0x1b8d0, 0x19848, 0x1cc26,
1184
                    0x1b8c8, 0x1dc66, 0x1b8c4, 0x19842, 0x1b8c2, 0x11050, 0x1882c, 0x130d0,
1185
                    0x11048, 0x18826, 0x171d0, 0x130c8, 0x19866, 0x171c8, 0x1b8e6, 0x11042,
1186
                    0x171c4, 0x130c2, 0x171c2, 0x130ec, 0x171ec, 0x171e6, 0x1ee16, 0x1dc22,
1187
                    0x1cc16, 0x19824, 0x19822, 0x11028, 0x13068, 0x170e8, 0x11022, 0x13062,
1188
                    0x18560, 0x10a40, 0x18530, 0x10a20, 0x18518, 0x1c28e, 0x10a10, 0x1850c,
1189
                    0x10a08, 0x18506, 0x10b60, 0x185b8, 0x1c2de, 0x10b30, 0x1859c, 0x10b18,
1190
                    0x1858e, 0x10b0c, 0x10b06, 0x10bb8, 0x185de, 0x10b9c, 0x10b8e, 0x10bde,
1191
                    0x18d40, 0x1c6b0, 0x1e35c, 0x18d20, 0x1c698, 0x18d10, 0x1c68c, 0x18d08,
1192
                    0x1c686, 0x18d04, 0x10940, 0x184b0, 0x1c25c, 0x11b40, 0x10920, 0x1c6dc,
1193
                    0x1c24e, 0x11b20, 0x18d98, 0x1c6ce, 0x11b10, 0x10908, 0x18486, 0x11b08,
1194
                    0x18d86, 0x10902, 0x109b0, 0x184dc, 0x11bb0, 0x10998, 0x184ce, 0x11b98,
1195
                    0x18dce, 0x11b8c, 0x10986, 0x109dc, 0x11bdc, 0x109ce, 0x11bce, 0x1cea0,
1196
                    0x1e758, 0x1f3ae, 0x1ce90, 0x1e74c, 0x1ce88, 0x1e746, 0x1ce84, 0x1ce82,
1197
                    0x18ca0, 0x1c658, 0x19da0, 0x18c90, 0x1c64c, 0x19d90, 0x1cecc, 0x1c646,
1198
                    0x19d88, 0x18c84, 0x19d84, 0x18c82, 0x19d82, 0x108a0, 0x18458, 0x119a0,
1199
                    0x10890, 0x1c66e, 0x13ba0, 0x11990, 0x18ccc, 0x18446, 0x13b90, 0x19dcc,
1200
                    0x10884, 0x13b88, 0x11984, 0x10882, 0x11982, 0x108d8, 0x1846e, 0x119d8,
1201
                    0x108cc, 0x13bd8, 0x119cc, 0x108c6, 0x13bcc, 0x119c6, 0x108ee, 0x119ee,
1202
                    0x13bee, 0x1ef50, 0x1f7ac, 0x1ef48, 0x1f7a6, 0x1ef44, 0x1ef42, 0x1ce50,
1203
                    0x1e72c, 0x1ded0, 0x1ef6c, 0x1e726, 0x1dec8, 0x1ef66, 0x1dec4, 0x1ce42,
1204
                    0x1dec2, 0x18c50, 0x1c62c, 0x19cd0, 0x18c48, 0x1c626, 0x1bdd0, 0x19cc8,
1205
                    0x1ce66, 0x1bdc8, 0x1dee6, 0x18c42, 0x1bdc4, 0x19cc2, 0x1bdc2, 0x10850,
1206
                    0x1842c, 0x118d0, 0x10848, 0x18426, 0x139d0, 0x118c8, 0x18c66, 0x17bd0,
1207
                    0x139c8, 0x19ce6, 0x10842, 0x17bc8, 0x1bde6, 0x118c2, 0x17bc4, 0x1086c,
1208
                    0x118ec, 0x10866, 0x139ec, 0x118e6, 0x17bec, 0x139e6, 0x17be6, 0x1ef28,
1209
                    0x1f796, 0x1ef24, 0x1ef22, 0x1ce28, 0x1e716, 0x1de68, 0x1ef36, 0x1de64,
1210
                    0x1ce22, 0x1de62, 0x18c28, 0x1c616, 0x19c68, 0x18c24, 0x1bce8, 0x19c64,
1211
                    0x18c22, 0x1bce4, 0x19c62, 0x1bce2, 0x10828, 0x18416, 0x11868, 0x18c36,
1212
                    0x138e8, 0x11864, 0x10822, 0x179e8, 0x138e4, 0x11862, 0x179e4, 0x138e2,
1213
                    0x179e2, 0x11876, 0x179f6, 0x1ef12, 0x1de34, 0x1de32, 0x19c34, 0x1bc74,
1214
                    0x1bc72, 0x11834, 0x13874, 0x178f4, 0x178f2, 0x10540, 0x10520, 0x18298,
1215
                    0x10510, 0x10508, 0x10504, 0x105b0, 0x10598, 0x1058c, 0x10586, 0x105dc,
1216
                    0x105ce, 0x186a0, 0x18690, 0x1c34c, 0x18688, 0x1c346, 0x18684, 0x18682,
1217
                    0x104a0, 0x18258, 0x10da0, 0x186d8, 0x1824c, 0x10d90, 0x186cc, 0x10d88,
1218
                    0x186c6, 0x10d84, 0x10482, 0x10d82, 0x104d8, 0x1826e, 0x10dd8, 0x186ee,
1219
                    0x10dcc, 0x104c6, 0x10dc6, 0x104ee, 0x10dee, 0x1c750, 0x1c748, 0x1c744,
1220
                    0x1c742, 0x18650, 0x18ed0, 0x1c76c, 0x1c326, 0x18ec8, 0x1c766, 0x18ec4,
1221
                    0x18642, 0x18ec2, 0x10450, 0x10cd0, 0x10448, 0x18226, 0x11dd0, 0x10cc8,
1222
                    0x10444, 0x11dc8, 0x10cc4, 0x10442, 0x11dc4, 0x10cc2, 0x1046c, 0x10cec,
1223
                    0x10466, 0x11dec, 0x10ce6, 0x11de6, 0x1e7a8, 0x1e7a4, 0x1e7a2, 0x1c728,
1224
                    0x1cf68, 0x1e7b6, 0x1cf64, 0x1c722, 0x1cf62, 0x18628, 0x1c316, 0x18e68,
1225
                    0x1c736, 0x19ee8, 0x18e64, 0x18622, 0x19ee4, 0x18e62, 0x19ee2, 0x10428,
1226
                    0x18216, 0x10c68, 0x18636, 0x11ce8, 0x10c64, 0x10422, 0x13de8, 0x11ce4,
1227
                    0x10c62, 0x13de4, 0x11ce2, 0x10436, 0x10c76, 0x11cf6, 0x13df6, 0x1f7d4,
1228
                    0x1f7d2, 0x1e794, 0x1efb4, 0x1e792, 0x1efb2, 0x1c714, 0x1cf34, 0x1c712,
1229
                    0x1df74, 0x1cf32, 0x1df72, 0x18614, 0x18e34, 0x18612, 0x19e74, 0x18e32,
1230
                    0x1bef4
1231
            }, {
1232
                    0x1f560, 0x1fab8, 0x1ea40, 0x1f530, 0x1fa9c, 0x1ea20, 0x1f518, 0x1fa8e,
1233
                    0x1ea10, 0x1f50c, 0x1ea08, 0x1f506, 0x1ea04, 0x1eb60, 0x1f5b8, 0x1fade,
1234
                    0x1d640, 0x1eb30, 0x1f59c, 0x1d620, 0x1eb18, 0x1f58e, 0x1d610, 0x1eb0c,
1235
                    0x1d608, 0x1eb06, 0x1d604, 0x1d760, 0x1ebb8, 0x1f5de, 0x1ae40, 0x1d730,
1236
                    0x1eb9c, 0x1ae20, 0x1d718, 0x1eb8e, 0x1ae10, 0x1d70c, 0x1ae08, 0x1d706,
1237
                    0x1ae04, 0x1af60, 0x1d7b8, 0x1ebde, 0x15e40, 0x1af30, 0x1d79c, 0x15e20,
1238
                    0x1af18, 0x1d78e, 0x15e10, 0x1af0c, 0x15e08, 0x1af06, 0x15f60, 0x1afb8,
1239
                    0x1d7de, 0x15f30, 0x1af9c, 0x15f18, 0x1af8e, 0x15f0c, 0x15fb8, 0x1afde,
1240
                    0x15f9c, 0x15f8e, 0x1e940, 0x1f4b0, 0x1fa5c, 0x1e920, 0x1f498, 0x1fa4e,
1241
                    0x1e910, 0x1f48c, 0x1e908, 0x1f486, 0x1e904, 0x1e902, 0x1d340, 0x1e9b0,
1242
                    0x1f4dc, 0x1d320, 0x1e998, 0x1f4ce, 0x1d310, 0x1e98c, 0x1d308, 0x1e986,
1243
                    0x1d304, 0x1d302, 0x1a740, 0x1d3b0, 0x1e9dc, 0x1a720, 0x1d398, 0x1e9ce,
1244
                    0x1a710, 0x1d38c, 0x1a708, 0x1d386, 0x1a704, 0x1a702, 0x14f40, 0x1a7b0,
1245
                    0x1d3dc, 0x14f20, 0x1a798, 0x1d3ce, 0x14f10, 0x1a78c, 0x14f08, 0x1a786,
1246
                    0x14f04, 0x14fb0, 0x1a7dc, 0x14f98, 0x1a7ce, 0x14f8c, 0x14f86, 0x14fdc,
1247
                    0x14fce, 0x1e8a0, 0x1f458, 0x1fa2e, 0x1e890, 0x1f44c, 0x1e888, 0x1f446,
1248
                    0x1e884, 0x1e882, 0x1d1a0, 0x1e8d8, 0x1f46e, 0x1d190, 0x1e8cc, 0x1d188,
1249
                    0x1e8c6, 0x1d184, 0x1d182, 0x1a3a0, 0x1d1d8, 0x1e8ee, 0x1a390, 0x1d1cc,
1250
                    0x1a388, 0x1d1c6, 0x1a384, 0x1a382, 0x147a0, 0x1a3d8, 0x1d1ee, 0x14790,
1251
                    0x1a3cc, 0x14788, 0x1a3c6, 0x14784, 0x14782, 0x147d8, 0x1a3ee, 0x147cc,
1252
                    0x147c6, 0x147ee, 0x1e850, 0x1f42c, 0x1e848, 0x1f426, 0x1e844, 0x1e842,
1253
                    0x1d0d0, 0x1e86c, 0x1d0c8, 0x1e866, 0x1d0c4, 0x1d0c2, 0x1a1d0, 0x1d0ec,
1254
                    0x1a1c8, 0x1d0e6, 0x1a1c4, 0x1a1c2, 0x143d0, 0x1a1ec, 0x143c8, 0x1a1e6,
1255
                    0x143c4, 0x143c2, 0x143ec, 0x143e6, 0x1e828, 0x1f416, 0x1e824, 0x1e822,
1256
                    0x1d068, 0x1e836, 0x1d064, 0x1d062, 0x1a0e8, 0x1d076, 0x1a0e4, 0x1a0e2,
1257
                    0x141e8, 0x1a0f6, 0x141e4, 0x141e2, 0x1e814, 0x1e812, 0x1d034, 0x1d032,
1258
                    0x1a074, 0x1a072, 0x1e540, 0x1f2b0, 0x1f95c, 0x1e520, 0x1f298, 0x1f94e,
1259
                    0x1e510, 0x1f28c, 0x1e508, 0x1f286, 0x1e504, 0x1e502, 0x1cb40, 0x1e5b0,
1260
                    0x1f2dc, 0x1cb20, 0x1e598, 0x1f2ce, 0x1cb10, 0x1e58c, 0x1cb08, 0x1e586,
1261
                    0x1cb04, 0x1cb02, 0x19740, 0x1cbb0, 0x1e5dc, 0x19720, 0x1cb98, 0x1e5ce,
1262
                    0x19710, 0x1cb8c, 0x19708, 0x1cb86, 0x19704, 0x19702, 0x12f40, 0x197b0,
1263
                    0x1cbdc, 0x12f20, 0x19798, 0x1cbce, 0x12f10, 0x1978c, 0x12f08, 0x19786,
1264
                    0x12f04, 0x12fb0, 0x197dc, 0x12f98, 0x197ce, 0x12f8c, 0x12f86, 0x12fdc,
1265
                    0x12fce, 0x1f6a0, 0x1fb58, 0x16bf0, 0x1f690, 0x1fb4c, 0x169f8, 0x1f688,
1266
                    0x1fb46, 0x168fc, 0x1f684, 0x1f682, 0x1e4a0, 0x1f258, 0x1f92e, 0x1eda0,
1267
                    0x1e490, 0x1fb6e, 0x1ed90, 0x1f6cc, 0x1f246, 0x1ed88, 0x1e484, 0x1ed84,
1268
                    0x1e482, 0x1ed82, 0x1c9a0, 0x1e4d8, 0x1f26e, 0x1dba0, 0x1c990, 0x1e4cc,
1269
                    0x1db90, 0x1edcc, 0x1e4c6, 0x1db88, 0x1c984, 0x1db84, 0x1c982, 0x1db82,
1270
                    0x193a0, 0x1c9d8, 0x1e4ee, 0x1b7a0, 0x19390, 0x1c9cc, 0x1b790, 0x1dbcc,
1271
                    0x1c9c6, 0x1b788, 0x19384, 0x1b784, 0x19382, 0x1b782, 0x127a0, 0x193d8,
1272
                    0x1c9ee, 0x16fa0, 0x12790, 0x193cc, 0x16f90, 0x1b7cc, 0x193c6, 0x16f88,
1273
                    0x12784, 0x16f84, 0x12782, 0x127d8, 0x193ee, 0x16fd8, 0x127cc, 0x16fcc,
1274
                    0x127c6, 0x16fc6, 0x127ee, 0x1f650, 0x1fb2c, 0x165f8, 0x1f648, 0x1fb26,
1275
                    0x164fc, 0x1f644, 0x1647e, 0x1f642, 0x1e450, 0x1f22c, 0x1ecd0, 0x1e448,
1276
                    0x1f226, 0x1ecc8, 0x1f666, 0x1ecc4, 0x1e442, 0x1ecc2, 0x1c8d0, 0x1e46c,
1277
                    0x1d9d0, 0x1c8c8, 0x1e466, 0x1d9c8, 0x1ece6, 0x1d9c4, 0x1c8c2, 0x1d9c2,
1278
                    0x191d0, 0x1c8ec, 0x1b3d0, 0x191c8, 0x1c8e6, 0x1b3c8, 0x1d9e6, 0x1b3c4,
1279
                    0x191c2, 0x1b3c2, 0x123d0, 0x191ec, 0x167d0, 0x123c8, 0x191e6, 0x167c8,
1280
                    0x1b3e6, 0x167c4, 0x123c2, 0x167c2, 0x123ec, 0x167ec, 0x123e6, 0x167e6,
1281
                    0x1f628, 0x1fb16, 0x162fc, 0x1f624, 0x1627e, 0x1f622, 0x1e428, 0x1f216,
1282
                    0x1ec68, 0x1f636, 0x1ec64, 0x1e422, 0x1ec62, 0x1c868, 0x1e436, 0x1d8e8,
1283
                    0x1c864, 0x1d8e4, 0x1c862, 0x1d8e2, 0x190e8, 0x1c876, 0x1b1e8, 0x1d8f6,
1284
                    0x1b1e4, 0x190e2, 0x1b1e2, 0x121e8, 0x190f6, 0x163e8, 0x121e4, 0x163e4,
1285
                    0x121e2, 0x163e2, 0x121f6, 0x163f6, 0x1f614, 0x1617e, 0x1f612, 0x1e414,
1286
                    0x1ec34, 0x1e412, 0x1ec32, 0x1c834, 0x1d874, 0x1c832, 0x1d872, 0x19074,
1287
                    0x1b0f4, 0x19072, 0x1b0f2, 0x120f4, 0x161f4, 0x120f2, 0x161f2, 0x1f60a,
1288
                    0x1e40a, 0x1ec1a, 0x1c81a, 0x1d83a, 0x1903a, 0x1b07a, 0x1e2a0, 0x1f158,
1289
                    0x1f8ae, 0x1e290, 0x1f14c, 0x1e288, 0x1f146, 0x1e284, 0x1e282, 0x1c5a0,
1290
                    0x1e2d8, 0x1f16e, 0x1c590, 0x1e2cc, 0x1c588, 0x1e2c6, 0x1c584, 0x1c582,
1291
                    0x18ba0, 0x1c5d8, 0x1e2ee, 0x18b90, 0x1c5cc, 0x18b88, 0x1c5c6, 0x18b84,
1292
                    0x18b82, 0x117a0, 0x18bd8, 0x1c5ee, 0x11790, 0x18bcc, 0x11788, 0x18bc6,
1293
                    0x11784, 0x11782, 0x117d8, 0x18bee, 0x117cc, 0x117c6, 0x117ee, 0x1f350,
1294
                    0x1f9ac, 0x135f8, 0x1f348, 0x1f9a6, 0x134fc, 0x1f344, 0x1347e, 0x1f342,
1295
                    0x1e250, 0x1f12c, 0x1e6d0, 0x1e248, 0x1f126, 0x1e6c8, 0x1f366, 0x1e6c4,
1296
                    0x1e242, 0x1e6c2, 0x1c4d0, 0x1e26c, 0x1cdd0, 0x1c4c8, 0x1e266, 0x1cdc8,
1297
                    0x1e6e6, 0x1cdc4, 0x1c4c2, 0x1cdc2, 0x189d0, 0x1c4ec, 0x19bd0, 0x189c8,
1298
                    0x1c4e6, 0x19bc8, 0x1cde6, 0x19bc4, 0x189c2, 0x19bc2, 0x113d0, 0x189ec,
1299
                    0x137d0, 0x113c8, 0x189e6, 0x137c8, 0x19be6, 0x137c4, 0x113c2, 0x137c2,
1300
                    0x113ec, 0x137ec, 0x113e6, 0x137e6, 0x1fba8, 0x175f0, 0x1bafc, 0x1fba4,
1301
                    0x174f8, 0x1ba7e, 0x1fba2, 0x1747c, 0x1743e, 0x1f328, 0x1f996, 0x132fc,
1302
                    0x1f768, 0x1fbb6, 0x176fc, 0x1327e, 0x1f764, 0x1f322, 0x1767e, 0x1f762,
1303
                    0x1e228, 0x1f116, 0x1e668, 0x1e224, 0x1eee8, 0x1f776, 0x1e222, 0x1eee4,
1304
                    0x1e662, 0x1eee2, 0x1c468, 0x1e236, 0x1cce8, 0x1c464, 0x1dde8, 0x1cce4,
1305
                    0x1c462, 0x1dde4, 0x1cce2, 0x1dde2, 0x188e8, 0x1c476, 0x199e8, 0x188e4,
1306
                    0x1bbe8, 0x199e4, 0x188e2, 0x1bbe4, 0x199e2, 0x1bbe2, 0x111e8, 0x188f6,
1307
                    0x133e8, 0x111e4, 0x177e8, 0x133e4, 0x111e2, 0x177e4, 0x133e2, 0x177e2,
1308
                    0x111f6, 0x133f6, 0x1fb94, 0x172f8, 0x1b97e, 0x1fb92, 0x1727c, 0x1723e,
1309
                    0x1f314, 0x1317e, 0x1f734, 0x1f312, 0x1737e, 0x1f732, 0x1e214, 0x1e634,
1310
                    0x1e212, 0x1ee74, 0x1e632, 0x1ee72, 0x1c434, 0x1cc74, 0x1c432, 0x1dcf4,
1311
                    0x1cc72, 0x1dcf2, 0x18874, 0x198f4, 0x18872, 0x1b9f4, 0x198f2, 0x1b9f2,
1312
                    0x110f4, 0x131f4, 0x110f2, 0x173f4, 0x131f2, 0x173f2, 0x1fb8a, 0x1717c,
1313
                    0x1713e, 0x1f30a, 0x1f71a, 0x1e20a, 0x1e61a, 0x1ee3a, 0x1c41a, 0x1cc3a,
1314
                    0x1dc7a, 0x1883a, 0x1987a, 0x1b8fa, 0x1107a, 0x130fa, 0x171fa, 0x170be,
1315
                    0x1e150, 0x1f0ac, 0x1e148, 0x1f0a6, 0x1e144, 0x1e142, 0x1c2d0, 0x1e16c,
1316
                    0x1c2c8, 0x1e166, 0x1c2c4, 0x1c2c2, 0x185d0, 0x1c2ec, 0x185c8, 0x1c2e6,
1317
                    0x185c4, 0x185c2, 0x10bd0, 0x185ec, 0x10bc8, 0x185e6, 0x10bc4, 0x10bc2,
1318
                    0x10bec, 0x10be6, 0x1f1a8, 0x1f8d6, 0x11afc, 0x1f1a4, 0x11a7e, 0x1f1a2,
1319
                    0x1e128, 0x1f096, 0x1e368, 0x1e124, 0x1e364, 0x1e122, 0x1e362, 0x1c268,
1320
                    0x1e136, 0x1c6e8, 0x1c264, 0x1c6e4, 0x1c262, 0x1c6e2, 0x184e8, 0x1c276,
1321
                    0x18de8, 0x184e4, 0x18de4, 0x184e2, 0x18de2, 0x109e8, 0x184f6, 0x11be8,
1322
                    0x109e4, 0x11be4, 0x109e2, 0x11be2, 0x109f6, 0x11bf6, 0x1f9d4, 0x13af8,
1323
                    0x19d7e, 0x1f9d2, 0x13a7c, 0x13a3e, 0x1f194, 0x1197e, 0x1f3b4, 0x1f192,
1324
                    0x13b7e, 0x1f3b2, 0x1e114, 0x1e334, 0x1e112, 0x1e774, 0x1e332, 0x1e772,
1325
                    0x1c234, 0x1c674, 0x1c232, 0x1cef4, 0x1c672, 0x1cef2, 0x18474, 0x18cf4,
1326
                    0x18472, 0x19df4, 0x18cf2, 0x19df2, 0x108f4, 0x119f4, 0x108f2, 0x13bf4,
1327
                    0x119f2, 0x13bf2, 0x17af0, 0x1bd7c, 0x17a78, 0x1bd3e, 0x17a3c, 0x17a1e,
1328
                    0x1f9ca, 0x1397c, 0x1fbda, 0x17b7c, 0x1393e, 0x17b3e, 0x1f18a, 0x1f39a,
1329
                    0x1f7ba, 0x1e10a, 0x1e31a, 0x1e73a, 0x1ef7a, 0x1c21a, 0x1c63a, 0x1ce7a,
1330
                    0x1defa, 0x1843a, 0x18c7a, 0x19cfa, 0x1bdfa, 0x1087a, 0x118fa, 0x139fa,
1331
                    0x17978, 0x1bcbe, 0x1793c, 0x1791e, 0x138be, 0x179be, 0x178bc, 0x1789e,
1332
                    0x1785e, 0x1e0a8, 0x1e0a4, 0x1e0a2, 0x1c168, 0x1e0b6, 0x1c164, 0x1c162,
1333
                    0x182e8, 0x1c176, 0x182e4, 0x182e2, 0x105e8, 0x182f6, 0x105e4, 0x105e2,
1334
                    0x105f6, 0x1f0d4, 0x10d7e, 0x1f0d2, 0x1e094, 0x1e1b4, 0x1e092, 0x1e1b2,
1335
                    0x1c134, 0x1c374, 0x1c132, 0x1c372, 0x18274, 0x186f4, 0x18272, 0x186f2,
1336
                    0x104f4, 0x10df4, 0x104f2, 0x10df2, 0x1f8ea, 0x11d7c, 0x11d3e, 0x1f0ca,
1337
                    0x1f1da, 0x1e08a, 0x1e19a, 0x1e3ba, 0x1c11a, 0x1c33a, 0x1c77a, 0x1823a,
1338
                    0x1867a, 0x18efa, 0x1047a, 0x10cfa, 0x11dfa, 0x13d78, 0x19ebe, 0x13d3c,
1339
                    0x13d1e, 0x11cbe, 0x13dbe, 0x17d70, 0x1bebc, 0x17d38, 0x1be9e, 0x17d1c,
1340
                    0x17d0e, 0x13cbc, 0x17dbc, 0x13c9e, 0x17d9e, 0x17cb8, 0x1be5e, 0x17c9c,
1341
                    0x17c8e, 0x13c5e, 0x17cde, 0x17c5c, 0x17c4e, 0x17c2e, 0x1c0b4, 0x1c0b2,
1342
                    0x18174, 0x18172, 0x102f4, 0x102f2, 0x1e0da, 0x1c09a, 0x1c1ba, 0x1813a,
1343
                    0x1837a, 0x1027a, 0x106fa, 0x10ebe, 0x11ebc, 0x11e9e, 0x13eb8, 0x19f5e,
1344
                    0x13e9c, 0x13e8e, 0x11e5e, 0x13ede, 0x17eb0, 0x1bf5c, 0x17e98, 0x1bf4e,
1345
                    0x17e8c, 0x17e86, 0x13e5c, 0x17edc, 0x13e4e, 0x17ece, 0x17e58, 0x1bf2e,
1346
                    0x17e4c, 0x17e46, 0x13e2e, 0x17e6e, 0x17e2c, 0x17e26, 0x10f5e, 0x11f5c,
1347
                    0x11f4e, 0x13f58, 0x19fae, 0x13f4c, 0x13f46, 0x11f2e, 0x13f6e, 0x13f2c,
1348
                    0x13f26
1349
            }, {
1350
                    0x1abe0, 0x1d5f8, 0x153c0, 0x1a9f0, 0x1d4fc, 0x151e0, 0x1a8f8, 0x1d47e,
1351
                    0x150f0, 0x1a87c, 0x15078, 0x1fad0, 0x15be0, 0x1adf8, 0x1fac8, 0x159f0,
1352
                    0x1acfc, 0x1fac4, 0x158f8, 0x1ac7e, 0x1fac2, 0x1587c, 0x1f5d0, 0x1faec,
1353
                    0x15df8, 0x1f5c8, 0x1fae6, 0x15cfc, 0x1f5c4, 0x15c7e, 0x1f5c2, 0x1ebd0,
1354
                    0x1f5ec, 0x1ebc8, 0x1f5e6, 0x1ebc4, 0x1ebc2, 0x1d7d0, 0x1ebec, 0x1d7c8,
1355
                    0x1ebe6, 0x1d7c4, 0x1d7c2, 0x1afd0, 0x1d7ec, 0x1afc8, 0x1d7e6, 0x1afc4,
1356
                    0x14bc0, 0x1a5f0, 0x1d2fc, 0x149e0, 0x1a4f8, 0x1d27e, 0x148f0, 0x1a47c,
1357
                    0x14878, 0x1a43e, 0x1483c, 0x1fa68, 0x14df0, 0x1a6fc, 0x1fa64, 0x14cf8,
1358
                    0x1a67e, 0x1fa62, 0x14c7c, 0x14c3e, 0x1f4e8, 0x1fa76, 0x14efc, 0x1f4e4,
1359
                    0x14e7e, 0x1f4e2, 0x1e9e8, 0x1f4f6, 0x1e9e4, 0x1e9e2, 0x1d3e8, 0x1e9f6,
1360
                    0x1d3e4, 0x1d3e2, 0x1a7e8, 0x1d3f6, 0x1a7e4, 0x1a7e2, 0x145e0, 0x1a2f8,
1361
                    0x1d17e, 0x144f0, 0x1a27c, 0x14478, 0x1a23e, 0x1443c, 0x1441e, 0x1fa34,
1362
                    0x146f8, 0x1a37e, 0x1fa32, 0x1467c, 0x1463e, 0x1f474, 0x1477e, 0x1f472,
1363
                    0x1e8f4, 0x1e8f2, 0x1d1f4, 0x1d1f2, 0x1a3f4, 0x1a3f2, 0x142f0, 0x1a17c,
1364
                    0x14278, 0x1a13e, 0x1423c, 0x1421e, 0x1fa1a, 0x1437c, 0x1433e, 0x1f43a,
1365
                    0x1e87a, 0x1d0fa, 0x14178, 0x1a0be, 0x1413c, 0x1411e, 0x141be, 0x140bc,
1366
                    0x1409e, 0x12bc0, 0x195f0, 0x1cafc, 0x129e0, 0x194f8, 0x1ca7e, 0x128f0,
1367
                    0x1947c, 0x12878, 0x1943e, 0x1283c, 0x1f968, 0x12df0, 0x196fc, 0x1f964,
1368
                    0x12cf8, 0x1967e, 0x1f962, 0x12c7c, 0x12c3e, 0x1f2e8, 0x1f976, 0x12efc,
1369
                    0x1f2e4, 0x12e7e, 0x1f2e2, 0x1e5e8, 0x1f2f6, 0x1e5e4, 0x1e5e2, 0x1cbe8,
1370
                    0x1e5f6, 0x1cbe4, 0x1cbe2, 0x197e8, 0x1cbf6, 0x197e4, 0x197e2, 0x1b5e0,
1371
                    0x1daf8, 0x1ed7e, 0x169c0, 0x1b4f0, 0x1da7c, 0x168e0, 0x1b478, 0x1da3e,
1372
                    0x16870, 0x1b43c, 0x16838, 0x1b41e, 0x1681c, 0x125e0, 0x192f8, 0x1c97e,
1373
                    0x16de0, 0x124f0, 0x1927c, 0x16cf0, 0x1b67c, 0x1923e, 0x16c78, 0x1243c,
1374
                    0x16c3c, 0x1241e, 0x16c1e, 0x1f934, 0x126f8, 0x1937e, 0x1fb74, 0x1f932,
1375
                    0x16ef8, 0x1267c, 0x1fb72, 0x16e7c, 0x1263e, 0x16e3e, 0x1f274, 0x1277e,
1376
                    0x1f6f4, 0x1f272, 0x16f7e, 0x1f6f2, 0x1e4f4, 0x1edf4, 0x1e4f2, 0x1edf2,
1377
                    0x1c9f4, 0x1dbf4, 0x1c9f2, 0x1dbf2, 0x193f4, 0x193f2, 0x165c0, 0x1b2f0,
1378
                    0x1d97c, 0x164e0, 0x1b278, 0x1d93e, 0x16470, 0x1b23c, 0x16438, 0x1b21e,
1379
                    0x1641c, 0x1640e, 0x122f0, 0x1917c, 0x166f0, 0x12278, 0x1913e, 0x16678,
1380
                    0x1b33e, 0x1663c, 0x1221e, 0x1661e, 0x1f91a, 0x1237c, 0x1fb3a, 0x1677c,
1381
                    0x1233e, 0x1673e, 0x1f23a, 0x1f67a, 0x1e47a, 0x1ecfa, 0x1c8fa, 0x1d9fa,
1382
                    0x191fa, 0x162e0, 0x1b178, 0x1d8be, 0x16270, 0x1b13c, 0x16238, 0x1b11e,
1383
                    0x1621c, 0x1620e, 0x12178, 0x190be, 0x16378, 0x1213c, 0x1633c, 0x1211e,
1384
                    0x1631e, 0x121be, 0x163be, 0x16170, 0x1b0bc, 0x16138, 0x1b09e, 0x1611c,
1385
                    0x1610e, 0x120bc, 0x161bc, 0x1209e, 0x1619e, 0x160b8, 0x1b05e, 0x1609c,
1386
                    0x1608e, 0x1205e, 0x160de, 0x1605c, 0x1604e, 0x115e0, 0x18af8, 0x1c57e,
1387
                    0x114f0, 0x18a7c, 0x11478, 0x18a3e, 0x1143c, 0x1141e, 0x1f8b4, 0x116f8,
1388
                    0x18b7e, 0x1f8b2, 0x1167c, 0x1163e, 0x1f174, 0x1177e, 0x1f172, 0x1e2f4,
1389
                    0x1e2f2, 0x1c5f4, 0x1c5f2, 0x18bf4, 0x18bf2, 0x135c0, 0x19af0, 0x1cd7c,
1390
                    0x134e0, 0x19a78, 0x1cd3e, 0x13470, 0x19a3c, 0x13438, 0x19a1e, 0x1341c,
1391
                    0x1340e, 0x112f0, 0x1897c, 0x136f0, 0x11278, 0x1893e, 0x13678, 0x19b3e,
1392
                    0x1363c, 0x1121e, 0x1361e, 0x1f89a, 0x1137c, 0x1f9ba, 0x1377c, 0x1133e,
1393
                    0x1373e, 0x1f13a, 0x1f37a, 0x1e27a, 0x1e6fa, 0x1c4fa, 0x1cdfa, 0x189fa,
1394
                    0x1bae0, 0x1dd78, 0x1eebe, 0x174c0, 0x1ba70, 0x1dd3c, 0x17460, 0x1ba38,
1395
                    0x1dd1e, 0x17430, 0x1ba1c, 0x17418, 0x1ba0e, 0x1740c, 0x132e0, 0x19978,
1396
                    0x1ccbe, 0x176e0, 0x13270, 0x1993c, 0x17670, 0x1bb3c, 0x1991e, 0x17638,
1397
                    0x1321c, 0x1761c, 0x1320e, 0x1760e, 0x11178, 0x188be, 0x13378, 0x1113c,
1398
                    0x17778, 0x1333c, 0x1111e, 0x1773c, 0x1331e, 0x1771e, 0x111be, 0x133be,
1399
                    0x177be, 0x172c0, 0x1b970, 0x1dcbc, 0x17260, 0x1b938, 0x1dc9e, 0x17230,
1400
                    0x1b91c, 0x17218, 0x1b90e, 0x1720c, 0x17206, 0x13170, 0x198bc, 0x17370,
1401
                    0x13138, 0x1989e, 0x17338, 0x1b99e, 0x1731c, 0x1310e, 0x1730e, 0x110bc,
1402
                    0x131bc, 0x1109e, 0x173bc, 0x1319e, 0x1739e, 0x17160, 0x1b8b8, 0x1dc5e,
1403
                    0x17130, 0x1b89c, 0x17118, 0x1b88e, 0x1710c, 0x17106, 0x130b8, 0x1985e,
1404
                    0x171b8, 0x1309c, 0x1719c, 0x1308e, 0x1718e, 0x1105e, 0x130de, 0x171de,
1405
                    0x170b0, 0x1b85c, 0x17098, 0x1b84e, 0x1708c, 0x17086, 0x1305c, 0x170dc,
1406
                    0x1304e, 0x170ce, 0x17058, 0x1b82e, 0x1704c, 0x17046, 0x1302e, 0x1706e,
1407
                    0x1702c, 0x17026, 0x10af0, 0x1857c, 0x10a78, 0x1853e, 0x10a3c, 0x10a1e,
1408
                    0x10b7c, 0x10b3e, 0x1f0ba, 0x1e17a, 0x1c2fa, 0x185fa, 0x11ae0, 0x18d78,
1409
                    0x1c6be, 0x11a70, 0x18d3c, 0x11a38, 0x18d1e, 0x11a1c, 0x11a0e, 0x10978,
1410
                    0x184be, 0x11b78, 0x1093c, 0x11b3c, 0x1091e, 0x11b1e, 0x109be, 0x11bbe,
1411
                    0x13ac0, 0x19d70, 0x1cebc, 0x13a60, 0x19d38, 0x1ce9e, 0x13a30, 0x19d1c,
1412
                    0x13a18, 0x19d0e, 0x13a0c, 0x13a06, 0x11970, 0x18cbc, 0x13b70, 0x11938,
1413
                    0x18c9e, 0x13b38, 0x1191c, 0x13b1c, 0x1190e, 0x13b0e, 0x108bc, 0x119bc,
1414
                    0x1089e, 0x13bbc, 0x1199e, 0x13b9e, 0x1bd60, 0x1deb8, 0x1ef5e, 0x17a40,
1415
                    0x1bd30, 0x1de9c, 0x17a20, 0x1bd18, 0x1de8e, 0x17a10, 0x1bd0c, 0x17a08,
1416
                    0x1bd06, 0x17a04, 0x13960, 0x19cb8, 0x1ce5e, 0x17b60, 0x13930, 0x19c9c,
1417
                    0x17b30, 0x1bd9c, 0x19c8e, 0x17b18, 0x1390c, 0x17b0c, 0x13906, 0x17b06,
1418
                    0x118b8, 0x18c5e, 0x139b8, 0x1189c, 0x17bb8, 0x1399c, 0x1188e, 0x17b9c,
1419
                    0x1398e, 0x17b8e, 0x1085e, 0x118de, 0x139de, 0x17bde, 0x17940, 0x1bcb0,
1420
                    0x1de5c, 0x17920, 0x1bc98, 0x1de4e, 0x17910, 0x1bc8c, 0x17908, 0x1bc86,
1421
                    0x17904, 0x17902, 0x138b0, 0x19c5c, 0x179b0, 0x13898, 0x19c4e, 0x17998,
1422
                    0x1bcce, 0x1798c, 0x13886, 0x17986, 0x1185c, 0x138dc, 0x1184e, 0x179dc,
1423
                    0x138ce, 0x179ce, 0x178a0, 0x1bc58, 0x1de2e, 0x17890, 0x1bc4c, 0x17888,
1424
                    0x1bc46, 0x17884, 0x17882, 0x13858, 0x19c2e, 0x178d8, 0x1384c, 0x178cc,
1425
                    0x13846, 0x178c6, 0x1182e, 0x1386e, 0x178ee, 0x17850, 0x1bc2c, 0x17848,
1426
                    0x1bc26, 0x17844, 0x17842, 0x1382c, 0x1786c, 0x13826, 0x17866, 0x17828,
1427
                    0x1bc16, 0x17824, 0x17822, 0x13816, 0x17836, 0x10578, 0x182be, 0x1053c,
1428
                    0x1051e, 0x105be, 0x10d70, 0x186bc, 0x10d38, 0x1869e, 0x10d1c, 0x10d0e,
1429
                    0x104bc, 0x10dbc, 0x1049e, 0x10d9e, 0x11d60, 0x18eb8, 0x1c75e, 0x11d30,
1430
                    0x18e9c, 0x11d18, 0x18e8e, 0x11d0c, 0x11d06, 0x10cb8, 0x1865e, 0x11db8,
1431
                    0x10c9c, 0x11d9c, 0x10c8e, 0x11d8e, 0x1045e, 0x10cde, 0x11dde, 0x13d40,
1432
                    0x19eb0, 0x1cf5c, 0x13d20, 0x19e98, 0x1cf4e, 0x13d10, 0x19e8c, 0x13d08,
1433
                    0x19e86, 0x13d04, 0x13d02, 0x11cb0, 0x18e5c, 0x13db0, 0x11c98, 0x18e4e,
1434
                    0x13d98, 0x19ece, 0x13d8c, 0x11c86, 0x13d86, 0x10c5c, 0x11cdc, 0x10c4e,
1435
                    0x13ddc, 0x11cce, 0x13dce, 0x1bea0, 0x1df58, 0x1efae, 0x1be90, 0x1df4c,
1436
                    0x1be88, 0x1df46, 0x1be84, 0x1be82, 0x13ca0, 0x19e58, 0x1cf2e, 0x17da0,
1437
                    0x13c90, 0x19e4c, 0x17d90, 0x1becc, 0x19e46, 0x17d88, 0x13c84, 0x17d84,
1438
                    0x13c82, 0x17d82, 0x11c58, 0x18e2e, 0x13cd8, 0x11c4c, 0x17dd8, 0x13ccc,
1439
                    0x11c46, 0x17dcc, 0x13cc6, 0x17dc6, 0x10c2e, 0x11c6e, 0x13cee, 0x17dee,
1440
                    0x1be50, 0x1df2c, 0x1be48, 0x1df26, 0x1be44, 0x1be42, 0x13c50, 0x19e2c,
1441
                    0x17cd0, 0x13c48, 0x19e26, 0x17cc8, 0x1be66, 0x17cc4, 0x13c42, 0x17cc2,
1442
                    0x11c2c, 0x13c6c, 0x11c26, 0x17cec, 0x13c66, 0x17ce6, 0x1be28, 0x1df16,
1443
                    0x1be24, 0x1be22, 0x13c28, 0x19e16, 0x17c68, 0x13c24, 0x17c64, 0x13c22,
1444
                    0x17c62, 0x11c16, 0x13c36, 0x17c76, 0x1be14, 0x1be12, 0x13c14, 0x17c34,
1445
                    0x13c12, 0x17c32, 0x102bc, 0x1029e, 0x106b8, 0x1835e, 0x1069c, 0x1068e,
1446
                    0x1025e, 0x106de, 0x10eb0, 0x1875c, 0x10e98, 0x1874e, 0x10e8c, 0x10e86,
1447
                    0x1065c, 0x10edc, 0x1064e, 0x10ece, 0x11ea0, 0x18f58, 0x1c7ae, 0x11e90,
1448
                    0x18f4c, 0x11e88, 0x18f46, 0x11e84, 0x11e82, 0x10e58, 0x1872e, 0x11ed8,
1449
                    0x18f6e, 0x11ecc, 0x10e46, 0x11ec6, 0x1062e, 0x10e6e, 0x11eee, 0x19f50,
1450
                    0x1cfac, 0x19f48, 0x1cfa6, 0x19f44, 0x19f42, 0x11e50, 0x18f2c, 0x13ed0,
1451
                    0x19f6c, 0x18f26, 0x13ec8, 0x11e44, 0x13ec4, 0x11e42, 0x13ec2, 0x10e2c,
1452
                    0x11e6c, 0x10e26, 0x13eec, 0x11e66, 0x13ee6, 0x1dfa8, 0x1efd6, 0x1dfa4,
1453
                    0x1dfa2, 0x19f28, 0x1cf96, 0x1bf68, 0x19f24, 0x1bf64, 0x19f22, 0x1bf62,
1454
                    0x11e28, 0x18f16, 0x13e68, 0x11e24, 0x17ee8, 0x13e64, 0x11e22, 0x17ee4,
1455
                    0x13e62, 0x17ee2, 0x10e16, 0x11e36, 0x13e76, 0x17ef6, 0x1df94, 0x1df92,
1456
                    0x19f14, 0x1bf34, 0x19f12, 0x1bf32, 0x11e14, 0x13e34, 0x11e12, 0x17e74,
1457
                    0x13e32, 0x17e72, 0x1df8a, 0x19f0a, 0x1bf1a, 0x11e0a, 0x13e1a, 0x17e3a,
1458
                    0x1035c, 0x1034e, 0x10758, 0x183ae, 0x1074c, 0x10746, 0x1032e, 0x1076e,
1459
                    0x10f50, 0x187ac, 0x10f48, 0x187a6, 0x10f44, 0x10f42, 0x1072c, 0x10f6c,
1460
                    0x10726, 0x10f66, 0x18fa8, 0x1c7d6, 0x18fa4, 0x18fa2, 0x10f28, 0x18796,
1461
                    0x11f68, 0x18fb6, 0x11f64, 0x10f22, 0x11f62, 0x10716, 0x10f36, 0x11f76,
1462
                    0x1cfd4, 0x1cfd2, 0x18f94, 0x19fb4, 0x18f92, 0x19fb2, 0x10f14, 0x11f34,
1463
                    0x10f12, 0x13f74, 0x11f32, 0x13f72, 0x1cfca, 0x18f8a, 0x19f9a, 0x10f0a,
1464
                    0x11f1a, 0x13f3a, 0x103ac, 0x103a6, 0x107a8, 0x183d6, 0x107a4, 0x107a2,
1465
                    0x10396, 0x107b6, 0x187d4, 0x187d2, 0x10794, 0x10fb4, 0x10792, 0x10fb2,
1466
                    0x1c7ea
1467
            }};
1468
1469
    private static final int[][] ERROR_LEVEL =
1470
            {{
1471
                    27, 917
1472
            }, {
1473
                    522, 568, 723, 809
1474
            }, {
1475
                    237, 308, 436, 284, 646, 653, 428, 379
1476
            }, {
1477
                    274, 562, 232, 755, 599, 524, 801, 132, 295, 116, 442, 428, 295, 42, 176, 65
1478
            }, {
1479
                    361, 575, 922, 525, 176, 586, 640, 321, 536, 742, 677, 742, 687, 284, 193, 517,
1480
                    273, 494, 263, 147, 593, 800, 571, 320, 803, 133, 231, 390, 685, 330, 63, 410
1481
            }, {
1482
                    539, 422, 6, 93, 862, 771, 453, 106, 610, 287, 107, 505, 733, 877, 381, 612,
1483
                    723, 476, 462, 172, 430, 609, 858, 822, 543, 376, 511, 400, 672, 762, 283, 184,
1484
                    440, 35, 519, 31, 460, 594, 225, 535, 517, 352, 605, 158, 651, 201, 488, 502,
1485
                    648, 733, 717, 83, 404, 97, 280, 771, 840, 629, 4, 381, 843, 623, 264, 543
1486
            }, {
1487
                    521, 310, 864, 547, 858, 580, 296, 379, 53, 779, 897, 444, 400, 925, 749, 415,
1488
                    822, 93, 217, 208, 928, 244, 583, 620, 246, 148, 447, 631, 292, 908, 490, 704,
1489
                    516, 258, 457, 907, 594, 723, 674, 292, 272, 96, 684, 432, 686, 606, 860, 569,
1490
                    193, 219, 129, 186, 236, 287, 192, 775, 278, 173, 40, 379, 712, 463, 646, 776,
1491
                    171, 491, 297, 763, 156, 732, 95, 270, 447, 90, 507, 48, 228, 821, 808, 898,
1492
                    784, 663, 627, 378, 382, 262, 380, 602, 754, 336, 89, 614, 87, 432, 670, 616,
1493
                    157, 374, 242, 726, 600, 269, 375, 898, 845, 454, 354, 130, 814, 587, 804, 34,
1494
                    211, 330, 539, 297, 827, 865, 37, 517, 834, 315, 550, 86, 801, 4, 108, 539
1495
            }, {
1496
                    524, 894, 75, 766, 882, 857, 74, 204, 82, 586, 708, 250, 905, 786, 138, 720,
1497
                    858, 194, 311, 913, 275, 190, 375, 850, 438, 733, 194, 280, 201, 280, 828, 757,
1498
                    710, 814, 919, 89, 68, 569, 11, 204, 796, 605, 540, 913, 801, 700, 799, 137,
1499
                    439, 418, 592, 668, 353, 859, 370, 694, 325, 240, 216, 257, 284, 549, 209, 884,
1500
                    315, 70, 329, 793, 490, 274, 877, 162, 749, 812, 684, 461, 334, 376, 849, 521,
1501
                    307, 291, 803, 712, 19, 358, 399, 908, 103, 511, 51, 8, 517, 225, 289, 470,
1502
                    637, 731, 66, 255, 917, 269, 463, 830, 730, 433, 848, 585, 136, 538, 906, 90,
1503
                    2, 290, 743, 199, 655, 903, 329, 49, 802, 580, 355, 588, 188, 462, 10, 134,
1504
                    628, 320, 479, 130, 739, 71, 263, 318, 374, 601, 192, 605, 142, 673, 687, 234,
1505
                    722, 384, 177, 752, 607, 640, 455, 193, 689, 707, 805, 641, 48, 60, 732, 621,
1506
                    895, 544, 261, 852, 655, 309, 697, 755, 756, 60, 231, 773, 434, 421, 726, 528,
1507
                    503, 118, 49, 795, 32, 144, 500, 238, 836, 394, 280, 566, 319, 9, 647, 550,
1508
                    73, 914, 342, 126, 32, 681, 331, 792, 620, 60, 609, 441, 180, 791, 893, 754,
1509
                    605, 383, 228, 749, 760, 213, 54, 297, 134, 54, 834, 299, 922, 191, 910, 532,
1510
                    609, 829, 189, 20, 167, 29, 872, 449, 83, 402, 41, 656, 505, 579, 481, 173,
1511
                    404, 251, 688, 95, 497, 555, 642, 543, 307, 159, 924, 558, 648, 55, 497, 10
1512
            }, {
1513
                    352, 77, 373, 504, 35, 599, 428, 207, 409, 574, 118, 498, 285, 380, 350, 492,
1514
                    197, 265, 920, 155, 914, 299, 229, 643, 294, 871, 306, 88, 87, 193, 352, 781,
1515
                    846, 75, 327, 520, 435, 543, 203, 666, 249, 346, 781, 621, 640, 268, 794, 534,
1516
                    539, 781, 408, 390, 644, 102, 476, 499, 290, 632, 545, 37, 858, 916, 552, 41,
1517
                    542, 289, 122, 272, 383, 800, 485, 98, 752, 472, 761, 107, 784, 860, 658, 741,
1518
                    290, 204, 681, 407, 855, 85, 99, 62, 482, 180, 20, 297, 451, 593, 913, 142,
1519
                    808, 684, 287, 536, 561, 76, 653, 899, 729, 567, 744, 390, 513, 192, 516, 258,
1520
                    240, 518, 794, 395, 768, 848, 51, 610, 384, 168, 190, 826, 328, 596, 786, 303,
1521
                    570, 381, 415, 641, 156, 237, 151, 429, 531, 207, 676, 710, 89, 168, 304, 402,
1522
                    40, 708, 575, 162, 864, 229, 65, 861, 841, 512, 164, 477, 221, 92, 358, 785,
1523
                    288, 357, 850, 836, 827, 736, 707, 94, 8, 494, 114, 521, 2, 499, 851, 543,
1524
                    152, 729, 771, 95, 248, 361, 578, 323, 856, 797, 289, 51, 684, 466, 533, 820,
1525
                    669, 45, 902, 452, 167, 342, 244, 173, 35, 463, 651, 51, 699, 591, 452, 578,
1526
                    37, 124, 298, 332, 552, 43, 427, 119, 662, 777, 475, 850, 764, 364, 578, 911,
1527
                    283, 711, 472, 420, 245, 288, 594, 394, 511, 327, 589, 777, 699, 688, 43, 408,
1528
                    842, 383, 721, 521, 560, 644, 714, 559, 62, 145, 873, 663, 713, 159, 672, 729,
1529
                    624, 59, 193, 417, 158, 209, 563, 564, 343, 693, 109, 608, 563, 365, 181, 772,
1530
                    677, 310, 248, 353, 708, 410, 579, 870, 617, 841, 632, 860, 289, 536, 35, 777,
1531
                    618, 586, 424, 833, 77, 597, 346, 269, 757, 632, 695, 751, 331, 247, 184, 45,
1532
                    787, 680, 18, 66, 407, 369, 54, 492, 228, 613, 830, 922, 437, 519, 644, 905,
1533
                    789, 420, 305, 441, 207, 300, 892, 827, 141, 537, 381, 662, 513, 56, 252, 341,
1534
                    242, 797, 838, 837, 720, 224, 307, 631, 61, 87, 560, 310, 756, 665, 397, 808,
1535
                    851, 309, 473, 795, 378, 31, 647, 915, 459, 806, 590, 731, 425, 216, 548, 249,
1536
                    321, 881, 699, 535, 673, 782, 210, 815, 905, 303, 843, 922, 281, 73, 469, 791,
1537
                    660, 162, 498, 308, 155, 422, 907, 817, 187, 62, 16, 425, 535, 336, 286, 437,
1538
                    375, 273, 610, 296, 183, 923, 116, 667, 751, 353, 62, 366, 691, 379, 687, 842,
1539
                    37, 357, 720, 742, 330, 5, 39, 923, 311, 424, 242, 749, 321, 54, 669, 316,
1540
                    342, 299, 534, 105, 667, 488, 640, 672, 576, 540, 316, 486, 721, 610, 46, 656,
1541
                    447, 171, 616, 464, 190, 531, 297, 321, 762, 752, 533, 175, 134, 14, 381, 433,
1542
                    717, 45, 111, 20, 596, 284, 736, 138, 646, 411, 877, 669, 141, 919, 45, 780,
1543
                    407, 164, 332, 899, 165, 726, 600, 325, 498, 655, 357, 752, 768, 223, 849, 647,
1544
                    63, 310, 863, 251, 366, 304, 282, 738, 675, 410, 389, 244, 31, 121, 303, 263
1545
            }};
1546
    
1547
    /** Holds value of property outBits. */
1548
    private byte[] outBits;
1549
    
1550
    /** Holds value of property bitColumns. */
1551
    private int bitColumns;
1552
    
1553
    /** Holds value of property codeRows. */
1554
    private int codeRows;
1555
    
1556
    /** Holds value of property codeColumns. */
1557
    private int codeColumns;
1558
    
1559
    /** Holds value of property codewords. */
1560
    private int[] codewords = new int[MAX_DATA_CODEWORDS + 2];
1561
    
1562
    /** Holds value of property lenCodewords. */
1563
    private int lenCodewords;
1564
    
1565
    /** Holds value of property errorLevel. */
1566
    private int errorLevel;
1567
    
1568
    /** Holds value of property text. */
1569
    private byte[] text;
1570
    
1571
    /** Holds value of property options. */
1572
    private int options;
1573
    
1574
    /** Holds value of property aspectRatio. */
1575
    private float aspectRatio;
1576
    
1577
    /** Holds value of property yHeight. */
1578
    private float yHeight;
1579
    
1580
    protected static class Segment {
1581
        public char type;
1582
        public int start;
1583
        public int end;
1584
        
1585
        public Segment(char type, int start, int end) {
1586
            this.type = type;
1587
            this.start = start;
1588
            this.end = end;
1589
        }
1590
    }
1591
    
1592
    protected static class SegmentList {
1593
        protected ArrayList list = new ArrayList();
1594
        
1595
        public void add(char type, int start, int end) {
1596
            list.add(new Segment(type, start, end));
1597
        }
1598
1599
        public Segment get(int idx) {
1600 4 1. get : changed conditional boundary → NO_COVERAGE
2. get : changed conditional boundary → NO_COVERAGE
3. get : negated conditional → NO_COVERAGE
4. get : negated conditional → NO_COVERAGE
            if (idx < 0 || idx >= list.size())
1601 1 1. get : mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417$SegmentList::get to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
                return null;
1602 1 1. get : mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417$SegmentList::get to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return (Segment)list.get(idx);
1603
        }
1604
1605
        public void remove(int idx) {
1606 4 1. remove : changed conditional boundary → NO_COVERAGE
2. remove : changed conditional boundary → NO_COVERAGE
3. remove : negated conditional → NO_COVERAGE
4. remove : negated conditional → NO_COVERAGE
            if (idx < 0 || idx >= list.size())
1607
                return;
1608
            list.remove(idx);
1609
        }
1610
        
1611
        public int size() {
1612
            return list.size();
1613
        }
1614
    }
1615
}

Mutations

118

1.1
Location :
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::setDefaultParameters → NO_COVERAGE

148

1.1
Location : checkSegmentType
Killed by : none
negated conditional → NO_COVERAGE

149

1.1
Location : checkSegmentType
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

150

1.1
Location : checkSegmentType
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : checkSegmentType
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

154

1.1
Location : getSegmentLength
Killed by : none
negated conditional → NO_COVERAGE

155

1.1
Location : getSegmentLength
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

156

1.1
Location : getSegmentLength
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : getSegmentLength
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

171

1.1
Location : outCodeword17
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

172

1.1
Location : outCodeword17
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

2.2
Location : outCodeword17
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

173

1.1
Location : outCodeword17
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : outCodeword17
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : outCodeword17
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

4.4
Location : outCodeword17
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

174

1.1
Location : outCodeword17
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : outCodeword17
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : outCodeword17
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

4.4
Location : outCodeword17
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

175

1.1
Location : outCodeword17
Killed by : none
Replaced Shift Left with Shift Right → NO_COVERAGE

176

1.1
Location : outCodeword17
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : outCodeword17
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

3.3
Location : outCodeword17
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

177

1.1
Location : outCodeword17
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

181

1.1
Location : outCodeword18
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

182

1.1
Location : outCodeword18
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

2.2
Location : outCodeword18
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

183

1.1
Location : outCodeword18
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : outCodeword18
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : outCodeword18
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

4.4
Location : outCodeword18
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

184

1.1
Location : outCodeword18
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : outCodeword18
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : outCodeword18
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

4.4
Location : outCodeword18
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

185

1.1
Location : outCodeword18
Killed by : none
Replaced Shift Left with Shift Right → NO_COVERAGE

186

1.1
Location : outCodeword18
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : outCodeword18
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

3.3
Location : outCodeword18
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

187

1.1
Location : outCodeword18
Killed by : none
negated conditional → NO_COVERAGE

188

1.1
Location : outCodeword18
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : outCodeword18
Killed by : none
Replaced bitwise OR with AND → NO_COVERAGE

189

1.1
Location : outCodeword18
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

197

1.1
Location : outStopPattern
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword18 → NO_COVERAGE

201

1.1
Location : outStartPattern
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword17 → NO_COVERAGE

206

1.1
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

207

1.1
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

209

1.1
Location : outPaintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
negated conditional → NO_COVERAGE

210

1.1
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

5.5
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

211

1.1
Location : outPaintCode
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

213

1.1
Location : outPaintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outStartPattern → NO_COVERAGE

217

1.1
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

5.5
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

220

1.1
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

5.5
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

6.6
Location : outPaintCode
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

7.7
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

223

1.1
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

226

1.1
Location : outPaintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword → NO_COVERAGE

228

1.1
Location : outPaintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
negated conditional → NO_COVERAGE

229

1.1
Location : outPaintCode
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword → NO_COVERAGE

234

1.1
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

237

1.1
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

5.5
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

240

1.1
Location : outPaintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : outPaintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

4.4
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

5.5
Location : outPaintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

6.6
Location : outPaintCode
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

7.7
Location : outPaintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

243

1.1
Location : outPaintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outCodeword → NO_COVERAGE

244

1.1
Location : outPaintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outStopPattern → NO_COVERAGE

246

1.1
Location : outPaintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
negated conditional → NO_COVERAGE

247

1.1
Location : outPaintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : outPaintCode
Killed by : none
negated conditional → NO_COVERAGE

248

1.1
Location : outPaintCode
Killed by : none
Replaced XOR with AND → NO_COVERAGE

253

1.1
Location : calculateErrorCorrection
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

256

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced Shift Left with Shift Right → NO_COVERAGE

257

1.1
Location : calculateErrorCorrection
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

258

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

259

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

260

1.1
Location : calculateErrorCorrection
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

261

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

262

1.1
Location : calculateErrorCorrection
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

263

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

264

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

265

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

5.5
Location : calculateErrorCorrection
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

6.6
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

268

1.1
Location : calculateErrorCorrection
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
negated conditional → NO_COVERAGE

269

1.1
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : calculateErrorCorrection
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : calculateErrorCorrection
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

4.4
Location : calculateErrorCorrection
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

273

1.1
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

274

1.1
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

275

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

276

1.1
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

277

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

278

1.1
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

279

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

280

1.1
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

281

1.1
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

284

1.1
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

285

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

286

1.1
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

287

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

288

1.1
Location : getTextTypeAndValue
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
negated conditional → NO_COVERAGE

289

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

290

1.1
Location : getTextTypeAndValue
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

294

1.1
Location : getTextTypeAndValue
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

305

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

306

1.1
Location : textCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

308

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

309

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

312

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

313

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

315

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

316

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

318

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

319

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

320

1.1
Location : textCompaction
Killed by : none
Changed increment from 2 to -2 → NO_COVERAGE

325

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

326

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

327

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

330

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

331

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

332

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

335

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

4.4
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

5.5
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

336

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

337

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

338

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

342

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

343

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

347

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

348

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

4.4
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

5.5
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

349

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

350

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

354

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

356

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

358

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

359

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

360

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

363

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

4.4
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

5.5
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

364

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

365

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

366

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

370

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

371

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

375

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

376

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

377

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

380

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

381

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

382

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

385

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

4.4
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

5.5
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

386

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

387

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

391

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

392

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

396

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

398

1.1
Location : textCompaction
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

402

1.1
Location : textCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

403

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

404

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

405

1.1
Location : textCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

410

1.1
Location : textCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

411

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

412

1.1
Location : textCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
negated conditional → NO_COVERAGE

413

1.1
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

414

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

417

1.1
Location : textCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : textCompaction
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

4.4
Location : textCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

421

1.1
Location : textCompaction
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::textCompaction → NO_COVERAGE

425

1.1
Location : basicNumberCompaction
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::basicNumberCompaction → NO_COVERAGE

430

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

432

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

433

1.1
Location : basicNumberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : basicNumberCompaction
Killed by : none
negated conditional → NO_COVERAGE

434

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

435

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

436

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

437

1.1
Location : basicNumberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : basicNumberCompaction
Killed by : none
negated conditional → NO_COVERAGE

439

1.1
Location : basicNumberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

3.3
Location : basicNumberCompaction
Killed by : none
negated conditional → NO_COVERAGE

440

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

442

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

444

1.1
Location : basicNumberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

3.3
Location : basicNumberCompaction
Killed by : none
negated conditional → NO_COVERAGE

445

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : basicNumberCompaction
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

5.5
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

446

1.1
Location : basicNumberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : basicNumberCompaction
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

452

1.1
Location : numberCompaction
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : numberCompaction
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

453

1.1
Location : numberCompaction
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

455

1.1
Location : numberCompaction
Killed by : none
negated conditional → NO_COVERAGE

458

1.1
Location : numberCompaction
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : numberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : numberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

459

1.1
Location : numberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : numberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : numberCompaction
Killed by : none
negated conditional → NO_COVERAGE

462

1.1
Location : numberCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

463

1.1
Location : numberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : numberCompaction
Killed by : none
Changed increment from 44 to -44 → NO_COVERAGE

3.3
Location : numberCompaction
Killed by : none
negated conditional → NO_COVERAGE

464

1.1
Location : numberCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : numberCompaction
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : numberCompaction
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

4.4
Location : numberCompaction
Killed by : none
negated conditional → NO_COVERAGE

465

1.1
Location : numberCompaction
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::basicNumberCompaction → NO_COVERAGE

470

1.1
Location : numberCompaction
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::numberCompaction → NO_COVERAGE

478

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

479

1.1
Location : byteCompaction6
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : byteCompaction6
Killed by : none
negated conditional → NO_COVERAGE

480

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

481

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

482

1.1
Location : byteCompaction6
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : byteCompaction6
Killed by : none
negated conditional → NO_COVERAGE

484

1.1
Location : byteCompaction6
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

3.3
Location : byteCompaction6
Killed by : none
negated conditional → NO_COVERAGE

485

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

487

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

3.3
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

489

1.1
Location : byteCompaction6
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

3.3
Location : byteCompaction6
Killed by : none
negated conditional → NO_COVERAGE

490

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

4.4
Location : byteCompaction6
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

5.5
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

491

1.1
Location : byteCompaction6
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : byteCompaction6
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

498

1.1
Location : byteCompaction
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : byteCompaction
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

4.4
Location : byteCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

499

1.1
Location : byteCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : byteCompaction
Killed by : none
negated conditional → NO_COVERAGE

502

1.1
Location : byteCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

503

1.1
Location : byteCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
Changed increment from 6 to -6 → NO_COVERAGE

3.3
Location : byteCompaction
Killed by : none
negated conditional → NO_COVERAGE

504

1.1
Location : byteCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : byteCompaction
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

4.4
Location : byteCompaction
Killed by : none
negated conditional → NO_COVERAGE

505

1.1
Location : byteCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
negated conditional → NO_COVERAGE

506

1.1
Location : byteCompaction
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
negated conditional → NO_COVERAGE

507

1.1
Location : byteCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : byteCompaction
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : byteCompaction
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

510

1.1
Location : byteCompaction
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::byteCompaction6 → NO_COVERAGE

527

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

528

1.1
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

531

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

532

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

533

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

534

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

536

1.1
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

539

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

540

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

541

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

542

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

6.6
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

7.7
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

543

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

544

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

545

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

6.6
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

7.7
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

546

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

547

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

552

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

554

1.1
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

559

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

561

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

562

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

563

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

6.6
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

7.7
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

564

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

565

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

566

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

6.6
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

7.7
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

567

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

568

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

573

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

575

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

576

1.1
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::add → NO_COVERAGE

579

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

581

1.1
Location : breakString
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

582

1.1
Location : breakString
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

583

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

584

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

585

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

587

1.1
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE

588

1.1
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE

595

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

597

1.1
Location : breakString
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

598

1.1
Location : breakString
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

599

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

601

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

604

1.1
Location : breakString
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE

605

1.1
Location : breakString
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

607

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

610

1.1
Location : breakString
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE

612

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

619

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

621

1.1
Location : breakString
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

622

1.1
Location : breakString
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

623

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

625

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

628

1.1
Location : breakString
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE

629

1.1
Location : breakString
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

631

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

634

1.1
Location : breakString
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : breakString
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417$SegmentList::remove → NO_COVERAGE

636

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

643

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

644

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

645

1.1
Location : breakString
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

646

1.1
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : breakString
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

649

1.1
Location : breakString
Killed by : none
negated conditional → NO_COVERAGE

656

1.1
Location : assemble
Killed by : none
negated conditional → NO_COVERAGE

659

1.1
Location : assemble
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : assemble
Killed by : none
negated conditional → NO_COVERAGE

663

1.1
Location : assemble
Killed by : none
negated conditional → NO_COVERAGE

664

1.1
Location : assemble
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

665

1.1
Location : assemble
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::textCompaction → NO_COVERAGE

668

1.1
Location : assemble
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

669

1.1
Location : assemble
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::numberCompaction → NO_COVERAGE

672

1.1
Location : assemble
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : assemble
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

3.3
Location : assemble
Killed by : none
negated conditional → NO_COVERAGE

673

1.1
Location : assemble
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::byteCompaction → NO_COVERAGE

678

1.1
Location : assemble
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : assemble
Killed by : none
negated conditional → NO_COVERAGE

679

1.1
Location : assemble
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::macroCodes → NO_COVERAGE

685

1.1
Location : macroCodes
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : macroCodes
Killed by : none
negated conditional → NO_COVERAGE

688

1.1
Location : macroCodes
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : macroCodes
Killed by : none
negated conditional → NO_COVERAGE

691

1.1
Location : macroCodes
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : macroCodes
Killed by : none
negated conditional → NO_COVERAGE

696

1.1
Location : macroCodes
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

697

1.1
Location : macroCodes
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::append → NO_COVERAGE

699

1.1
Location : macroCodes
Killed by : none
negated conditional → NO_COVERAGE

700

1.1
Location : macroCodes
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::append → NO_COVERAGE

703

1.1
Location : macroCodes
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : macroCodes
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : macroCodes
Killed by : none
negated conditional → NO_COVERAGE

704

1.1
Location : macroCodes
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

710

1.1
Location : append
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

712

1.1
Location : append
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : append
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : append
Killed by : none
negated conditional → NO_COVERAGE

717

1.1
Location : append
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::numberCompaction → NO_COVERAGE

722

1.1
Location : append
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::textCompaction → NO_COVERAGE

729

1.1
Location : maxPossibleErrorLevel
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : maxPossibleErrorLevel
Killed by : none
negated conditional → NO_COVERAGE

730

1.1
Location : maxPossibleErrorLevel
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : maxPossibleErrorLevel
Killed by : none
negated conditional → NO_COVERAGE

731

1.1
Location : maxPossibleErrorLevel
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

732

1.1
Location : maxPossibleErrorLevel
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

733

1.1
Location : maxPossibleErrorLevel
Killed by : none
Replaced Shift Right with Shift Left → NO_COVERAGE

735

1.1
Location : maxPossibleErrorLevel
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

739

1.1
Location : dumpList
Killed by : none
negated conditional → NO_COVERAGE

741

1.1
Location : dumpList
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : dumpList
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : dumpList
Killed by : none
negated conditional → NO_COVERAGE

745

1.1
Location : dumpList
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : dumpList
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : dumpList
Killed by : none
negated conditional → NO_COVERAGE

746

1.1
Location : dumpList
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : dumpList
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

747

1.1
Location : dumpList
Killed by : none
negated conditional → NO_COVERAGE

753

1.1
Location : dumpList
Killed by : none
removed call to java/io/PrintStream::println → NO_COVERAGE

758

1.1
Location : getMaxSquare
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getMaxSquare
Killed by : none
negated conditional → NO_COVERAGE

766

1.1
Location : getMaxSquare
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

772

1.1
Location : paintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

773

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

778

1.1
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

780

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

784

1.1
Location : paintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::breakString → NO_COVERAGE

786

1.1
Location : paintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::assemble → NO_COVERAGE

790

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

791

1.1
Location : paintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

792

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

794

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

796

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

801

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

803

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

805

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

807

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

809

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

811

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

813

1.1
Location : paintCode
Killed by : none
Replaced Shift Left with Shift Right → NO_COVERAGE

814

1.1
Location : paintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

816

1.1
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

817

1.1
Location : paintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

818

1.1
Location : paintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

819

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

822

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

823

1.1
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

827

1.1
Location : paintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

830

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

832

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

834

1.1
Location : paintCode
Killed by : none
Replaced float multiplication with division → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced float subtraction with addition → NO_COVERAGE

835

1.1
Location : paintCode
Killed by : none
removed negation → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced double multiplication with division → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
Replaced float multiplication with division → NO_COVERAGE

4.4
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

5.5
Location : paintCode
Killed by : none
Replaced float multiplication with division → NO_COVERAGE

6.6
Location : paintCode
Killed by : none
Replaced float multiplication with division → NO_COVERAGE

7.7
Location : paintCode
Killed by : none
Replaced double addition with subtraction → NO_COVERAGE

8.8
Location : paintCode
Killed by : none
Replaced double addition with subtraction → NO_COVERAGE

9.9
Location : paintCode
Killed by : none
Replaced float multiplication with division → NO_COVERAGE

10.10
Location : paintCode
Killed by : none
Replaced double division with multiplication → NO_COVERAGE

836

1.1
Location : paintCode
Killed by : none
Replaced double addition with subtraction → NO_COVERAGE

837

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

839

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

842

1.1
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

843

1.1
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

844

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

845

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

847

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

849

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

853

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

854

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

856

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

3.3
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

859

1.1
Location : paintCode
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

861

1.1
Location : paintCode
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

864

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

865

1.1
Location : paintCode
Killed by : none
Replaced Shift Left with Shift Right → NO_COVERAGE

866

1.1
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

867

1.1
Location : paintCode
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

869

1.1
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
removed call to java/lang/System::arraycopy → NO_COVERAGE

870

1.1
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

871

1.1
Location : paintCode
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

872

1.1
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

876

1.1
Location : paintCode
Killed by : none
Changed increment from -1 to 1 → NO_COVERAGE

2.2
Location : paintCode
Killed by : none
negated conditional → NO_COVERAGE

877

1.1
Location : paintCode
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

880

1.1
Location : paintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::calculateErrorCorrection → NO_COVERAGE

882

1.1
Location : paintCode
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::outPaintCode → NO_COVERAGE

892

1.1
Location : getImage
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::paintCode → NO_COVERAGE

894

1.1
Location : getImage
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

2.2
Location : getImage
Killed by : none
negated conditional → NO_COVERAGE

3.3
Location : getImage
Killed by : none
mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417::getImage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

907

1.1
Location : createAwtImage
Killed by : none
removed call to com/lowagie/text/pdf/BarcodePDF417::paintCode → NO_COVERAGE

909

1.1
Location : createAwtImage
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

910

1.1
Location : createAwtImage
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

912

1.1
Location : createAwtImage
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
negated conditional → NO_COVERAGE

913

1.1
Location : createAwtImage
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

914

1.1
Location : createAwtImage
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
negated conditional → NO_COVERAGE

915

1.1
Location : createAwtImage
Killed by : none
Replaced integer division with multiplication → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

916

1.1
Location : createAwtImage
Killed by : none
Replaced integer modulus with multiplication → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced Shift Left with Shift Right → NO_COVERAGE

917

1.1
Location : createAwtImage
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced bitwise AND with OR → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
negated conditional → NO_COVERAGE

919

1.1
Location : createAwtImage
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
negated conditional → NO_COVERAGE

920

1.1
Location : createAwtImage
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

4.4
Location : createAwtImage
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

5.5
Location : createAwtImage
Killed by : none
removed call to java/lang/System::arraycopy → NO_COVERAGE

922

1.1
Location : createAwtImage
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : createAwtImage
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

3.3
Location : createAwtImage
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

925

1.1
Location : createAwtImage
Killed by : none
Replaced integer multiplication with division → NO_COVERAGE

926

1.1
Location : createAwtImage
Killed by : none
mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417::createAwtImage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

1600

1.1
Location : get
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : get
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : get
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : get
Killed by : none
negated conditional → NO_COVERAGE

1601

1.1
Location : get
Killed by : none
mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417$SegmentList::get to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

1602

1.1
Location : get
Killed by : none
mutated return of Object value for com/lowagie/text/pdf/BarcodePDF417$SegmentList::get to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

1606

1.1
Location : remove
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : remove
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : remove
Killed by : none
negated conditional → NO_COVERAGE

4.4
Location : remove
Killed by : none
negated conditional → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.4.2