comparison mupdf-source/thirdparty/zint/backend/tests/test_dmatrix.c @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 /*
2 libzint - the open source barcode library
3 Copyright (C) 2019-2024 Robin Stuart <rstuart114@gmail.com>
4
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
7 are met:
8
9 1. Redistributions of source code must retain the above copyright
10 notice, this list of conditions and the following disclaimer.
11 2. Redistributions in binary form must reproduce the above copyright
12 notice, this list of conditions and the following disclaimer in the
13 documentation and/or other materials provided with the distribution.
14 3. Neither the name of the project nor the names of its contributors
15 may be used to endorse or promote products derived from this software
16 without specific prior written permission.
17
18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 SUCH DAMAGE.
29 */
30 /* SPDX-License-Identifier: BSD-3-Clause */
31
32 #include "testcommon.h"
33 #include "../gs1.h"
34
35 static void test_large(const testCtx *const p_ctx) {
36 int debug = p_ctx->debug;
37
38 struct item {
39 int symbology;
40 int option_2;
41 struct zint_structapp structapp;
42 char *pattern;
43 int length;
44 int ret;
45 int expected_rows;
46 int expected_width;
47 char *expected_errtxt;
48 char *expected_errtxt2;
49 char *comment;
50 };
51 /* ISO/IEC 16022:2006 Table 7 and ISO/IEC 21471:2020 (DMRE) Table 7 */
52 /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
53 static const struct item data[] = {
54 /* 0*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "1", 3116, 0, 144, 144, "", "", "" },
55 /* 1*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "1", 3117, ZINT_ERROR_TOO_LONG, 0, 0, "Error 719: Input length 3117 too long (maximum 3116)", "", "" },
56 /* 2*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "1", 10922, ZINT_ERROR_TOO_LONG, 0, 0, "Error 719: Input length 10922 too long (maximum 3116)", "", "Minimal encoding can handle max (10921 + 1) * 6 = 65532 < 65536 (2*16) due to sizeof(previous)" },
57 /* 3*/ { BARCODE_DATAMATRIX, -1, { 1, 2, "001001" }, "1", 3108, 0, 144, 144, "", "", "Structured Append 4 codewords overhead == 8 digits" },
58 /* 4*/ { BARCODE_DATAMATRIX, -1, { 1, 2, "001001" }, "1", 3109, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
59 /* 5*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "A", 2335, 0, 144, 144, "", "", "" },
60 /* 6*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "A", 2336, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 523: Input too long, requires 1560 codewords (maximum 1558)", "" },
61 /* 7*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\200", 1556, 0, 144, 144, "", "", "Spec says 1555 but 1556 correct as only single byte count of 0 required" },
62 /* 8*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\200", 1557, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
63 /* 9*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\001", 1558, 0, 144, 144, "", "", "" },
64 /* 10*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\001", 1559, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
65 /* 11*/ { BARCODE_HIBC_DM, -1, { 0, 0, "" }, "1", 110, 0, 32, 32, "", "", "" },
66 /* 12*/ { BARCODE_HIBC_DM, -1, { 0, 0, "" }, "1", 111, ZINT_ERROR_TOO_LONG, 0, 0, "Error 202: Input length 111 too long for HIBC LIC (maximum 110)", "", "" },
67 /* 13*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "1", 6, 0, 10, 10, "", "", "" },
68 /* 14*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "1", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)", "", "" },
69 /* 15*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "A", 3, 0, 10, 10, "", "", "" },
70 /* 16*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "A", 4, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)", "", "" },
71 /* 17*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "\200", 1, 0, 10, 10, "", "", "" },
72 /* 18*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "\200", 2, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)", "", "" },
73 /* 19*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "1", 10, 0, 12, 12, "", "", "" },
74 /* 20*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "1", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 2, requires 6 codewords (maximum 5)", "", "" },
75 /* 21*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "A", 6, 0, 12, 12, "", "", "" },
76 /* 22*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "A", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 2, requires 6 codewords (maximum 5)", "", "" },
77 /* 23*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "\200", 3, 0, 12, 12, "", "", "" },
78 /* 24*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "\200", 4, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 2, requires 6 codewords (maximum 5)", "", "" },
79 /* 25*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "1", 16, 0, 14, 14, "", "", "" },
80 /* 26*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "1", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 3, requires 9 codewords (maximum 8)", "", "" },
81 /* 27*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "A", 10, 0, 14, 14, "", "", "" },
82 /* 28*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "A", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 3, requires 9 codewords (maximum 8)", "Error 522: Input too long for Version 3, requires 10 codewords (maximum 8)", "" },
83 /* 29*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "\200", 6, 0, 14, 14, "", "", "" },
84 /* 30*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "\200", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 3, requires 9 codewords (maximum 8)", "", "" },
85 /* 31*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "1", 24, 0, 16, 16, "", "", "" },
86 /* 32*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "1", 25, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 4, requires 13 codewords (maximum 12)", "", "" },
87 /* 33*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "A", 16, 0, 16, 16, "", "", "" },
88 /* 34*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "A", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 4, requires 13 codewords (maximum 12)", "Error 522: Input too long for Version 4, requires 14 codewords (maximum 12)", "" },
89 /* 35*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "\200", 10, 0, 16, 16, "", "", "" },
90 /* 36*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "\200", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 4, requires 13 codewords (maximum 12)", "", "" },
91 /* 37*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "1", 36, 0, 18, 18, "", "", "" },
92 /* 38*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "1", 37, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", "" },
93 /* 39*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "A", 25, 0, 18, 18, "", "", "" },
94 /* 40*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "A", 26, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "Error 522: Input too long for Version 5, requires 20 codewords (maximum 18)", "" },
95 /* 41*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "\200", 16, 0, 18, 18, "", "", "" },
96 /* 42*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "\200", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", "" },
97 /* 43*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "1", 44, 0, 20, 20, "", "", "" },
98 /* 44*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "1", 45, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 6, requires 23 codewords (maximum 22)", "", "" },
99 /* 45*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "A", 31, 0, 20, 20, "", "", "" },
100 /* 46*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "A", 32, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 6, requires 23 codewords (maximum 22)", "Error 522: Input too long for Version 6, requires 24 codewords (maximum 22)", "" },
101 /* 47*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "\200", 20, 0, 20, 20, "", "", "" },
102 /* 48*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "\200", 21, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 6, requires 23 codewords (maximum 22)", "", "" },
103 /* 49*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "1", 60, 0, 22, 22, "", "", "" },
104 /* 50*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "1", 61, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 7, requires 31 codewords (maximum 30)", "", "" },
105 /* 51*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "A", 43, 0, 22, 22, "", "", "" },
106 /* 52*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "A", 44, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 7, requires 31 codewords (maximum 30)", "Error 522: Input too long for Version 7, requires 32 codewords (maximum 30)", "" },
107 /* 53*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "\200", 28, 0, 22, 22, "", "", "" },
108 /* 54*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "\200", 29, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 7, requires 31 codewords (maximum 30)", "", "" },
109 /* 55*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "1", 72, 0, 24, 24, "", "", "" },
110 /* 56*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "1", 73, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 8, requires 37 codewords (maximum 36)", "", "" },
111 /* 57*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "A", 52, 0, 24, 24, "", "", "" },
112 /* 58*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "A", 53, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 8, requires 37 codewords (maximum 36)", "Error 522: Input too long for Version 8, requires 38 codewords (maximum 36)", "" },
113 /* 59*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "\200", 34, 0, 24, 24, "", "", "" },
114 /* 60*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "\200", 35, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 8, requires 37 codewords (maximum 36)", "", "" },
115 /* 61*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "1", 88, 0, 26, 26, "", "", "" },
116 /* 62*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "1", 89, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 9, requires 45 codewords (maximum 44)", "", "" },
117 /* 63*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "A", 64, 0, 26, 26, "", "", "" },
118 /* 64*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "A", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 9, requires 45 codewords (maximum 44)", "Error 522: Input too long for Version 9, requires 46 codewords (maximum 44)", "" },
119 /* 65*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "\200", 42, 0, 26, 26, "", "", "" },
120 /* 66*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "\200", 43, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 9, requires 45 codewords (maximum 44)", "", "" },
121 /* 67*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "1", 124, 0, 32, 32, "", "", "" },
122 /* 68*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "1", 125, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 10, requires 63 codewords (maximum 62)", "", "" },
123 /* 69*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "A", 91, 0, 32, 32, "", "", "" },
124 /* 70*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "A", 92, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 10, requires 63 codewords (maximum 62)", "Error 522: Input too long for Version 10, requires 64 codewords (maximum 62)", "" },
125 /* 71*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "\200", 60, 0, 32, 32, "", "", "" },
126 /* 72*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "\200", 61, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 10, requires 63 codewords (maximum 62)", "", "" },
127 /* 73*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "1", 172, 0, 36, 36, "", "", "" },
128 /* 74*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "1", 173, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 11, requires 87 codewords (maximum 86)", "", "" },
129 /* 75*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "A", 127, 0, 36, 36, "", "", "" },
130 /* 76*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "A", 128, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 11, requires 87 codewords (maximum 86)", "Error 522: Input too long for Version 11, requires 88 codewords (maximum 86)", "" },
131 /* 77*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "\200", 84, 0, 36, 36, "", "", "" },
132 /* 78*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "\200", 85, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 11, requires 87 codewords (maximum 86)", "", "" },
133 /* 79*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "1", 228, 0, 40, 40, "", "", "" },
134 /* 80*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "1", 229, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 12, requires 115 codewords (maximum 114)", "", "" },
135 /* 81*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "A", 169, 0, 40, 40, "", "", "" },
136 /* 82*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "A", 170, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 12, requires 115 codewords (maximum 114)", "Error 522: Input too long for Version 12, requires 116 codewords (maximum 114)", "" },
137 /* 83*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "\200", 112, 0, 40, 40, "", "", "" },
138 /* 84*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "\200", 113, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 12, requires 115 codewords (maximum 114)", "", "" },
139 /* 85*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "1", 288, 0, 44, 44, "", "", "" },
140 /* 86*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "1", 289, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 13, requires 145 codewords (maximum 144)", "", "" },
141 /* 87*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "A", 214, 0, 44, 44, "", "", "" },
142 /* 88*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "A", 215, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 13, requires 145 codewords (maximum 144)", "Error 522: Input too long for Version 13, requires 146 codewords (maximum 144)", "" },
143 /* 89*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "\200", 142, 0, 44, 44, "", "", "" },
144 /* 90*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "\200", 143, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 13, requires 145 codewords (maximum 144)", "", "" },
145 /* 91*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "1", 348, 0, 48, 48, "", "", "" },
146 /* 92*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "1", 349, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 14, requires 175 codewords (maximum 174)", "", "" },
147 /* 93*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "A", 259, 0, 48, 48, "", "", "" },
148 /* 94*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "A", 260, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 14, requires 175 codewords (maximum 174)", "Error 522: Input too long for Version 14, requires 176 codewords (maximum 174)", "" },
149 /* 95*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "\200", 172, 0, 48, 48, "", "", "" },
150 /* 96*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "\200", 173, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 14, requires 175 codewords (maximum 174)", "", "" },
151 /* 97*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "1", 408, 0, 52, 52, "", "", "" },
152 /* 98*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "1", 409, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 15, requires 205 codewords (maximum 204)", "", "" },
153 /* 99*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "A", 304, 0, 52, 52, "", "", "" },
154 /*100*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "A", 305, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 15, requires 205 codewords (maximum 204)", "Error 522: Input too long for Version 15, requires 206 codewords (maximum 204)", "" },
155 /*101*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "\200", 202, 0, 52, 52, "", "", "" },
156 /*102*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "\200", 203, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 15, requires 205 codewords (maximum 204)", "", "" },
157 /*103*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "1", 560, 0, 64, 64, "", "", "" },
158 /*104*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "1", 561, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 16, requires 281 codewords (maximum 280)", "", "" },
159 /*105*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "A", 418, 0, 64, 64, "", "", "" },
160 /*106*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "A", 419, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 16, requires 281 codewords (maximum 280)", "Error 522: Input too long for Version 16, requires 282 codewords (maximum 280)", "" },
161 /*107*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "\200", 278, 0, 64, 64, "", "", "Spec says 277 but 278 correct as only single byte count of 0 required" },
162 /*108*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "\200", 279, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 16, requires 281 codewords (maximum 280)", "", "" },
163 /*109*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "1", 736, 0, 72, 72, "", "", "" },
164 /*110*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "1", 737, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 17, requires 369 codewords (maximum 368)", "", "" },
165 /*111*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "A", 550, 0, 72, 72, "", "", "" },
166 /*112*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "A", 551, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 17, requires 369 codewords (maximum 368)", "Error 522: Input too long for Version 17, requires 370 codewords (maximum 368)", "" },
167 /*113*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "\200", 366, 0, 72, 72, "", "", "Spec says 365 but 366 correct as only single byte count of 0 required" },
168 /*114*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "\200", 367, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 17, requires 369 codewords (maximum 368)", "", "" },
169 /*115*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "1", 912, 0, 80, 80, "", "", "" },
170 /*116*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "1", 913, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 18, requires 457 codewords (maximum 456)", "", "" },
171 /*117*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "A", 682, 0, 80, 80, "", "", "" },
172 /*118*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "A", 683, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 18, requires 457 codewords (maximum 456)", "Error 522: Input too long for Version 18, requires 458 codewords (maximum 456)", "" },
173 /*119*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "\200", 454, 0, 80, 80, "", "", "Spec says 453 but 454 correct as only single byte count of 0 required" },
174 /*120*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "\200", 455, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 18, requires 457 codewords (maximum 456)", "", "" },
175 /*121*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "1", 1152, 0, 88, 88, "", "", "" },
176 /*122*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "1", 1153, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 19, requires 577 codewords (maximum 576)", "", "" },
177 /*123*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "A", 862, 0, 88, 88, "", "", "" },
178 /*124*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "A", 863, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 19, requires 577 codewords (maximum 576)", "Error 522: Input too long for Version 19, requires 578 codewords (maximum 576)", "" },
179 /*125*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "\200", 574, 0, 88, 88, "", "", "Spec says 573 but 574 correct as only single byte count of 0 required" },
180 /*126*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "\200", 575, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 19, requires 577 codewords (maximum 576)", "", "" },
181 /*127*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "1", 1392, 0, 96, 96, "", "", "" },
182 /*128*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "1", 1393, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 20, requires 697 codewords (maximum 696)", "", "" },
183 /*129*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "A", 1042, 0, 96, 96, "", "", "" },
184 /*130*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "A", 1043, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 20, requires 697 codewords (maximum 696)", "Error 522: Input too long for Version 20, requires 698 codewords (maximum 696)", "" },
185 /*131*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "\200", 694, 0, 96, 96, "", "", "Spec says 693 but 694 correct as only single byte count of 0 required" },
186 /*132*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "\200", 695, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 20, requires 697 codewords (maximum 696)", "", "" },
187 /*133*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "1", 1632, 0, 104, 104, "", "", "" },
188 /*134*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "1", 1633, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 21, requires 817 codewords (maximum 816)", "", "" },
189 /*135*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "A", 1222, 0, 104, 104, "", "", "" },
190 /*136*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "A", 1223, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 21, requires 817 codewords (maximum 816)", "Error 522: Input too long for Version 21, requires 818 codewords (maximum 816)", "" },
191 /*137*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "\200", 814, 0, 104, 104, "", "", "Spec says 813 but 814 correct as only single byte count of 0 required" },
192 /*138*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "\200", 815, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 21, requires 817 codewords (maximum 816)", "", "" },
193 /*139*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "1", 2100, 0, 120, 120, "", "", "" },
194 /*140*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "1", 2101, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 22, requires 1051 codewords (maximum 1050)", "", "" },
195 /*141*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "A", 1573, 0, 120, 120, "", "", "" },
196 /*142*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "A", 1574, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 22, requires 1051 codewords (maximum 1050)", "Error 522: Input too long for Version 22, requires 1052 codewords (maximum 1050)", "" },
197 /*143*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "\200", 1048, 0, 120, 120, "", "", "Spec says 1047 but 1048 correct as only single byte count of 0 required" },
198 /*144*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "\200", 1049, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 22, requires 1051 codewords (maximum 1050)", "", "" },
199 /*145*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "1", 2608, 0, 132, 132, "", "", "" },
200 /*146*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "1", 2609, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 23, requires 1305 codewords (maximum 1304)", "", "" },
201 /*147*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "A", 1954, 0, 132, 132, "", "", "" },
202 /*148*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "A", 1955, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 23, requires 1305 codewords (maximum 1304)", "Error 522: Input too long for Version 23, requires 1306 codewords (maximum 1304)", "" },
203 /*149*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "\200", 1302, 0, 132, 132, "", "", "Spec says 1301 but 1302 correct as only single byte count of 0 required" },
204 /*150*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "\200", 1303, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 23, requires 1305 codewords (maximum 1304)", "", "" },
205 /*151*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "1", 3116, 0, 144, 144, "", "", "" },
206 /*152*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "1", 3117, ZINT_ERROR_TOO_LONG, 0, 0, "Error 719: Input length 3117 too long (maximum 3116)", "", "" },
207 /*153*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "A", 2335, 0, 144, 144, "", "", "" },
208 /*154*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "A", 2336, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 522: Input too long for Version 24, requires 1560 codewords (maximum 1558)", "" },
209 /*155*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "\200", 1556, 0, 144, 144, "", "", "Spec says 1555 but 1556 correct as only single byte count of 0 required" },
210 /*156*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "\200", 1557, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
211 /*157*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "1", 10, 0, 8, 18, "", "", "" },
212 /*158*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "1", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 25, requires 6 codewords (maximum 5)", "", "" },
213 /*159*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "A", 6, 0, 8, 18, "", "", "" },
214 /*160*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "A", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 25, requires 6 codewords (maximum 5)", "", "" },
215 /*161*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "\200", 3, 0, 8, 18, "", "", "" },
216 /*162*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "\200", 4, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 25, requires 6 codewords (maximum 5)", "", "" },
217 /*163*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "1", 20, 0, 8, 32, "", "", "" },
218 /*164*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "1", 21, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 26, requires 11 codewords (maximum 10)", "", "" },
219 /*165*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "A", 13, 0, 8, 32, "", "", "" },
220 /*166*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "A", 14, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 26, requires 11 codewords (maximum 10)", "Error 522: Input too long for Version 26, requires 12 codewords (maximum 10)", "" },
221 /*167*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "\200", 8, 0, 8, 32, "", "", "" },
222 /*168*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "\200", 9, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 26, requires 11 codewords (maximum 10)", "", "" },
223 /*169*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "1", 32, 0, 12, 26, "", "", "" },
224 /*170*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "1", 33, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 27, requires 17 codewords (maximum 16)", "", "" },
225 /*171*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "A", 22, 0, 12, 26, "", "", "" },
226 /*172*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "A", 23, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 27, requires 17 codewords (maximum 16)", "Error 522: Input too long for Version 27, requires 18 codewords (maximum 16)", "" },
227 /*173*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "\200", 14, 0, 12, 26, "", "", "" },
228 /*174*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "\200", 15, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 27, requires 17 codewords (maximum 16)", "", "" },
229 /*175*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "1", 44, 0, 12, 36, "", "", "" },
230 /*176*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "1", 45, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 28, requires 23 codewords (maximum 22)", "", "" },
231 /*177*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "A", 31, 0, 12, 36, "", "", "" },
232 /*178*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "A", 32, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 28, requires 23 codewords (maximum 22)", "Error 522: Input too long for Version 28, requires 24 codewords (maximum 22)", "" },
233 /*179*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "\200", 20, 0, 12, 36, "", "", "" },
234 /*180*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "\200", 21, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 28, requires 23 codewords (maximum 22)", "", "" },
235 /*181*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "1", 64, 0, 16, 36, "", "", "" },
236 /*182*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "1", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 29, requires 33 codewords (maximum 32)", "", "" },
237 /*183*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "A", 46, 0, 16, 36, "", "", "" },
238 /*184*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "A", 47, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 29, requires 33 codewords (maximum 32)", "Error 522: Input too long for Version 29, requires 34 codewords (maximum 32)", "" },
239 /*185*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "\200", 30, 0, 16, 36, "", "", "" },
240 /*186*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "\200", 31, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 29, requires 33 codewords (maximum 32)", "", "" },
241 /*187*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "1", 98, 0, 16, 48, "", "", "" },
242 /*188*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "1", 99, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 30, requires 50 codewords (maximum 49)", "", "" },
243 /*189*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "A", 72, 0, 16, 48, "", "", "" },
244 /*190*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "A", 73, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 30, requires 50 codewords (maximum 49)", "", "" },
245 /*191*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "\200", 47, 0, 16, 48, "", "", "" },
246 /*192*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "\200", 48, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 30, requires 50 codewords (maximum 49)", "", "" },
247 /*193*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "1", 36, 0, 8, 48, "", "", "" },
248 /*194*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "1", 37, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 31, requires 19 codewords (maximum 18)", "", "" },
249 /*195*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "A", 25, 0, 8, 48, "", "", "" },
250 /*196*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "A", 26, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 31, requires 19 codewords (maximum 18)", "Error 522: Input too long for Version 31, requires 20 codewords (maximum 18)", "" },
251 /*197*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "\200", 16, 0, 8, 48, "", "", "" },
252 /*198*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "\200", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 31, requires 19 codewords (maximum 18)", "", "" },
253 /*199*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "1", 48, 0, 8, 64, "", "", "" },
254 /*200*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "1", 49, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 32, requires 25 codewords (maximum 24)", "", "" },
255 /*201*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "A", 34, 0, 8, 64, "", "", "" },
256 /*202*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "A", 35, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 32, requires 25 codewords (maximum 24)", "Error 522: Input too long for Version 32, requires 26 codewords (maximum 24)", "" },
257 /*203*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "\200", 22, 0, 8, 64, "", "", "" },
258 /*204*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "\200", 23, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 32, requires 25 codewords (maximum 24)", "", "" },
259 /*205*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "1", 64, 0, 8, 80, "", "", "" },
260 /*206*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "1", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 33, requires 33 codewords (maximum 32)", "", "" },
261 /*207*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "A", 46, 0, 8, 80, "", "", "" },
262 /*208*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "A", 47, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 33, requires 33 codewords (maximum 32)", "Error 522: Input too long for Version 33, requires 34 codewords (maximum 32)", "" },
263 /*209*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "\200", 30, 0, 8, 80, "", "", "" },
264 /*210*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "\200", 31, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 33, requires 33 codewords (maximum 32)", "", "" },
265 /*211*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "1", 76, 0, 8, 96, "", "", "" },
266 /*212*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "1", 77, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 34, requires 39 codewords (maximum 38)", "", "" },
267 /*213*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "A", 55, 0, 8, 96, "", "", "" },
268 /*214*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "A", 56, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 34, requires 39 codewords (maximum 38)", "Error 522: Input too long for Version 34, requires 40 codewords (maximum 38)", "" },
269 /*215*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "\200", 36, 0, 8, 96, "", "", "" },
270 /*216*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "\200", 37, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 34, requires 39 codewords (maximum 38)", "", "" },
271 /*217*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "1", 98, 0, 8, 120, "", "", "" },
272 /*218*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "1", 99, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 35, requires 50 codewords (maximum 49)", "", "" },
273 /*219*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "A", 72, 0, 8, 120, "", "", "" },
274 /*220*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "A", 73, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 35, requires 50 codewords (maximum 49)", "", "" },
275 /*221*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "\200", 47, 0, 8, 120, "", "", "" },
276 /*222*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "\200", 48, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 35, requires 50 codewords (maximum 49)", "", "" },
277 /*223*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "1", 126, 0, 8, 144, "", "", "" },
278 /*224*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "1", 127, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 36, requires 64 codewords (maximum 63)", "", "" },
279 /*225*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "A", 93, 0, 8, 144, "", "", "" },
280 /*226*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "A", 94, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 36, requires 64 codewords (maximum 63)", "", "" },
281 /*227*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "\200", 61, 0, 8, 144, "", "", "" },
282 /*228*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "\200", 62, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 36, requires 64 codewords (maximum 63)", "", "" },
283 /*229*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "1", 86, 0, 12, 64, "", "", "" },
284 /*230*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "1", 87, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 37, requires 44 codewords (maximum 43)", "", "" },
285 /*231*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "A", 63, 0, 12, 64, "", "", "" },
286 /*232*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "A", 64, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 37, requires 44 codewords (maximum 43)", "", "" },
287 /*233*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "\200", 41, 0, 12, 64, "", "", "" },
288 /*234*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "\200", 42, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 37, requires 44 codewords (maximum 43)", "", "" },
289 /*235*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "1", 128, 0, 12, 88, "", "", "" },
290 /*236*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "1", 129, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 38, requires 65 codewords (maximum 64)", "", "" },
291 /*237*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "A", 94, 0, 12, 88, "", "", "" },
292 /*238*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "A", 95, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 38, requires 65 codewords (maximum 64)", "Error 522: Input too long for Version 38, requires 66 codewords (maximum 64)", "" },
293 /*239*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "\200", 62, 0, 12, 88, "", "", "" },
294 /*240*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "\200", 63, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 38, requires 65 codewords (maximum 64)", "", "" },
295 /*241*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "1", 124, 0, 16, 64, "", "", "" },
296 /*242*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "1", 125, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 39, requires 63 codewords (maximum 62)", "", "" },
297 /*243*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "A", 91, 0, 16, 64, "", "", "" },
298 /*244*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "A", 92, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 39, requires 63 codewords (maximum 62)", "Error 522: Input too long for Version 39, requires 64 codewords (maximum 62)", "" },
299 /*245*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "\200", 60, 0, 16, 64, "", "", "" },
300 /*246*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "\200", 61, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 39, requires 63 codewords (maximum 62)", "", "" },
301 /*247*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "1", 88, 0, 20, 36, "", "", "" },
302 /*248*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "1", 89, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 40, requires 45 codewords (maximum 44)", "", "" },
303 /*249*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "A", 64, 0, 20, 36, "", "", "" },
304 /*250*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "A", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 40, requires 45 codewords (maximum 44)", "Error 522: Input too long for Version 40, requires 46 codewords (maximum 44)", "" },
305 /*251*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "\200", 42, 0, 20, 36, "", "", "" },
306 /*252*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "\200", 43, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 40, requires 45 codewords (maximum 44)", "", "" },
307 /*253*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "1", 112, 0, 20, 44, "", "", "" },
308 /*254*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "1", 113, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 41, requires 57 codewords (maximum 56)", "", "" },
309 /*255*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "A", 82, 0, 20, 44, "", "", "" },
310 /*256*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "A", 83, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 41, requires 57 codewords (maximum 56)", "Error 522: Input too long for Version 41, requires 58 codewords (maximum 56)", "" },
311 /*257*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "\200", 54, 0, 20, 44, "", "", "" },
312 /*258*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "\200", 55, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 41, requires 57 codewords (maximum 56)", "", "" },
313 /*259*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "1", 168, 0, 20, 64, "", "", "Spec says 186 but typo" },
314 /*260*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "1", 169, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 42, requires 85 codewords (maximum 84)", "", "" },
315 /*261*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "A", 124, 0, 20, 64, "", "", "" },
316 /*262*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "A", 125, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 42, requires 85 codewords (maximum 84)", "Error 522: Input too long for Version 42, requires 86 codewords (maximum 84)", "" },
317 /*263*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "\200", 82, 0, 20, 64, "", "", "" },
318 /*264*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "\200", 83, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 42, requires 85 codewords (maximum 84)", "", "" },
319 /*265*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "1", 144, 0, 22, 48, "", "", "" },
320 /*266*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "1", 145, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 43, requires 73 codewords (maximum 72)", "", "" },
321 /*267*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "A", 106, 0, 22, 48, "", "", "" },
322 /*268*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "A", 107, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 43, requires 73 codewords (maximum 72)", "Error 522: Input too long for Version 43, requires 74 codewords (maximum 72)", "" },
323 /*269*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "\200", 70, 0, 22, 48, "", "", "" },
324 /*270*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "\200", 71, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 43, requires 73 codewords (maximum 72)", "", "" },
325 /*271*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "1", 160, 0, 24, 48, "", "", "" },
326 /*272*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "1", 161, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 44, requires 81 codewords (maximum 80)", "", "" },
327 /*273*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "A", 118, 0, 24, 48, "", "", "" },
328 /*274*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "A", 119, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 44, requires 81 codewords (maximum 80)", "Error 522: Input too long for Version 44, requires 82 codewords (maximum 80)", "" },
329 /*275*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "\200", 78, 0, 24, 48, "", "", "" },
330 /*276*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "\200", 79, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 44, requires 81 codewords (maximum 80)", "", "" },
331 /*277*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "1", 216, 0, 24, 64, "", "", "" },
332 /*278*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "1", 217, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 45, requires 109 codewords (maximum 108)", "", "" },
333 /*279*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "A", 160, 0, 24, 64, "", "", "" },
334 /*280*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "A", 161, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 45, requires 109 codewords (maximum 108)", "Error 522: Input too long for Version 45, requires 110 codewords (maximum 108)", "" },
335 /*281*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "\200", 106, 0, 24, 64, "", "", "" },
336 /*282*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "\200", 107, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 45, requires 109 codewords (maximum 108)", "", "" },
337 /*283*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "1", 140, 0, 26, 40, "", "", "" },
338 /*284*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "1", 141, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 46, requires 71 codewords (maximum 70)", "", "" },
339 /*285*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "A", 103, 0, 26, 40, "", "", "" },
340 /*286*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "A", 104, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 46, requires 71 codewords (maximum 70)", "Error 522: Input too long for Version 46, requires 72 codewords (maximum 70)", "" },
341 /*287*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "\200", 68, 0, 26, 40, "", "", "" },
342 /*288*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "\200", 69, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 46, requires 71 codewords (maximum 70)", "", "" },
343 /*289*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "1", 180, 0, 26, 48, "", "", "" },
344 /*290*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "1", 181, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 47, requires 91 codewords (maximum 90)", "", "" },
345 /*291*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "A", 133, 0, 26, 48, "", "", "" },
346 /*292*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "A", 134, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 47, requires 91 codewords (maximum 90)", "Error 522: Input too long for Version 47, requires 92 codewords (maximum 90)", "" },
347 /*293*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "\200", 88, 0, 26, 48, "", "", "" },
348 /*294*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "\200", 89, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 47, requires 91 codewords (maximum 90)", "", "" },
349 /*295*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "1", 236, 0, 26, 64, "", "", "" },
350 /*296*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "1", 237, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 48, requires 119 codewords (maximum 118)", "", "" },
351 /*297*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "A", 175, 0, 26, 64, "", "", "" },
352 /*298*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "A", 176, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 48, requires 119 codewords (maximum 118)", "Error 522: Input too long for Version 48, requires 120 codewords (maximum 118)", "" },
353 /*299*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "\200", 116, 0, 26, 64, "", "", "" },
354 /*300*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "\200", 117, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 48, requires 119 codewords (maximum 118)", "", "" },
355 };
356 const int data_size = ARRAY_SIZE(data);
357 int i, length, ret;
358 struct zint_symbol *symbol = NULL;
359
360 char data_buf[ZINT_MAX_DATA_LEN];
361 char escaped[64];
362
363 testStartSymbol("test_large", &symbol);
364
365 for (i = 0; i < data_size; i++) {
366
367 if (testContinue(p_ctx, i)) continue;
368
369 symbol = ZBarcode_Create();
370 assert_nonnull(symbol, "Symbol not created\n");
371
372 testUtilStrCpyRepeat(data_buf, data[i].pattern, data[i].length);
373 assert_equal(data[i].length, (int) strlen(data_buf), "i:%d length %d != strlen(data_buf) %d\n", i, data[i].length, (int) strlen(data_buf));
374
375 length = testUtilSetSymbol(symbol, data[i].symbology, -1 /*input_mode*/, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, -1 /*output_options*/, data_buf, data[i].length, debug);
376 if (data[i].structapp.count) {
377 symbol->structapp = data[i].structapp;
378 }
379
380 ret = ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
381
382 if (p_ctx->generate) {
383 char errtxt[sizeof(symbol->errtxt)];
384 strcpy(errtxt, symbol->errtxt);
385 printf(" /*%3d*/ { %s, %d, { %d, %d, \"%s\" }, \"%s\", %d, %s, %d, %d, \"%s\",",
386 i, testUtilBarcodeName(data[i].symbology), data[i].option_2,
387 data[i].structapp.index, data[i].structapp.count, data[i].structapp.id,
388 testUtilEscape(data[i].pattern, (int) strlen(data[i].pattern), escaped, sizeof(escaped)), data[i].length,
389 testUtilErrorName(ret), symbol->rows, symbol->width, errtxt);
390 symbol->input_mode |= FAST_MODE;
391 (void) ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
392 printf(" \"%s\", \"%s\" },\n", strcmp(errtxt, symbol->errtxt) != 0 ? symbol->errtxt : "", data[i].comment);
393 } else {
394 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
395 assert_equal(symbol->errtxt[0] == '\0', ret == 0, "i:%d symbol->errtxt not %s (%s)\n", i, ret ? "set" : "empty", symbol->errtxt);
396 assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt);
397
398 if (ret < ZINT_ERROR) {
399 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
400 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
401 }
402
403 symbol->input_mode |= FAST_MODE;
404 ret = ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
405 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
406 assert_equal(symbol->errtxt[0] == '\0', ret == 0, "i:%d symbol->errtxt not %s (%s)\n", i, ret ? "set" : "empty", symbol->errtxt);
407
408 if (ret < ZINT_ERROR) {
409 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
410 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
411 } else {
412 if (data[i].expected_errtxt2[0]) {
413 assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt2), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt2);
414 } else {
415 assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt);
416 }
417 }
418 }
419
420 ZBarcode_Delete(symbol);
421 }
422
423 testFinish();
424 }
425
426 /* Note need ZINT_SANITIZE set for these */
427 static void test_buffer(const testCtx *const p_ctx) {
428 int debug = p_ctx->debug;
429
430 struct item {
431 int eci;
432 int input_mode;
433 int output_options;
434 char *data;
435 int ret;
436 char *comment;
437 };
438 /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
439 static const struct item data[] = {
440 /* 0*/ { 16383, UNICODE_MODE, READER_INIT, "1", 0, "" },
441 /* 1*/ { 3, UNICODE_MODE, 0, "000106j 05 Galeria A Nação0000000000", 0, "From Okapi, consecutive use of upper shift; #176" },
442 };
443 const int data_size = ARRAY_SIZE(data);
444 int i, length, ret;
445 struct zint_symbol *symbol = NULL;
446
447 testStartSymbol("test_buffer", &symbol);
448
449 for (i = 0; i < data_size; i++) {
450
451 if (testContinue(p_ctx, i)) continue;
452
453 symbol = ZBarcode_Create();
454 assert_nonnull(symbol, "Symbol not created\n");
455
456 length = testUtilSetSymbol(symbol, BARCODE_DATAMATRIX, data[i].input_mode, data[i].eci, -1 /*option_1*/, -1, -1, data[i].output_options, data[i].data, -1, debug);
457
458 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
459 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d\n", i, ret, data[i].ret);
460
461 ZBarcode_Delete(symbol);
462 }
463
464 testFinish();
465 }
466
467 static void test_options(const testCtx *const p_ctx) {
468 int debug = p_ctx->debug;
469
470 struct item {
471 int symbology;
472 int input_mode;
473 int option_1;
474 int option_2;
475 int option_3;
476 int output_options;
477 struct zint_structapp structapp;
478 char *data;
479 int ret;
480
481 int expected_rows;
482 int expected_width;
483 const char *expected_errtxt;
484 };
485 /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
486 static const struct item data[] = {
487 /* 0*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "1", 0, 10, 10, "" },
488 /* 1*/ { BARCODE_DATAMATRIX, -1, 2, -1, -1, -1, { 0, 0, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 524: Older Data Matrix standards are no longer supported" },
489 /* 2*/ { BARCODE_DATAMATRIX, -1, -1, 1, -1, -1, { 0, 0, "" }, "1", 0, 10, 10, "" },
490 /* 3*/ { BARCODE_DATAMATRIX, -1, -1, 2, -1, -1, { 0, 0, "" }, "1", 0, 12, 12, "" },
491 /* 4*/ { BARCODE_DATAMATRIX, -1, -1, 48, -1, -1, { 0, 0, "" }, "1", 0, 26, 64, "" },
492 /* 5*/ { BARCODE_DATAMATRIX, -1, -1, 49, -1, -1, { 0, 0, "" }, "1", 0, 10, 10, "" }, /* Ignored */
493 /* 6*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "____", 0, 12, 12, "" }, /* 4 data */
494 /* 7*/ { BARCODE_DATAMATRIX, -1, -1, 1, -1, -1, { 0, 0, "" }, "____", ZINT_ERROR_TOO_LONG, -1, -1, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)" },
495 /* 8*/ { BARCODE_DATAMATRIX, -1, -1, 25, -1, -1, { 0, 0, "" }, "____", 0, 8, 18, "" },
496 /* 9*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________", 0, 8, 32, "" }, /* 10 data */
497 /* 10*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "__________", 0, 8, 32, "" },
498 /* 11*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE | DM_ISO_144, -1, { 0, 0, "" }, "__________", 0, 8, 32, "" },
499 /* 12*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "__________", 0, 16, 16, "" },
500 /* 13*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE | DM_ISO_144, -1, { 0, 0, "" }, "__________", 0, 16, 16, "" },
501 /* 14*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________", 0, 12, 26, "" }, /* 15 data */
502 /* 15*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________", 0, 12, 26, "" },
503 /* 16*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________", 0, 18, 18, "" },
504 /* 17*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________________", 0, 18, 18, "" }, /* 18 data */
505 /* 18*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "___________________", 0, 20, 20, "" }, /* 19 data */
506 /* 19*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________", 0, 20, 20, "" }, /* 21 data */
507 /* 20*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________", 0, 22, 22, "" }, /* 23 data */
508 /* 21*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________", 0, 8, 64, "" },
509 /* 22*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________", 0, 22, 22, "" },
510 /* 23*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________", 0, 16, 36, "" }, /* 31 data */
511 /* 24*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________", 0, 16, 36, "" },
512 /* 25*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________", 0, 24, 24, "" },
513 /* 26*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________________________", 0, 26, 26, "" }, /* 37 data */
514 /* 27*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_____________________________________", 0, 8, 96, "" },
515 /* 28*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_____________________________________", 0, 26, 26, "" },
516 /* 29*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________________", 0, 26, 26, "" }, /* 39 data */
517 /* 30*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________________", 0, 12, 64, "" },
518 /* 31*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________________", 0, 26, 26, "" },
519 /* 32*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "___________________________________________", 0, 26, 26, "" }, /* 43 data */
520 /* 33*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "___________________________________________", 0, 12, 64, "" },
521 /* 34*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "___________________________________________", 0, 26, 26, "" },
522 /* 35*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "____________________________________________", 0, 26, 26, "" }, /* 44 data */
523 /* 36*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________________________________", 0, 16, 48, "" }, /* 45 data */
524 /* 37*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_____________________________________________", 0, 16, 48, "" },
525 /* 38*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_____________________________________________", 0, 32, 32, "" },
526 /* 39*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_________________________________________________", 0, 16, 48, "" }, /* 49 data */
527 /* 40*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_________________________________________________", 0, 16, 48, "" },
528 /* 41*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_________________________________________________", 0, 32, 32, "" },
529 /* 42*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________________________________________________", 0, 32, 32, "" }, /* 50 data */
530 /* 43*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "__________________________________________________", 0, 20, 44, "" },
531 /* 44*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "__________________________________________________", 0, 32, 32, "" },
532 /* 45*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU", 0, 32, 32, "" }, /* 51 data */
533 /* 46*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU", 0, 20, 44, "" },
534 /* 47*/ { BARCODE_DATAMATRIX, -1, -1, -1, 9999, -1, { 0, 0, "" }, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU", 0, 32, 32, "" }, /* Ignored */
535 /* 48*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________________________________________________", 0, 32, 32, "" }, /* 61 data */
536 /* 49*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "______________________________________________________________", 0, 32, 32, "" }, /* 62 data */
537 /* 50*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________________________________________", 0, 36, 36, "" }, /* 63 data */
538 /* 51*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________________________________________", 0, 8, 144, "" },
539 /* 52*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________________________________________", 0, 36, 36, "" },
540 /* 53*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "________________________________________________________________", 0, 36, 36, "" }, /* 64 data */
541 /* 54*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "________________________________________________________________", 0, 12, 88, "" },
542 /* 55*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "________________________________________________________________", 0, 36, 36, "" },
543 /* 56*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_________________________________________________________________", 0, 36, 36, "" }, /* 65 data */
544 /* 57*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_________________________________________________________________", 0, 26, 40, "" },
545 /* 58*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_________________________________________________________________", 0, 36, 36, "" },
546 /* 59*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "______________________________________________________________________", 0, 36, 36, "" }, /* 70 data */
547 /* 60*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "______________________________________________________________________", 0, 26, 40, "" },
548 /* 61*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "______________________________________________________________________", 0, 36, 36, "" },
549 /* 62*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________________________________________________", 0, 36, 36, "" }, /* 71 data */
550 /* 63*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________________________________________________", 0, 22, 48, "" },
551 /* 64*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________________________________________________", 0, 36, 36, "" },
552 /* 65*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "________________________________________________________________________________", 0, 36, 36, "" }, /* 80 data */
553 /* 66*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "________________________________________________________________________________", 0, 24, 48, "" },
554 /* 67*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "________________________________________________________________________________", 0, 36, 36, "" },
555 /* 68*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "____________________________________________________________________________________", 0, 36, 36, "" }, /* 84 data */
556 /* 69*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "____________________________________________________________________________________", 0, 20, 64, "" },
557 /* 70*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "____________________________________________________________________________________", 0, 36, 36, "" },
558 /* 71*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________________________________________________________________________________________", 0, 40, 40, "" }, /* 90 data */
559 /* 72*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "__________________________________________________________________________________________", 0, 26, 48, "" },
560 /* 73*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "__________________________________________________________________________________________", 0, 40, 40, "" },
561 /* 74*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "___________________________________________________________________________________________", 0, 40, 40, "" }, /* 91 data */
562 /* 75*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "___________________________________________________________________________________________", 0, 24, 64, "" },
563 /* 76*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "___________________________________________________________________________________________", 0, 40, 40, "" },
564 /* 77*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "______________________________________________________________________________________________________________________", 0, 44, 44, "" }, /* 118 data */
565 /* 78*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "______________________________________________________________________________________________________________________", 0, 26, 64, "" }, /* 118 data */
566 /* 79*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "______________________________________________________________________________________________________________________", 0, 44, 44, "" }, /* 118 data */
567 /* 80*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, { 0, 0, "" }, "[90]12", 0, 10, 10, "" },
568 /* 81*/ { BARCODE_DATAMATRIX, GS1_MODE | GS1PARENS_MODE, -1, -1, -1, -1, { 0, 0, "" }, "(90)12", 0, 10, 10, "" },
569 /* 82*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 1, 2, "" }, "1", 0, 12, 12, "" },
570 /* 83*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 16, 16, "" }, "1", 0, 12, 12, "" },
571 /* 84*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 1, 1, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 720: Structured Append count '1' out of range (2 to 16)" },
572 /* 85*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 1, 17, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 720: Structured Append count '17' out of range (2 to 16)" },
573 /* 86*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 16, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 721: Structured Append index '0' out of range (1 to count 16)" },
574 /* 87*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 17, 16, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 721: Structured Append index '17' out of range (1 to count 16)" },
575 /* 88*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1001" }, "1", 0, 12, 12, "" },
576 /* 89*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "A" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 723: Invalid Structured Append ID (digits only)" },
577 /* 90*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "0" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 724: Structured Append ID1 '000' and ID2 '000' out of range (001 to 254) (ID \"000000\")" },
578 /* 91*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 725: Structured Append ID1 '000' out of range (001 to 254) (ID \"000001\")" },
579 /* 92*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1000" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 726: Structured Append ID2 '000' out of range (001 to 254) (ID \"001000\")" },
580 /* 93*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "001255" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 726: Structured Append ID2 '255' out of range (001 to 254) (ID \"001255\")" },
581 /* 94*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "255001" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 725: Structured Append ID1 '255' out of range (001 to 254) (ID \"255001\")" },
582 /* 95*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "255255" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 724: Structured Append ID1 '255' and ID2 '255' out of range (001 to 254) (ID \"255255\")" },
583 /* 96*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1234567" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 722: Structured Append ID length 7 too long (6 digit maximum)" },
584 /* 97*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, READER_INIT, { 2, 3, "1001" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 727: Cannot have Structured Append and Reader Initialisation at the same time" },
585 /* 98*/ { BARCODE_DATAMATRIX, ESCAPE_MODE, -1, -1, -1, -1, { 2, 3, "1001" }, "[)>\\R05\\GA\\R\\E", 0, 12, 26, "" }, /* Macro05/06 ignored if have Structured Append TODO: error/warning */
586 /* 99*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, { 0, 0, "" }, "1234,67", ZINT_ERROR_INVALID_DATA, -1, -1, "Error 203: Invalid character at position 5 in input (alphanumerics, space and \"-.$/+%\" only)" },
587 };
588 const int data_size = ARRAY_SIZE(data);
589 int i, length, ret;
590 struct zint_symbol *symbol = NULL;
591
592 testStartSymbol("test_options", &symbol);
593
594 for (i = 0; i < data_size; i++) {
595
596 if (testContinue(p_ctx, i)) continue;
597
598 symbol = ZBarcode_Create();
599 assert_nonnull(symbol, "Symbol not created\n");
600
601 debug &= ~ZINT_DEBUG_TEST; /* Want real errtxt */
602 length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, data[i].option_1, data[i].option_2, data[i].option_3, data[i].output_options, data[i].data, -1, debug);
603 if (data[i].structapp.count) {
604 symbol->structapp = data[i].structapp;
605 }
606
607 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
608 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
609
610 if (ret < ZINT_ERROR) {
611 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, symbol->errtxt);
612 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, symbol->errtxt);
613 }
614 assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d symbol->errtxt %s != %s\n", i, symbol->errtxt, data[i].expected_errtxt);
615
616 symbol->input_mode |= FAST_MODE;
617 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
618 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode FAST_MODE ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
619
620 if (ret < ZINT_ERROR) {
621 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
622 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
623 }
624 assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d symbol->errtxt %s != %s\n", i, symbol->errtxt, data[i].expected_errtxt);
625
626 ZBarcode_Delete(symbol);
627 }
628
629 testFinish();
630 }
631
632 static void test_reader_init(const testCtx *const p_ctx) {
633 int debug = p_ctx->debug;
634
635 struct item {
636 int symbology;
637 int input_mode;
638 int output_options;
639 char *data;
640 int ret;
641 int expected_rows;
642 int expected_width;
643 char *expected;
644 char *comment;
645 };
646 static const struct item data[] = {
647 /* 0*/ { BARCODE_DATAMATRIX, UNICODE_MODE, READER_INIT, "A", 0, 10, 10, "EA 42 81 19 A4 53 21 DF", "TODO: Check this" },
648 /* 1*/ { BARCODE_DATAMATRIX, GS1_MODE, READER_INIT, "[91]A", ZINT_ERROR_INVALID_OPTION, 0, 0, "Error 521: Cannot use Reader Initialisation in GS1 mode", "" },
649 };
650 const int data_size = ARRAY_SIZE(data);
651 int i, length, ret;
652 struct zint_symbol *symbol = NULL;
653
654 char escaped[1024];
655
656 testStartSymbol("test_reader_init", &symbol);
657
658 for (i = 0; i < data_size; i++) {
659
660 if (testContinue(p_ctx, i)) continue;
661
662 symbol = ZBarcode_Create();
663 assert_nonnull(symbol, "Symbol not created\n");
664
665 symbol->debug = ZINT_DEBUG_TEST; /* Needed to get codeword dump in errtxt */
666
667 length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, -1 /*option_2*/, -1, data[i].output_options, data[i].data, -1, debug);
668
669 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
670 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
671
672 if (p_ctx->generate) {
673 printf(" /*%3d*/ { %s, %s, %s, \"%s\", %s, %d, %d, \"%s\", \"%s\" },\n",
674 i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), testUtilOutputOptionsName(data[i].output_options),
675 testUtilEscape(data[i].data, length, escaped, sizeof(escaped)),
676 testUtilErrorName(data[i].ret), symbol->rows, symbol->width, symbol->errtxt, data[i].comment);
677 } else {
678 if (ret < ZINT_ERROR) {
679 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
680 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
681 }
682 assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
683 }
684
685 ZBarcode_Delete(symbol);
686 }
687
688 testFinish();
689 }
690
691 #define ZINT_TEST_ENCODING
692 #ifdef ZINT_TEST_ENCODING
693 INTERNAL int dm_encode_test(struct zint_symbol *symbol, const unsigned char source[], const int length, const int eci,
694 const int gs1, unsigned char target[], int *p_tp);
695 #endif
696
697 static void test_input(const testCtx *const p_ctx) {
698 int debug = p_ctx->debug;
699
700 struct item {
701 int input_mode;
702 int eci;
703 int option_2;
704 int option_3;
705 int output_options;
706 char *data;
707 int ret;
708
709 int expected_eci;
710 int expected_rows;
711 int expected_width;
712 int bwipp_cmp;
713 char *expected;
714 char *comment;
715
716 int expected_diff; /* Difference between default minimal encodation and ISO encodation (FAST_MODE) */
717 };
718 static const struct item data[] = {
719 /* 0*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "#208", 0 },
720 /* 1*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "#208", 0 },
721 /* 2*/ { UNICODE_MODE | FAST_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "", 0 },
722 /* 3*/ { UNICODE_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "", 0 },
723 /* 4*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY8", 0, 0, 18, 18, 0, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C E6 07 B7 82 5F D4 3D 08 EB 60 DA B1 82 72 50 A9 5B", "BWIPP different encodation (earlier change to C40)", 0 },
724 /* 5*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY8", 0, 0, 18, 18, 0, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C 2B 42 E6 82 5F D4 3D 0A 34 D7 21 4E D2 8D C5 9C D7", "AAAAAAAAAAAAAAAAAAAAAACCCCCC; BWIPP different encodation", 0 },
725 /* 6*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "", 0 },
726 /* 7*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C F0 A8 11 D5 05 46 5F D2 56 81 76 3C D6 92 14 9F E2", "AAAAAAAAAAAAAAAAAAAAEEEEEEEAAA; BWIPP same as FAST_MODE", 0 },
727 /* 8*/ { UNICODE_MODE | FAST_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80U", ZINT_ERROR_TOO_LONG, -1, 0, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", 0 },
728 /* 9*/ { UNICODE_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80U", ZINT_ERROR_TOO_LONG, -1, 0, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", 0 },
729 /* 10*/ { UNICODE_MODE | FAST_MODE, 0, 6, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "", 0 },
730 /* 11*/ { UNICODE_MODE, 0, 6, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C F0 A8 11 D5 05 46 5F D2 56 81 76 3C D6 92 14 9F E2", "AAAAAAAAAAAAAAAAAAAAEEEEEEEAAA; BWIPP same as FAST_MODE", 0 },
731 /* 12*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80UA", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C E6 07 B7 82 5F D4 3D 1E 5F FE 81 1E 1B B0 FE E7 54", "", 0 },
732 /* 13*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80UA", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C F0 A8 11 D5 05 46 78 C1 50 5F 81 3B 50 EE DB AE A4", "AAAAAAAAAAAAAAAAAAAAEEEEEEEEEEE; BWIPP same as FAST_MODE", 0 },
733 /* 14*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 81 42 B2 11 A8 F9 0A EC C1 1E 41", "X12 symbols_left 3, process_p 1", 0 },
734 /* 15*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>", 0, 0, 14, 14, 0, "3F 2B 0E 3F 2B 0E 3F 81 37 3F 04 F9 CC 02 2D 70 E0 FF", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
735 /* 16*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>*", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 2B 3F 05 D2 10 1B 9A 55 2F 68 C5", "X12 symbols_left 3, process_p 2", 0 },
736 /* 17*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>*", 0, 0, 14, 14, 0, "3F 2B 0E 3F 2B 0E 3F 2B 4A 88 C7 41 2E 92 94 9E 96 7B", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
737 /* 18*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>*\015", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 0C A9 FE 1F 30 3F EE 45 C1 1C D7 5F 7E", "X12 symbols_left 1, process_p 0", 0 },
738 /* 19*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>*\015", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 0C A9 FE 1F 30 3F EE 45 C1 1C D7 5F 7E", "X12 symbols_left 1, process_p 0", 0 },
739 /* 20*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEF", 0, 0, 12, 12, 1, "E6 59 E9 6D 24 3D 15 EF AA 21 F9 59", "C40 symbols_left 0, process_p 0", 0 },
740 /* 21*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF", 0, 0, 12, 12, 1, "E6 59 E9 6D 24 3D 15 EF AA 21 F9 59", "CCCCCC", 0 },
741 /* 22*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 81 8C 7E 09 5E 10 64 BC 5F 4C 91", "C40 symbols_left 3, process_p 1", 0 },
742 /* 23*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 DF 81 AB 07 40 5C C8 C2 F5 59 B3 10", "EEEEEEE; BWIPP same as FAST_MODE", 0 },
743 /* 24*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 49 2E 31 00 73 3B 8F 4B 55 93 19", "C40 symbols_left 3, process_p 2", 0 },
744 /* 25*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 81 D1 4D 5F 96 32 9F B2 A0 C7 8D", "EEEEEEEE; BWIPP same as FAST_MODE", 1 },
745 /* 26*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHI", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F FE 01 DE 20 9F AA C2 FF 8F 08 97", "C40 symbols_left 1, process_p 0", 0 },
746 /* 27*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 4A 34 B0 7A 27 3C 38 82 4C 30 21", "EEEEEEEEA; BWIPP same as FAST_MODE", 0 },
747 /* 28*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH12", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 4E 33 B3 46 F3 D5 F5 C0 4F 12 F2 ED", "C40 symbols_left 1, process_p 1", 0 },
748 /* 29*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH12", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 8E A7 6D C3 20 83 CE 1E A9 4F 39", "EEEEEEEEAA; BWIPP same as FAST_MODE", 0 },
749 /* 30*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHé", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 4A BB DA FE E1 A4 57 73 2B 4E 06 10 FB EE 83", "C40 symbols_left 1, process_p 0", 0 },
750 /* 31*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHé", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 1F EB 6A 80 70 2B 11 BD 91 6B 5F C9 AC 43", "AEEEEEEEA; BWIPP same as FAST_MODE", 0 },
751 /* 32*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJ", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F 4B AD 47 09 12 FF 2F 95 CA 5B 4A", "C40 symbols_left 1, process_p 1", 0 },
752 /* 33*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJ", 0, 0, 14, 14, 0, "42 E6 60 52 73 8D 86 C8 67 A3 F9 29 73 9C 15 90 7E 16", "ACCCCCCCCC; BWIPP same as FAST_MODE", 0 },
753 /* 34*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C D8 69 88 60 B9 33 B9 31 E6 BF CA", "C40 symbols_left 3, process_p 2", 0 },
754 /* 35*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 0, "F0 04 20 C4 14 61 C8 24 A2 DF B6 77 90 C2 39 AA 9B 61 7E F1 E3", "EEEEEEEEEEE; BWIPP same as FAST_MODE", 0 },
755 /* 36*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEF\001G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 00 3D FE 5D 5A F5 0A 8A 4E 1D 63 07 B9", "C40 symbols_left 1, process_p 0", 0 },
756 /* 37*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF\001G", 0, 0, 14, 14, 0, "42 43 F0 0C 41 46 02 48 57 A1 80 C5 8F EC 72 33 0A 26", "AAEEEEAA; BWIPP same as FAST_MODE", 0 },
757 /* 38*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG\001", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 FE 14 A3 27 63 01 2F B1 94 FE FA", "C40 symbols_left 1, process_p 0", 0 },
758 /* 39*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG\001", 0, 0, 14, 14, 0, "42 43 44 F0 10 51 87 02 50 0C 22 23 7E A3 2B DC 8A 62", "AAAEEEEA; BWIPP same as FAST_MODE", 0 },
759 /* 40*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG\001H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 49 C2 E6 DD 06 89 51 BA 8E 9D 1F", "C40 symbols_left 1, process_p 1", 0 },
760 /* 41*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG\001H", 0, 0, 14, 14, 0, "42 E6 60 52 73 8D 00 3E 66 13 C0 89 73 A8 53 20 F7 6F", "ACCCCCCCC; BWIPP same as FAST_MODE", 0 },
761 /* 42*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 81 BD 6D F3 94 FF 82 A6 BF BB F1 4F", "C40 symbols_left 1, process_p 1, backtracks", 0 },
762 /* 43*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 02 37 8F B4 A6 27 9E FA CF 1E 02", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
763 /* 44*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 81 FB 93 AE 8B 1C 90 DF FE EB C5 A0 2A 6A 4F", "C40 symbols_left 1, process_p 1, backtracks", 0 },
764 /* 45*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 02 37 8F B4 A6 27 9E FA CF 1E 02", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
765 /* 46*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH\001I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 4A E1 0D DD BC 56 E4 66 52 E6 AE 02", "C40 symbols_left 3, process_p 2, backtracks", 0 },
766 /* 47*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001I", 0, 0, 8, 32, 0, "42 43 44 45 F0 14 61 C8 02 4A 5F 21 C6 61 E1 7B 1C 13 FF 0D BA", "AAAAEEEEAA; BWIPP same as FAST_MODE", 0 },
767 /* 48*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 81 93 51 DF C0 0C D3 F9 72 13 17 52 5B 7E", "C40 symbols_left 5, process_p 2, backtracks", 0 },
768 /* 49*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001I", 0, 0, 16, 16, 0, "42 F0 08 31 05 18 72 1F 02 4A 81 93 FD 86 6C AF 6E C6 7C 99 74 21 C4 EF", "AEEEEEEEAA; BWIPP same as FAST_MODE", 0 },
769 /* 50*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHI\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 02 81 47 6C 3E 49 D3 FA 46 47 53 6E E5", "Switches to ASC for last char", 0 },
770 /* 51*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI\001", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 09 02 81 FA 72 8B 50 63 F2 BD D9 2E 1D CD", "AEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
771 /* 52*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 02 81 FB 93 33 E3 4F F7 2D 08 8A BF 64 C3 B0 26", "Switches to ASC for last char", 0 },
772 /* 53*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 02 81 FB 93 33 E3 4F F7 2D 08 8A BF 64 C3 B0 26", "CCCCCCCCCA", 0 },
773 /* 54*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH\001I\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 02 81 BD 5D C0 B9 09 25 87 3A 09 23 9D C0", "C40 symbols_left 1, process_p 1, backtracks 2", 0 },
774 /* 55*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001I\001", 0, 0, 8, 32, 0, "42 E6 60 52 73 8D 83 42 89 82 5F 2E 1D 6C 18 BB 25 C3 BF 7F E1", "ACCCCCCCCCC; BWIPP same as FAST_MODE", 1 },
775 /* 56*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEF+G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 07 E5 FE 6B 35 71 7F 3D 57 59 46 F7 B9", "C40 symbols_left 1, process_p 0", 0 },
776 /* 57*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF+G", 0, 0, 14, 14, 0, "F0 04 20 C4 14 6A C7 81 28 87 C6 C4 D6 50 53 DE 8D 80", "EEEEEEEE; BWIPP same as FAST_MODE", 1 },
777 /* 58*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG+", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 FE 33 F5 97 60 73 48 13 2E E5 74", "C40 symbols_left 1, process_p 0", 0 },
778 /* 59*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG+", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 EB 81 E8 04 8F 69 BD F5 01 28 03 0A", "EEEEEEEE; BWIPP same as FAST_MODE", 1 },
779 /* 60*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG+H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 49 E5 B0 6D 05 FB 36 18 34 86 91", "C40 symbols_left 1, process_p 1", 0 },
780 /* 61*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG+H", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 EB 49 4A 4B 86 44 96 1E F6 22 DC 82", "EEEEEEEEA; BWIPP same as FAST_MODE", 0 },
781 /* 62*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 02 BD 40 CF 3B 06 C2 DF 36 E0 48", "C40 symbols_left 1, process_p 1, backtracks", 0 },
782 /* 63*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH+", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 2C 1F DD 3B 4F 62 48 0E 16 F9 5D", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
783 /* 64*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 FB 93 F6 78 B5 69 0B 83 C6 32 62 1A D2 FF", "C40 symbols_left 1, process_p 1, backtracks", 0 },
784 /* 65*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 2C 1F DD 3B 4F 62 48 0E 16 F9 5D", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
785 /* 66*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH+I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 5E DD 6E E7 92 60 02 32 6B BF 05", "C40 symbols_left 3, process_p 2, backtracks", 0 },
786 /* 67*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH+I", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 2B 4A 81 E2 22 C5 B6 9C AB 0E F1 63 E5 EE", "AEEEEEEEEA; BWIPP same as FAST_MODE", 1 },
787 /* 68*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 81 93 09 2C 69 F5 07 84 5F E4 D5 62 E3 CE", "C40 symbols_left 5, process_p 2, backtracks", 0 },
788 /* 69*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+I", 0, 0, 16, 16, 0, "42 43 F0 0C 41 46 1C 8A C9 7C 81 93 A8 91 6E F7 89 AB E8 A5 8E CA F0 34", "AAEEEEEEEE; BWIPP same as FAST_MODE", 0 },
789 /* 70*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHI+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 F8 BC 8D 12 17 7E 22 27 DE 7F E2", "C40 symbols_left 3, process_p 2, backtracks", 0 },
790 /* 71*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI+", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 09 2C 81 45 A2 38 0B A7 76 D9 B9 A3 0C CA", "AEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
791 /* 72*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 FB 93 6B 10 E6 0E F9 75 A7 48 A6 F3 08 96", "Switches to ASC for last char", 0 },
792 /* 73*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 FB 93 6B 10 E6 0E F9 75 A7 48 A6 F3 08 96", "CCCCCCCCCA", 0 },
793 /* 74*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFjG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 0E 25 FE DA 14 D7 15 47 69 9D 4A 54 6D", "C40 symbols_left 1, process_p 0", 0 },
794 /* 75*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFjG", 0, 0, 14, 14, 0, "42 43 F0 0C 41 46 6B 48 77 B6 92 A1 DC 92 42 54 39 84", "AAEEEEAA; BWIPP same as FAST_MODE", 0 },
795 /* 76*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGj", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B FE B5 F3 24 0A 99 26 D6 CC A8 40", "C40 symbols_left 1, process_p 0", 0 },
796 /* 77*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGj", 0, 0, 14, 14, 0, "42 43 44 F0 10 51 87 6B 0D 41 FF FD 91 82 0B 8F CB AA", "AAAEEEEA; BWIPP same as FAST_MODE", 0 },
797 /* 78*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGjH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B 49 63 B6 DE 6F 11 58 DD D6 CB A5", "C40 symbols_left 1, process_p 1", 0 },
798 /* 79*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGjH", 0, 0, 14, 14, 0, "42 E6 60 52 73 8D 0E 26 0E F4 AD 89 C6 72 8A 26 34 65", "ACCCCCCCC; BWIPP same as FAST_MODE", 0 },
799 /* 80*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 ED 78 CB 9F 52 EE 52 88 91 67 96", "C40 symbols_left 1, process_p 1, backtracks", 0 },
800 /* 81*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHj", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 6B 6A C2 69 78 C8 BF DA 9C 5F CA", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
801 /* 82*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHj", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 FB 93 BF 72 03 35 09 37 98 FF 39 A7 E3 6D", "C40 symbols_left 1, process_p 1, backtracks", 0 },
802 /* 83*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHj", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 6B 6A C2 69 78 C8 BF DA 9C 5F CA", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
803 /* 84*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHjI", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A B1 18 E5 B7 FB 88 92 65 CC 38 DB", "C40 symbols_left 3, process_p 2, backtracks", 0 },
804 /* 85*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHjI", 0, 0, 8, 32, 0, "42 43 44 45 F0 14 61 C8 6B 4A 0F 34 FE 6A 4C 17 E8 24 D5 9B 63", "AAAAEEEEAA; BWIPP same as FAST_MODE", 0 },
805 /* 86*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHjI", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A 81 93 40 26 DF A9 05 30 01 29 8E DF D2 5C", "C40 symbols_left 5, process_p 2, backtracks", 0 },
806 /* 87*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHjI", 0, 0, 16, 16, 0, "42 F0 08 31 05 18 72 1F 6B 4A 81 93 EC 7F 73 0A B8 0F 0F A3 ED AC 4D CD", "AEEEEEEEAA; BWIPP same as FAST_MODE", 0 },
807 /* 88*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 6B 81 17 79 06 42 7E 96 B2 70 79 F8 3C", "Switches to ASC for last char", 0 },
808 /* 89*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIj", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 09 6B 81 AA 67 B3 5B CE 9E 49 EE 04 8B 14", "AEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
809 /* 90*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B EB 4B 81 DD D9 F9 C9 C5 38 F3 4B DB 80 92 A7", "Switches to ASC for last 2 chars", 0 },
810 /* 91*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJÊ", 0, 0, 8, 32, 0, "42 E6 60 52 73 8D 86 C8 0B 08 72 65 72 59 41 70 1B CE 76 D7 1F", "ACCCCCCCCCC; BWIPP same as FAST_MODE", 0 },
811 /* 92*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C EB 4B 15 17 46 06 70 F3 15 74 45 26 72 2D", "C40 symbols_left 3, process_p 2, backtracks", 0 },
812 /* 93*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKÊ", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 24 A2 DF EB 4B A1 42 E9 2A A8 3B 79 8B E9 40 E9 58", "EEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
813 /* 94*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKª", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB B2 FE 11 5C 60 32 A6 DE FC 7B 30 F1 03 56", "C40 symbols_left 1, process_p 0", 0 },
814 /* 95*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKª", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 24 A2 DF EB 2B 02 D1 85 74 F7 92 3F 2E 1F 07 A3 BE", "EEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
815 /* 96*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKê", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB DB FE 78 43 69 3C C2 FE F5 2E 1B 4F B6 04", "C40 symbols_left 1, process_p 0", 0 },
816 /* 97*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKê", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 24 A2 DF EB 6B C0 33 CD FB 9D 5C A0 E8 BB 7D 34 E1", "EEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
817 /* 98*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 1, "E8 8C E6 59 E9 6D 24 80 4A A9 8D FE 42 43 64 81 83 B4 8F 6B 95 F6 CE A6 3C 5C 77 86 08 50", "C40 symbols_left 3, process_p 1, backtracks", 0 },
818 /* 99*/ { GS1_MODE, 0, -1, -1, -1, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 0, "E8 8C 42 F0 08 31 05 18 72 1F E8 8C 42 43 64 81 12 DE 1C 0E B2 93 B3 C5 3C 58 A8 4A 83 4C", "AAAEEEEEEEAAAAAA; BWIPP same as FAST_MODE", 0 },
819 /*100*/ { GS1_MODE | FAST_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 1, "E8 8C E6 59 E9 6D 24 80 49 B6 0D FE 42 43 64 81 79 E4 20 33 76 5C C7 23 E6 C5 FA 4C FF 88", "C40 symbols_left 3, process_p 1, backtracks", 0 },
820 /*101*/ { GS1_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 0, "E8 8C 42 F0 08 31 05 18 72 1F 1E 8C 42 43 64 81 4E 3D 4C 86 78 D4 97 78 85 01 48 D5 B9 29", "AAAEEEEEEEAAAAAA; BWIPP same as FAST_MODE", 0 },
821 /*102*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdef", 0, 0, 12, 12, 1, "EF 59 E9 6D 24 E2 CC D9 B4 55 E2 6A", "TEX symbols_left 0, process_p 0", 0 },
822 /*103*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdef", 0, 0, 12, 12, 1, "EF 59 E9 6D 24 E2 CC D9 B4 55 E2 6A", "TTTTTT", 0 },
823 /*104*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 81 A9 65 CD 3A A2 E9 E0 B7 E1 E5", "TEX symbols_left 3, process_p 1", 0 },
824 /*105*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 81 4A 9E 59 19 83 14 93 AD 5E 19", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
825 /*106*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 69 68 36 28 3C 85 5A E9 D4 49 9A", "TEX symbols_left 3, process_p 2", 0 },
826 /*107*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 69 8B CD BC 1F A4 A7 9A CE F6 66", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
827 /*108*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghi", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 80 5F FE DA BF FA 16 71 15 22 4D E3 F3", "TEX symbols_left 1, process_p 0", 0 },
828 /*109*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghi", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 80 5F FE DA BF FA 16 71 15 22 4D E3 F3", "TTTTTTTTT", 0 },
829 /*110*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdef\001g", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 00 3D FE 86 3B 2F 83 51 99 C0 A1 EC DD", "TEX symbols_left 1, process_p 0", 0 },
830 /*111*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdef\001g", 0, 0, 14, 14, 0, "62 63 64 65 66 67 02 68 51 87 9F 1D E9 36 3E B2 5F 4F", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
831 /*112*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefg\001", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 FE CF C2 FD EA DA F8 6C 56 15 9E", "TEX symbols_left 1, process_p 0", 0 },
832 /*113*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg\001", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 02 AC 5C B2 29 96 15 DB C2 87 96", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
833 /*114*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefg\001h", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 69 7A 9B EB A4 5E DE 99 25 01 8C", "TEX symbols_left 1, process_p 1", 0 },
834 /*115*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg\001h", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 00 3E DC 69 2C DB 8D 1B C4 DF 8C 9A", "ATTTTTTTT; BWIPP same as FAST_MODE", 0 },
835 /*116*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 81 EB 84 25 32 6E 1B 5A FB 1D 25 4A", "TEX symbols_left 1, process_p 1, backtracks", 0 },
836 /*117*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 42 A7 27 45 DE 64 B7 93 23 AF 04", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
837 /*118*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 81 FB 93 93 FD 1E 3B BA 1D 16 4D 59 41 EC B9", "TEX symbols_left 1, process_p 1, backtracks", 0 },
838 /*119*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 42 A7 27 45 DE 64 B7 93 23 AF 04", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
839 /*120*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh\001i", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 31 35 48 9B 93 6E 15 BB 02 9D F4", "TEX symbols_left 3, process_p 2, backtracks", 0 },
840 /*121*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001i", 0, 0, 8, 32, 0, "62 63 64 65 66 67 68 69 02 6A D2 78 3E D1 EC CE 72 33 20 0E F2", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
841 /*122*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001i", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 81 93 DE D7 EC 9B 7D 72 9C 68 B8 6E CF 31", "TEX symbols_left 3, process_p 2, backtracks", 0 },
842 /*123*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001i", 0, 0, 16, 16, 0, "62 63 64 65 66 67 68 69 02 6A 81 93 45 9D 38 FC 6B CA 1C 9B DF 3F C8 30", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
843 /*124*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghi\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 02 81 4D AB 30 86 CD D1 9D F3 15 F5 B1", "Switches to ASC for last char", 0 },
844 /*125*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghi\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 02 81 4D AB 30 86 CD D1 9D F3 15 F5 B1", "TTTTTTTTTA", 0 },
845 /*126*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh\001i\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 02 81 32 55 EC 2E A7 AE 69 41 A6 1F 09 8F", "TEX symbols_left 1, process_p 1, backtracks 2", 0 },
846 /*127*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001i\001", 0, 0, 8, 32, 0, "62 EF 60 52 73 8D 83 42 89 82 80 A6 CC 72 8E 8C C5 75 D3 0D C2", "ATTTTTTTTTT; BWIPP same as FAST_MODE", 1 },
847 /*128*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefJg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 0E 25 FE 01 75 0D 9C 9C BE 40 88 BF 09", "TEX symbols_left 1, process_p 0", 0 },
848 /*129*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefJg", 0, 0, 14, 14, 0, "62 63 64 65 66 67 4B 68 8F EA 93 94 D3 12 8F FF 2A FD", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
849 /*130*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgJ", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B FE 6E 92 FE 83 42 F1 0B 0E 43 24", "TEX symbols_left 1, process_p 0", 0 },
850 /*131*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgJ", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 4B 92 0D 83 DC 75 6C 05 F8 B1 A9", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
851 /*132*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgJh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B 69 DB CB E8 CD C6 D7 FE 7D 57 36", "TEX symbols_left 1, process_p 1", 0 },
852 /*133*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgJh", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 0E 26 B4 8E 41 DB 38 C1 1D D9 4F 90", "ATTTTTTTT; BWIPP same as FAST_MODE", 0 },
853 /*134*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 15 8A 35 57 7F 33 B3 48 01 E0 BD", "TEX symbols_left 1, process_p 1, backtracks", 0 },
854 /*135*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghJ", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 9B 9F 08 C5 04 B1 AF BD 32 C5 7D", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
855 /*136*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 FB 93 5B D4 D2 8B EE 85 F2 3E 3F 8E E5 04", "TEX symbols_left 1, process_p 1, backtracks", 0 },
856 /*137*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJ", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 9B 9F 08 C5 04 B1 AF BD 32 C5 7D", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
857 /*138*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghJi", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A CF 3B 58 FE 82 46 FC 08 1E 58 03", "TEX symbols_left 3, process_p 2, backtracks", 0 },
858 /*139*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghJi", 0, 0, 8, 32, 0, "62 63 64 65 66 67 68 69 4B 6A 2C 76 2E B4 FD E6 9B 80 3C CB 05", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
859 /*140*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJi", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A 81 93 16 FE 20 2B 29 EA 78 1B DE A1 C6 8C", "TEX symbols_left 3, process_p 2, backtracks", 0 },
860 /*141*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJi", 0, 0, 16, 16, 0, "62 63 64 65 66 67 68 69 4B 6A 81 93 8D B4 F4 4C 3F 52 F8 E8 B9 F0 C1 8D", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
861 /*142*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghiJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 4B 81 B3 A5 20 E3 DC F9 74 40 09 30 46", "Switches to ASC for last char", 0 },
862 /*143*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghiJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 4B 81 B3 A5 20 E3 DC F9 74 40 09 30 46", "TTTTTTTTTA", 0 },
863 /*144*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghijkÊ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB DB FE 3E C8 EC 73 58 A7 42 46 10 49 25 99", "TEX symbols_left 1, process_p 0", 0 },
864 /*145*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkÊ", 0, 0, 16, 16, 0, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 4B 38 32 3E 60 A3 93 26 A6 E7 35 73 96", "TTTTTTTTTAAA; BWIPP same as FAST_MODE", 0 },
865 /*146*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghijkª", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB B2 FE 57 D7 E5 7D 3C 87 4B 13 3B F7 90 CB", "TEX symbols_left 1, process_p 0", 0 },
866 /*147*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkª", 0, 0, 16, 16, 0, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 2B 9B A1 52 3E FC 3A 60 03 11 72 39 70", "TTTTTTTTTAAA; BWIPP same as FAST_MODE", 0 },
867 /*148*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghijkê", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 6B 59 43 1A B1 96 F4 FF C5 B5 08 AE 2F", "TEX symbols_left 3, process_p 2, backtracks", 0 },
868 /*149*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkê", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 6B 59 43 1A B1 96 F4 FF C5 B5 08 AE 2F", "TEX symbols_left 3, process_p 2, backtracks", 0 },
869 /*150*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 1, "E8 8C EF 59 E9 6D 24 80 4A A9 8D FE 62 63 44 81 88 DC 73 33 70 A1 83 EA 50 CB 4E 17 90 DB", "TEX symbols left 3, process_p 1, backtracks", 0 },
870 /*151*/ { GS1_MODE, 0, -1, -1, -1, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 0, "E8 8C 62 63 64 65 66 67 68 69 E8 8C 62 63 44 81 43 79 B0 35 F6 1E AB 24 19 85 40 E7 B2 49", "AAAAAAAAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
871 /*152*/ { GS1_MODE | FAST_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 1, "E8 8C EF 59 E9 6D 24 80 49 B6 0D FE 62 63 44 81 72 8C DC 6B 93 0B 8A 6F 8A 52 C3 DD 67 03", "TEX symbols left 3, process_p 1, backtracks", 0 },
872 /*153*/ { GS1_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 0, "E8 8C 62 63 64 65 66 67 68 69 1E 8C 62 63 44 81 1F 9A E0 BD 3C 59 8F 99 A0 DC A0 78 88 2C", "AAAAAAAAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
873 /*154*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>", 0, 0, 12, 12, 1, "EE 00 2B 00 2B 83 3B 0A CE 32 36 65", "X12 symbols_left 0, process_p 0", 0 },
874 /*155*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>", 0, 0, 12, 12, 1, "EE 00 2B 00 2B 83 3B 0A CE 32 36 65", "X12 symbols_left 0, process_p 0", 0 },
875 /*156*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 81 C0 6C BF 37 F6 D6 48 71 E2 38", "Switches to ASC for last char", 0 },
876 /*157*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015", 0, 0, 14, 14, 0, "0E 2B 3F 0E 2B 3F 0E 81 33 CC F8 AA 23 B8 F3 40 BC DB", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
877 /*158*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 2B BD DB 7C 8F 14 46 F1 9F 94 BC", "Switches to ASC for last 2 chars", 0 },
878 /*159*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*", 0, 0, 14, 14, 0, "0E 2B 3F 0E 2B 3F 0E 2B 4E 7B 3B 12 C1 28 4A AE CA 5F", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
879 /*160*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B FE BF 81 70 74 1C 65 10 0C 06 38", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
880 /*161*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B FE BF 81 70 74 1C 65 10 0C 06 38", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
881 /*162*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B 0E 1C DB D8 26 3E EC CF 9C C3 4A", "X12 symbols_left 1, process_p 1, ASC no latch at end", 0 },
882 /*163*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015", 0, 0, 14, 14, 0, "0E EE 06 91 06 91 06 91 71 69 39 1E 01 32 D5 57 81 8E", "AXXXXXXXXX; BWIPP same as FAST_MODE", 0 },
883 /*164*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B FE 0E 2B 65 37 5F 2F F3 96 BE 9A 03 55 68", "X12 symbols_left 3, process_p 2, ASC last 2 chars", 0 },
884 /*165*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*", 0, 0, 8, 32, 0, "0E 2B EE 0C 82 0C 82 0C 82 FE E7 2D 83 16 AA 07 19 34 F4 F8 7B", "AAXXXXXXXXX; BWIPP same as FAST_MODE", 0 },
885 /*166*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*>", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B 00 2B FE 6E 95 3A 10 58 4E 96 06 79 09 94", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
886 /*167*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*>", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B 00 2B FE 6E 95 3A 10 58 4E 96 06 79 09 94", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
887 /*168*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 81 2D 71 45 13 9B FF A1 B0 0B E2", "EDIFACT symbols_left 1, process_p 0", 0 },
888 /*169*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 81 2D 71 45 13 9B FF A1 B0 0B E2", "EDIFACT symbols_left 1, process_p 0", 0 },
889 /*170*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 34 81 E8 6C 9E CE 12 CB F5 58 3F", "EDIFACT symbols_left 1, process_p 1", 0 },
890 /*171*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 34 81 E8 6C 9E CE 12 CB F5 58 3F", "EEEEEEEEA", 0 },
891 /*172*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B7 C0 33 C6 81 E1 63 6E 5E B4 27 30 C9", "EDIFACT symbols_left 3, process_p 2", 0 },
892 /*173*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+", 0, 0, 8, 32, 0, "41 F0 07 17 82 CB F0 F3 2C 81 38 6D 00 EB 77 36 F8 D8 99 B4 1C", "AEEEEEEEEA; BWIPP same as FAST_MODE", 1 },
893 /*174*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 1F 4D E1 79 04 2B BC 05 6C 38 73 39", "EDIFACT symbols_left 3, process_p 3", 0 },
894 /*175*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 1F 4D E1 79 04 2B BC 05 6C 38 73 39", "EEEEEEEEEEE", 0 },
895 /*176*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 F4 EC B3 DC 03 A3 1F B5 86 C3 F7", "EDIFACT symbols_left 0, process_p 0", 0 },
896 /*177*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 F4 EC B3 DC 03 A3 1F B5 86 C3 F7", "EDIFACT symbols_left 0, process_p 0", 0 },
897 /*178*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 81 42 96 43 6E 92 0D A9 B1 65 3C CF 9B", "EDIFACT symbols_left 2, process_p 1", 0 },
898 /*179*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=", 0, 0, 16, 16, 0, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 81 42 96 43 6E 92 0D A9 B1 65 3C CF 9B", "EEEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
899 /*180*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=E", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 46 AD 8C F2 D8 5D AF F3 65 08 1F E3 A5", "EDIFACT symbols_left 2, process_p 2", 0 },
900 /*181*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=E", 0, 0, 16, 16, 0, "41 F0 07 17 82 CB F0 F3 AC 4D 3D 46 16 18 75 8F 52 46 7B 18 F6 68 F1 43", "AEEEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
901 /*182*/ { DATA_MODE | FAST_MODE, 0, -1, -1, -1, "\377\376", 0, 0, 12, 12, 1, "EB 80 EB 7F 81 6F A8 0F 21 6F 5F 88", "FN4 A7F FN4 A7E, 1 pad", 0 },
902 /*183*/ { DATA_MODE, 0, -1, -1, -1, "\377\376", 0, 0, 12, 12, 1, "EB 80 EB 7F 81 6F A8 0F 21 6F 5F 88", "FN4 A7F FN4 A7E, 1 pad", 0 },
903 /*184*/ { DATA_MODE | FAST_MODE, 0, -1, -1, -1, "\377\376\375", 0, 0, 12, 12, 1, "E7 2C C0 55 E9 67 45 8A D2 7E A9 23", "BAS BFF BFE BFD, no padding", 0 },
904 /*185*/ { DATA_MODE, 0, -1, -1, -1, "\377\376\375", 0, 0, 12, 12, 1, "E7 2C C0 55 E9 67 45 8A D2 7E A9 23", "BAS BFF BFE BFD, no padding", 0 },
905 /*186*/ { DATA_MODE | FAST_MODE, 3, -1, -1, -1, "\101\102\103\104\300\105\310", 0, 3, 16, 16, 0, "F1 04 42 43 E7 87 5B F1 03 1D 36 81 2C E3 87 24 2D FD 69 9C 87 FA 8A 73", "ECI 4 ASC A41 A42 BAS B43 B44 BC0 B45 BC8; BWIPP different encodation (uses only B256, same no. of codewords)", 0 },
906 /*187*/ { DATA_MODE, 3, -1, -1, -1, "\101\102\103\104\300\105\310", 0, 3, 16, 16, 0, "F1 04 42 43 44 45 EB 41 46 EB 49 81 6E 28 91 70 A5 CC E6 32 B6 3F 15 1C", "ECI 4 ASC A41 A42 BAS B43 B44 BC0 B45 BC8; BWIPP different encodation (uses only B256, same no. of codewords)", 0 },
907 /*188*/ { UNICODE_MODE | FAST_MODE, 26, -1, -1, -1, "ABCDÀEÈ", 0, 26, 12, 26, 1, "F1 1B E7 60 2D C4 5B F1 06 58 B3 C7 21 81 57 ED 3D C0 12 2E 6C 80 58 CC 2C 05 0D 31 FC 2D", "ECI 27 BAS B41 B42 B43 B44 BC3 B80 B45 BC3 B88", 0 },
908 /*189*/ { UNICODE_MODE, 26, -1, -1, -1, "ABCDÀEÈ", 0, 26, 12, 26, 0, "F1 1B 42 43 44 45 E7 B2 06 58 B3 C7 21 81 57 ED A8 34 CC 27 DA F6 B0 4D B7 FC AF 96 56 57", "AAAABBBBB; BWIPP same as FAST_MODE", 0 },
909 /*190*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 12, 12, 1, "Warning F1 0A EB 63 81 41 56 DA C0 3D 2D CC", "ECI 10 FN4 A62", 0 },
910 /*191*/ { UNICODE_MODE, 0, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 12, 12, 1, "Warning F1 0A EB 63 81 41 56 DA C0 3D 2D CC", "ECI 10 FN4 A62", 0 },
911 /*192*/ { UNICODE_MODE | FAST_MODE, 127, -1, -1, -1, "A", 0, 127, 12, 12, 1, "F1 80 01 42 81 14 A2 86 07 F5 27 30", "ECI 128 A41", 0 },
912 /*193*/ { UNICODE_MODE, 127, -1, -1, -1, "A", 0, 127, 12, 12, 1, "F1 80 01 42 81 14 A2 86 07 F5 27 30", "ECI 128 A41", 0 },
913 /*194*/ { UNICODE_MODE | FAST_MODE, 16382, -1, -1, -1, "A", 0, 16382, 12, 12, 1, "F1 BF FE 42 81 29 57 AA A0 92 B2 45", "ECI 16383 A41", 0 },
914 /*195*/ { UNICODE_MODE, 16382, -1, -1, -1, "A", 0, 16382, 12, 12, 1, "F1 BF FE 42 81 29 57 AA A0 92 B2 45", "ECI 16383 A41", 0 },
915 /*196*/ { UNICODE_MODE | FAST_MODE, 810899, -1, -1, -1, "A", 0, 810899, 12, 12, 1, "F1 CC 51 05 42 BB A5 A7 8A C6 6E 0F", "ECI 810900 A41", 0 },
916 /*197*/ { UNICODE_MODE, 810899, -1, -1, -1, "A", 0, 810899, 12, 12, 1, "F1 CC 51 05 42 BB A5 A7 8A C6 6E 0F", "ECI 810900 A41", 0 },
917 /*198*/ { UNICODE_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R05\\GA\\R\\E", 0, 0, 10, 10, 1, "EC 42 81 5D 17 49 F6 B6", "Macro05 A41", 0 },
918 /*199*/ { UNICODE_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R05\\GA\\R\\E", 0, 0, 10, 10, 1, "EC 42 81 5D 17 49 F6 B6", "Macro05 A41", 0 },
919 /*200*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKLM*", 0, 0, 16, 16, 1, "EE 59 E9 6D 24 80 5F 93 9A FE 4E 2B 09 FF 50 A2 83 BE 32 E1 2F 17 1E F3", "C40 == X12, p_r_6_2_1 true", 0 },
920 /*201*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKLM*", 0, 0, 16, 16, 0, "42 F0 08 31 05 18 72 09 28 B3 0D 2B 63 64 96 E4 6C CE D3 47 9A 5F E8 70", "AEEEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
921 /*202*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015\015\015\015\015\015\015\015\015a\015\015\015\015\015\015\015", 0, 0, 12, 26, 1, "EE 00 01 00 01 00 01 FE 62 EE 00 01 00 01 FE 0E B5 9A 73 85 83 20 23 2C E0 EC EC BF 71 E0", "a not X12 encodable", 0 },
922 /*203*/ { UNICODE_MODE, 0, -1, -1, -1, "\015\015\015\015\015\015\015\015\015a\015\015\015\015\015\015\015", 0, 0, 12, 26, 0, "EE 00 01 00 01 00 01 FE 62 0E 0E 0E 0E 0E 0E 0E F3 21 61 11 C7 BA 48 DE 65 86 FE 7E A2 F5", "XXXXXXXXXAAAAAAAA; BWIPP same as FAST_MODE", 0 },
923 /*204*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ".........a.......", 0, 0, 18, 18, 0, "(32) F0 BA EB AE BA EB AE B9 F0 62 2F 2F 2F 2F 2F 2F 2F 81 78 BE 1F 90 B8 89 73 66 DC BD", "a not EDIFACT encodable; BWIPP different encodation (switches to ASCII one dot before)", 0 },
924 /*205*/ { UNICODE_MODE, 0, -1, -1, -1, ".........a.......", 0, 0, 18, 18, 0, "(32) 2F 2F F0 BA EB AE BA EB 9F 62 F0 BA EB AE BA EB 9F 81 F4 71 C0 AF 4F 8C 04 D9 F3 E3", "AAEEEEEEEAEEEEEEE; BWIPP different encodation", 0 },
925 /*206*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]........[91]....", 0, 0, 12, 26, 1, "E8 DC 2F 2F 2F 2F 2F 2F 2F 2F E8 DD 2F 2F 2F 2F C6 CC 13 68 0D 9D A9 A5 B8 D5 5A F3 7B 18", "Can't use GS1 EDIFACT if contains FNC1/GS", 0 },
926 /*207*/ { GS1_MODE, 0, -1, -1, -1, "[90]........[91]....", 0, 0, 12, 26, 0, "E8 DC 2F F0 BA EB AE BA EB 9F E8 DD 2F 2F 2F 2F FE B0 C3 BC 8E AA AC CF 01 84 72 DF 59 6A", "AAAEEEEEEEAAAAAAA; BWIPP same as FAST_MODE", 0 },
927 /*208*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]........", 0, 0, 8, 32, 1, "E8 DC F0 BA EB AE BA EB AE 81 B1 C0 AB DA A5 92 AF E2 05 DE 56", "Can use GS1 EDIFACT if no FNC1/GS", 0 },
928 /*209*/ { GS1_MODE, 0, -1, -1, -1, "[90]........", 0, 0, 8, 32, 1, "E8 DC F0 BA EB AE BA EB AE 81 B1 C0 AB DA A5 92 AF E2 05 DE 56", "Can use GS1 EDIFACT if no FNC1/GS", 0 },
929 /*210*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]ABCDEFGH[91]ABCD", 0, 0, 12, 26, 1, "E8 DC E6 59 E9 6D 24 80 4A AA CE 59 E9 FE 45 81 6A 05 49 36 67 C8 00 DE 35 29 C5 9A 17 EA", "GS1 C40 ok", 0 },
930 /*211*/ { GS1_MODE, 0, -1, -1, -1, "[90]ABCDEFGH[91]ABCD", 0, 0, 12, 26, 0, "E8 DC 42 E6 60 52 73 8D 83 84 52 17 60 52 FE 81 25 A6 B1 A9 6D 2E 30 9E A7 F7 F8 99 55 11", "AAACCCCCCCCCCCCCC; BWIPP same as FAST_MODE", 0 },
931 /*212*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]ABCD", 0, 0, 14, 14, 1, "E8 DC 42 43 44 45 81 38 98 32 8C 23 4D 87 5A 95 04 A7", "Final ASC unlatch", 0 },
932 /*213*/ { GS1_MODE, 0, -1, -1, -1, "[90]ABCD", 0, 0, 14, 14, 1, "E8 DC 42 43 44 45 81 38 98 32 8C 23 4D 87 5A 95 04 A7", "AAAAAA", 0 },
933 /*214*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>......", 0, 0, 12, 26, 0, "EE 0C A9 0C A9 FE 3F 2F 2F 2F 2F 2F 2F 81 57 ED 0F 29 C7 9D 5D 64 61 94 14 CD A8 DF 65 8D", "X12 then ASC; BWIPP switches to ASCII earlier", 1 },
934 /*215*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>......", 0, 0, 12, 26, 0, "3F 2B 0E 3F 2B 0E F0 FA EB AE BA EB 9F 81 57 ED E8 73 07 E0 2D 09 CD 94 36 26 E4 EB 34 6E", "AAAAAAEEEEEEE; BWIPP different encodation", 0 },
935 /*216*/ { UNICODE_MODE | FAST_MODE, 0, 4, -1, -1, "ABCDEFGH", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 81 65 FB 93 F7 A4 EA B0 37 00 4F 4C 8A 99 0B 69", "", 0 },
936 /*217*/ { UNICODE_MODE, 0, 4, -1, -1, "ABCDEFGH", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 7C 81 65 FB 93 D7 12 24 0A 2D B8 CF C8 33 D8 87 D1", "EEEEEEEE; BWIPP same as FAST_MODE", 0 },
937 /*218*/ { UNICODE_MODE | FAST_MODE, 0, 26, -1, -1, "@@@@@@@@@_", 0, 0, 8, 32, 0, "F0 00 00 00 00 00 1F 41 41 60 63 50 E0 FE 8B 46 16 38 FE 58 AD", "BWIPP switches to ASCII later", 0 },
938 /*219*/ { UNICODE_MODE, 0, 26, -1, -1, "@@@@@@@@@_", 0, 0, 8, 32, 0, "41 F0 00 00 00 00 00 00 60 81 39 60 6A 49 C1 4A CD 3A 69 51 E0", "AEEEEEEEEA; BWIPP different encodation", 1 },
939 /*220*/ { UNICODE_MODE | FAST_MODE, 0, 4, -1, -1, "@@@@@@@@@_", 0, 0, 16, 16, 0, "F0 00 00 00 00 00 1F 41 41 60 81 93 F9 B0 1A A1 B9 6C D3 01 38 CD 51 75", "BWIPP switches to ASCII later", 0 },
940 /*221*/ { UNICODE_MODE, 0, 4, -1, -1, "@@@@@@@@@_", 0, 0, 16, 16, 0, "41 41 F0 00 00 00 00 00 1F 60 81 93 F3 2C 45 BF 89 58 D4 46 51 57 01 F3", "AAEEEEEEEA; BWIPP different encodation", 0 },
941 /*222*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 0, 0, 26, 26, 1, "(72) F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "", 0 },
942 /*223*/ { UNICODE_MODE, 0, -1, -1, -1, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 0, 0, 26, 26, 1, "(72) F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE", 0 },
943 /*224*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C D8 69 88 60 B9 33 B9 31 E6 BF CA", "", 0 },
944 /*225*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 0, "F0 04 20 C4 14 61 C8 24 A2 DF B6 77 90 C2 39 AA 9B 61 7E F1 E3", "EEEEEEEEEEE; BWIPP same as FAST_MODE", 0 },
945 /*226*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\001AAAAA", 0, 0, 14, 14, 1, "02 42 42 42 42 42 81 38 80 00 99 9E F5 8F 04 71 FB 4E", "", 0 },
946 /*227*/ { UNICODE_MODE, 0, -1, -1, -1, "\001AAAAA", 0, 0, 14, 14, 0, "02 42 42 42 42 42 81 38 80 00 99 9E F5 8F 04 71 FB 4E", "AAAAAA; BWIPP same as FAST_MODE", 0 },
947 /*228*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\001AAAAAA", 0, 0, 14, 14, 1, "02 E6 59 BF 59 BF FE 81 EC 06 F3 00 0B 1F AA CB FC EB", "", 0 },
948 /*229*/ { UNICODE_MODE, 0, -1, -1, -1, "\001AAAAAA", 0, 0, 14, 14, 0, "02 42 F0 04 10 41 42 81 9C E9 2B 19 D3 07 3C 11 0E 63", "AAEEEEA; BWIPP same as FAST_MODE", 0 },
949 /*230*/ { DATA_MODE | FAST_MODE, 0, -1, -1, -1, "\200\076\076\076\076\076\076\076", 0, 0, 8, 32, 0, "E7 2D 41 EE 0C D3 0C D3 FE 3F 81 93 1A AE 50 D6 E0 FB 18 EA 2E", "BAS X12; BWIPP different encodation", 0 },
950 /*231*/ { DATA_MODE, 0, -1, -1, -1, "\200\076\076\076\076\076\076\076", 0, 0, 14, 14, 0, "EB 01 3F EE 0C D3 0C D3 C3 98 B8 7F 21 0C 23 45 A9 27", "AAXXXXXX; BWIPP different encodation", 2 },
951 /*232*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ".....12", 0, 0, 14, 14, 1, "2F 2F 2F 2F 2F 8E 81 38 18 5E 9A 70 18 19 D0 35 7E 82", "ASC", 0 },
952 /*233*/ { UNICODE_MODE, 0, -1, -1, -1, ".....12", 0, 0, 14, 14, 0, "2F 2F 2F 2F 2F 8E 81 38 18 5E 9A 70 18 19 D0 35 7E 82", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
953 /*234*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "aaaaaa", 0, 0, 12, 12, 1, "EF 59 BF 59 BF 1B 98 38 0A E1 70 F9", "ASC", 0 },
954 /*235*/ { UNICODE_MODE, 0, -1, -1, -1, "aaaaaa", 0, 0, 12, 12, 1, "EF 59 BF 59 BF 1B 98 38 0A E1 70 F9", "TTTTTT", 0 },
955 /*236*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "AAAAAAAAAAAAAA12a", 0, 0, 12, 26, 1, "E6 59 BF 59 BF 59 BF 59 BF 59 B6 25 D2 FE 81 ED 63 5A 30 1D C5 77 70 66 93 2B 6A 40 23 22", "", 0 },
956 /*237*/ { UNICODE_MODE, 0, -1, -1, -1, "AAAAAAAAAAAAAA12a", 0, 0, 12, 26, 0, "E6 59 BF 59 BF 59 BF 59 BF FE 42 42 8E 62 81 ED 19 C5 3F C8 AC F1 E9 F5 68 75 AA 6C 14 72", "CCCCCCCCCCCCAAAAA; BWIPP same as FAST_MODE", 0 },
957 /*238*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "1234ééé12", 0, 0, 8, 32, 0, "8E A4 E7 59 D5 6B EB 6A 8E 81 22 4D 35 A9 CA 58 B3 1B 33 B7 DD", "N12 N34 BAS BE9 BE9 ASC FN4 A69 N12; BWIPP same as non-FAST_MODE", 0 },
958 /*239*/ { UNICODE_MODE, 0, -1, -1, -1, "1234ééé12", 0, 0, 14, 14, 1, "8E A4 E7 5A D5 6B 01 8E 1C 5C 58 A7 11 8D DD A8 D6 B9", "", 1 },
959 /*240*/ { UNICODE_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C 1\013*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 21 32 0C EE 08 9B 64 7E 57 B8 0F 04 21 72 FE 81 68 FE", "Okapi datamatrix/ascii-within-x12.png", 1 },
960 /*241*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C 1\013*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 21 32 0C EE 08 9B 64 7E 57 B8 0F 04 21 72 FE 81 68 FE", "Okapi datamatrix/ascii-within-x12.png, process_p 2", 1 },
961 /*242*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C \0131*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 21 0C EE 1F 78 0F 04 21 72 5E 21 13 97 FE 2B 81 68 FE", "process_p 1", 1 },
962 /*243*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C\013 1*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 0C EE 13 8A 5E 21 13 97 08 9B 64 7E FE 42 2B 81 68 FE", "process_p 0", 1 },
963 /*244*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C 1*\013B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 13 8A FE 0C EE 5E 21 13 97 08 9B 64 7E FE 42 2B 81 68 FE", "process_p 0", 1 },
964 };
965 const int data_size = ARRAY_SIZE(data);
966 int i, length, ret;
967 struct zint_symbol *symbol = NULL;
968
969 char escaped[8192];
970 char cmp_buf[32768];
971 char cmp_msg[1024];
972
973 int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */
974 int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); /* Only do ZXing-C++ test if asked, too slow otherwise */
975
976 testStartSymbol("test_input", &symbol);
977
978 for (i = 0; i < data_size; i++) {
979
980 if (testContinue(p_ctx, i)) continue;
981
982 symbol = ZBarcode_Create();
983 assert_nonnull(symbol, "Symbol not created\n");
984
985 symbol->debug = ZINT_DEBUG_TEST; /* Needed to get codeword dump in errtxt */
986
987 length = testUtilSetSymbol(symbol, BARCODE_DATAMATRIX, data[i].input_mode, data[i].eci, -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options, data[i].data, -1, debug);
988
989 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
990 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
991
992 if (p_ctx->generate) {
993 printf(" /*%3d*/ { %s, %d, %d, %s, %s, \"%s\", %s, %d, %d, %d, %d, \"%s\", \"%s\", %d },\n",
994 i, testUtilInputModeName(data[i].input_mode), data[i].eci, data[i].option_2,
995 testUtilOption3Name(BARCODE_DATAMATRIX, data[i].option_3),
996 testUtilOutputOptionsName(data[i].output_options), testUtilEscape(data[i].data, length, escaped, sizeof(escaped)),
997 testUtilErrorName(data[i].ret), ret < ZINT_ERROR ? symbol->eci : -1, symbol->rows, symbol->width,
998 data[i].bwipp_cmp, symbol->errtxt, data[i].comment, data[i].expected_diff);
999 } else {
1000 if (ret < ZINT_ERROR) {
1001 assert_equal(symbol->eci, data[i].expected_eci, "i:%d eci %d != %d\n", i, symbol->eci, data[i].expected_eci);
1002 assert_equal(symbol->rows, data[i].expected_rows, "i:%d rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
1003 assert_equal(symbol->width, data[i].expected_width, "i:%d width %d != %d\n", i, symbol->width, data[i].expected_width);
1004 }
1005 assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
1006
1007 if (ret < ZINT_ERROR) {
1008 if (do_bwipp && testUtilCanBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, debug)) {
1009 if (!data[i].bwipp_cmp) {
1010 if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
1011 } else {
1012 char modules_dump[144 * 144 + 1];
1013 assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
1014 ret = testUtilBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, data[i].data, length, NULL, cmp_buf, sizeof(cmp_buf), NULL);
1015 assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
1016
1017 ret = testUtilBwippCmp(symbol, cmp_msg, cmp_buf, modules_dump);
1018 assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n",
1019 i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, modules_dump);
1020 }
1021 }
1022 if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
1023 int cmp_len, ret_len;
1024 char modules_dump[144 * 144 + 1];
1025 assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
1026 ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
1027 assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
1028
1029 ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
1030 assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
1031 i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
1032 }
1033 }
1034
1035 #ifdef ZINT_TEST_ENCODING
1036 if (ret < ZINT_ERROR) {
1037 if (i && (data[i].input_mode & 0x07) == (data[i - 1].input_mode & 0x07) && !(data[i].input_mode & FAST_MODE) && (data[i - 1].input_mode & FAST_MODE)
1038 && data[i].eci == data[i - 1].eci && data[i].option_2 == data[i - 1].option_2
1039 && data[i].option_3 == data[i - 1].option_3 && data[i].output_options == data[i - 1].output_options
1040 && strcmp(data[i].data, data[i - 1].data) == 0) {
1041 unsigned char binary[2][2200];
1042 int gs1;
1043 int binlen;
1044 int binlens[2] = {0};
1045 unsigned char reduced[1000];
1046 unsigned char *text;
1047
1048 assert_equal(data[i].expected_rows * data[i].expected_width <= data[i - 1].expected_rows * data[i - 1].expected_width, 1,
1049 "i:%d data[i].expected_rows * data[i].expected_width %d > data[i - 1].expected_rows * data[i - 1].expected_width %d\n", i,
1050 data[i].expected_rows * data[i].expected_width, data[i - 1].expected_rows * data[i - 1].expected_width);
1051
1052 if ((data[i].input_mode & 0x07) == GS1_MODE) {
1053 ret = gs1_verify(symbol, (unsigned char *) data[i].data, length, reduced);
1054 assert_zero(ret, "i:%d gs1_verify() ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
1055 length = (int) ustrlen(reduced);
1056 text = reduced;
1057 } else {
1058 text = (unsigned char *) data[i].data;
1059 }
1060 binlen = 0;
1061 symbol->input_mode = data[i - 1].input_mode;
1062 gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
1063 ret = dm_encode_test(symbol, text, length, symbol->eci, gs1, binary[0], &binlen);
1064 assert_zero(ret, "i:%d dm_encode() FAST_MODE ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
1065
1066 binlens[0] = binlen;
1067
1068 binlen = 0;
1069 symbol->input_mode = data[i].input_mode;
1070 gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
1071 ret = dm_encode_test(symbol, text, length, symbol->eci, gs1, binary[1], &binlen);
1072 assert_zero(ret, "i:%d dm_encode() minimal ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
1073
1074 binlens[1] = binlen;
1075
1076 assert_equal(binlens[0], binlens[1] + data[i].expected_diff, "i:%d binlens[0] %d != %d binlens[1] (%d) + expected_diff (%d)\n",
1077 i, binlens[0], binlens[1] + data[i].expected_diff, binlens[1], data[i].expected_diff);
1078 if (data[i].expected_diff >= 0) {
1079 assert_equal(binlens[1] <= binlens[0], 1, "i:%d binlens[1] %d > binlens[0] %d\n", i, binlens[1], binlens[0]);
1080 }
1081 }
1082 }
1083 #endif
1084 }
1085
1086 ZBarcode_Delete(symbol);
1087 }
1088
1089 testFinish();
1090 }
1091
1092 static void test_encode(const testCtx *const p_ctx) {
1093 int debug = p_ctx->debug;
1094
1095 struct item {
1096 int symbology;
1097 int input_mode;
1098 int eci;
1099 int output_options;
1100 int option_2;
1101 int option_3;
1102 char *data;
1103 int length;
1104 int ret;
1105
1106 int expected_rows;
1107 int expected_width;
1108 int bwipp_cmp;
1109 char *comment;
1110 int expected_diff; /* Difference between default minimal encodation and ISO encodation (FAST_MODE) */
1111 char *expected;
1112 };
1113 /* Verified manually against ISO/IEC 16022:2006, ISO/IEC 21471:2020, GS1 General Specifications 21.0.1 (GGS), ANSI/HIBC LIC 2.6-2016 (HIBC/LIC),
1114 ANSI/HIBC PAS 1.3-2010 (HIBC/PAS) and AIM ITS/04-023:2022 (ECI Part 3: Register), with noted exceptions
1115 */
1116 static const struct item data[] = {
1117 /* 0*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "1234abcd", -1, 0, 14, 14, 1, "", 0,
1118 "10101010101010"
1119 "11001010001111"
1120 "11000101100100"
1121 "11001001100001"
1122 "11011001110000"
1123 "10100101011001"
1124 "10101110011000"
1125 "10011101100101"
1126 "10100001001000"
1127 "10101000001111"
1128 "11101100000010"
1129 "11010010100101"
1130 "10011111000100"
1131 "11111111111111"
1132 },
1133 /* 1*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "1234abcd", -1, 0, 14, 14, 1, "", 0,
1134 "10101010101010"
1135 "11001010001111"
1136 "11000101100100"
1137 "11001001100001"
1138 "11011001110000"
1139 "10100101011001"
1140 "10101110011000"
1141 "10011101100101"
1142 "10100001001000"
1143 "10101000001111"
1144 "11101100000010"
1145 "11010010100101"
1146 "10011111000100"
1147 "11111111111111"
1148 },
1149 /* 2*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 18, 18, 1, "16022:2006 Figure 1", 0,
1150 "101010101010101010"
1151 "101000101010001111"
1152 "101100000111000010"
1153 "100000101110100111"
1154 "100100000100011100"
1155 "101011111010101111"
1156 "100110011111110110"
1157 "110011101111111101"
1158 "111111111101111100"
1159 "101110110100101101"
1160 "100010110101001110"
1161 "101101111001100001"
1162 "110001101010011110"
1163 "110110100000100011"
1164 "101101001101011010"
1165 "100010011001011011"
1166 "100011000000100100"
1167 "111111111111111111"
1168 },
1169 /* 3*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 18, 18, 1, "16022:2006 Figure 1", 0,
1170 "101010101010101010"
1171 "101000101010001111"
1172 "101100000111000010"
1173 "100000101110100111"
1174 "100100000100011100"
1175 "101011111010101111"
1176 "100110011111110110"
1177 "110011101111111101"
1178 "111111111101111100"
1179 "101110110100101101"
1180 "100010110101001110"
1181 "101101111001100001"
1182 "110001101010011110"
1183 "110110100000100011"
1184 "101101001101011010"
1185 "100010011001011011"
1186 "100011000000100100"
1187 "111111111111111111"
1188 },
1189 /* 4*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "123456", -1, 0, 10, 10, 1, "16022:2006 Figure O.2", 0,
1190 "1010101010"
1191 "1100101101"
1192 "1100000100"
1193 "1100011101"
1194 "1100001000"
1195 "1000001111"
1196 "1110110000"
1197 "1111011001"
1198 "1001110100"
1199 "1111111111"
1200 },
1201 /* 5*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "123456", -1, 0, 10, 10, 1, "16022:2006 Figure O.2", 0,
1202 "1010101010"
1203 "1100101101"
1204 "1100000100"
1205 "1100011101"
1206 "1100001000"
1207 "1000001111"
1208 "1110110000"
1209 "1111011001"
1210 "1001110100"
1211 "1111111111"
1212 },
1213 /* 6*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "30Q324343430794<OQQ", -1, 0, 16, 16, 1, "16022:2006 Figure R.1", 0,
1214 "1010101010101010"
1215 "1010101010000001"
1216 "1010101011101100"
1217 "1010101010110011"
1218 "1010101010001100"
1219 "1010101010001101"
1220 "1010101010000100"
1221 "1010101001101001"
1222 "1010101010000110"
1223 "1000001001011001"
1224 "1111111110000100"
1225 "1101100110010101"
1226 "1111111001100100"
1227 "1110010111100101"
1228 "1110010010100010"
1229 "1111111111111111"
1230 },
1231 /* 7*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "30Q324343430794<OQQ", -1, 0, 16, 16, 1, "16022:2006 Figure R.1", 0,
1232 "1010101010101010"
1233 "1010101010000001"
1234 "1010101011101100"
1235 "1010101010110011"
1236 "1010101010001100"
1237 "1010101010001101"
1238 "1010101010000100"
1239 "1010101001101001"
1240 "1010101010000110"
1241 "1000001001011001"
1242 "1111111110000100"
1243 "1101100110010101"
1244 "1111111001100100"
1245 "1110010111100101"
1246 "1110010010100010"
1247 "1111111111111111"
1248 },
1249 /* 8*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, 32, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 8, 64, 1, "21471:2020 Figure 1", 0,
1250 "1010101010101010101010101010101010101010101010101010101010101010"
1251 "1010001010111001101010111011111110001110000000011101010100010101"
1252 "1011000000000110110111111110111010110000101001101101001000010110"
1253 "1000001000110011110001111011111110001100101010111011111111001111"
1254 "1001000111011100101010110001011010010111001000101111101011101100"
1255 "1010101011111011100000000001000110101110011111011000101011000111"
1256 "1101101100110110111100110000001011100011001001101011001001001000"
1257 "1111111111111111111111111111111111111111111111111111111111111111"
1258 },
1259 /* 9*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, 32, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 8, 64, 1, "21471:2020 Figure 1", 0,
1260 "1010101010101010101010101010101010101010101010101010101010101010"
1261 "1010001010111001101010111011111110001110000000011101010100010101"
1262 "1011000000000110110111111110111010110000101001101101001000010110"
1263 "1000001000110011110001111011111110001100101010111011111111001111"
1264 "1001000111011100101010110001011010010111001000101111101011101100"
1265 "1010101011111011100000000001000110101110011111011000101011000111"
1266 "1101101100110110111100110000001011100011001001101011001001001000"
1267 "1111111111111111111111111111111111111111111111111111111111111111"
1268 },
1269 /* 10*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, 31, -1, "123456789012345678901234567890123456", -1, 0, 8, 48, 1, "21471:2020 Figure H.3", 0,
1270 "101010101010101010101010101010101010101010101010"
1271 "110010010100000111110001101001010110100110001011"
1272 "110011000111101000101010110111001110011011011010"
1273 "110001110010001100001001100011001100110111000111"
1274 "111010010010110111101000110001110001000011000000"
1275 "100011010010011010111111111101010010100111000001"
1276 "101101111110001011010010111010001111110101101110"
1277 "111111111111111111111111111111111111111111111111"
1278 },
1279 /* 11*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, 31, -1, "123456789012345678901234567890123456", -1, 0, 8, 48, 1, "21471:2020 Figure H.3", 0,
1280 "101010101010101010101010101010101010101010101010"
1281 "110010010100000111110001101001010110100110001011"
1282 "110011000111101000101010110111001110011011011010"
1283 "110001110010001100001001100011001100110111000111"
1284 "111010010010110111101000110001110001000011000000"
1285 "100011010010011010111111111101010010100111000001"
1286 "101101111110001011010010111010001111110101101110"
1287 "111111111111111111111111111111111111111111111111"
1288 },
1289 /* 12*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, 29, -1, "30Q324343430794<OQ", -1, 0, 16, 36, 1, "21471:2020 Figure J.1 NOTE: single Q at end, not 2; also not DMRE", 0,
1290 "101010101010101010101010101010101010"
1291 "101010101000000101111110101011001101"
1292 "101010101101111110111111101110001100"
1293 "101010110010101011111000000010111101"
1294 "101010100010101100110101100100100100"
1295 "101010100100011001100110110111011001"
1296 "101010100010101000110100010111010110"
1297 "101010100110000111101110001110111001"
1298 "101010101001110110110000111010000100"
1299 "100000110100111111111110101010100001"
1300 "111101010100100110110011100001011000"
1301 "110100100100010001100111011111001111"
1302 "101100100100000000111011111010010100"
1303 "100111011010111111100011010011001001"
1304 "101111001001100000110110100000010110"
1305 "111111111111111111111111111111111111"
1306 },
1307 /* 13*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, 29, -1, "30Q324343430794<OQ", -1, 0, 16, 36, 1, "21471:2020 Figure J.1 NOTE: single Q at end, not 2; also not DMRE", 0,
1308 "101010101010101010101010101010101010"
1309 "101010101000000101111110101011001101"
1310 "101010101101111110111111101110001100"
1311 "101010110010101011111000000010111101"
1312 "101010100010101100110101100100100100"
1313 "101010100100011001100110110111011001"
1314 "101010100010101000110100010111010110"
1315 "101010100110000111101110001110111001"
1316 "101010101001110110110000111010000100"
1317 "100000110100111111111110101010100001"
1318 "111101010100100110110011100001011000"
1319 "110100100100010001100111011111001111"
1320 "101100100100000000111011111010010100"
1321 "100111011010111111100011010011001001"
1322 "101111001001100000110110100000010110"
1323 "111111111111111111111111111111111111"
1324 },
1325 /* 14*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "https://example.com/01/09506000134369", -1, 0, 22, 22, 0, "GGS Figure 2.1.13.1 (and 5.1-9) same; note not GS1; BWIPP different encodation", 0,
1326 "1010101010101010101010"
1327 "1100101110000001111101"
1328 "1001010101111000101010"
1329 "1000000100111100110001"
1330 "1101010111000111100100"
1331 "1101110001010000001101"
1332 "1110100101010101011010"
1333 "1101101101110101100111"
1334 "1111010000000001100100"
1335 "1100011001100101001111"
1336 "1000111100001111010010"
1337 "1011111101110101111011"
1338 "1100110101001101101010"
1339 "1011010101000110011101"
1340 "1000000110110000011110"
1341 "1011011100011000011001"
1342 "1110000001110111001000"
1343 "1100101000000101110001"
1344 "1111101100001110001010"
1345 "1110110101100110000101"
1346 "1101100001100010010100"
1347 "1111111111111111111111"
1348 },
1349 /* 15*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "https://example.com/01/09506000134369", -1, 0, 22, 22, 0, "GGS Figure 2.1.13.1 (and 5.1-9) **NOT SAME** (see FAST_MODE); BWIPP different encodation", 0,
1350 "1010101010101010101010"
1351 "1100101110011010111101"
1352 "1001010101110111101110"
1353 "1000000100111000010001"
1354 "1101010111011000110100"
1355 "1101110001110000100101"
1356 "1110100101000101000000"
1357 "1101101110110101011111"
1358 "1111010011000001111100"
1359 "1100011101100100110111"
1360 "1000100000000000011010"
1361 "1011000101110000101111"
1362 "1100011101000100000010"
1363 "1011010101010011111101"
1364 "1000000100010111001110"
1365 "1011011100010000110001"
1366 "1110001101011000000000"
1367 "1100101101101011001001"
1368 "1111110111001111110010"
1369 "1110000101101111110001"
1370 "1101110001101001110000"
1371 "1111111111111111111111"
1372 },
1373 /* 16*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]09501101530003[17]150119[10]AB-123", -1, 0, 20, 20, 1, "GGS Figure 2.6.14-3", 0,
1374 "10101010101010101010"
1375 "11001111010100000111"
1376 "10001010001001010100"
1377 "10110011010100010001"
1378 "11101010000001101010"
1379 "10000100111011010111"
1380 "10011010101101010110"
1381 "11010001001110101001"
1382 "11101000110100101100"
1383 "11001111010111001101"
1384 "10001010000001100000"
1385 "11010000100010111011"
1386 "10110010011000001000"
1387 "10011010000011010011"
1388 "11111010101110100110"
1389 "11010010111011100001"
1390 "11010100101100111110"
1391 "11000001110010010101"
1392 "10011011100101011010"
1393 "11111111111111111111"
1394 },
1395 /* 17*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09501101530003[17]150119[10]AB-123", -1, 0, 20, 20, 0, "GGS Figure 2.6.14-3 **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
1396 "10101010101010101010"
1397 "11001111010100110111"
1398 "10001010001000000100"
1399 "10110011010100010001"
1400 "11101010000010000110"
1401 "10000100111010000011"
1402 "10011010010110110110"
1403 "11010001110011000111"
1404 "11101001001111011000"
1405 "11001111110001101101"
1406 "10001010011001111000"
1407 "11010110100010110011"
1408 "10100011111111110000"
1409 "10000111011001111111"
1410 "11001010111100001010"
1411 "11010111111001011001"
1412 "11011000000010110010"
1413 "11000001110001000101"
1414 "10011010100111101010"
1415 "11111111111111111111"
1416 },
1417 /* 18*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]04012345678901[21]ABCDEFG123456789", -1, 0, 20, 20, 1, "GGS Figure 2.6.14-4", 0,
1418 "10101010101010101010"
1419 "11011000001101000111"
1420 "10001001100001110100"
1421 "10110110110000010001"
1422 "11100010000111110110"
1423 "10101010110011101101"
1424 "11111000100000100010"
1425 "10010010001011110001"
1426 "10101010110011010110"
1427 "11011110011010001111"
1428 "10001010011101010010"
1429 "10111111011110110011"
1430 "11110100101101011000"
1431 "11010111011100100111"
1432 "10000000011001100000"
1433 "11101111110100001011"
1434 "11010001001000101010"
1435 "11010011101000100101"
1436 "10001000100001111010"
1437 "11111111111111111111"
1438 },
1439 /* 19*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]04012345678901[21]ABCDEFG123456789", -1, 0, 20, 20, 0, "GGS Figure 2.6.14-4 **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
1440 "10101010101010101010"
1441 "11011000000001000111"
1442 "10001001100100101100"
1443 "10110111100001100001"
1444 "11100011100100010010"
1445 "10101010001110001101"
1446 "11111000011000001010"
1447 "10010010011111000111"
1448 "10101010111000110000"
1449 "11011101100110100111"
1450 "10001000101110110010"
1451 "10111010011110011011"
1452 "11111111110111101110"
1453 "11000010011001101001"
1454 "11101100000101001000"
1455 "11101001011100110001"
1456 "11100100011000111100"
1457 "11001010100011000101"
1458 "10001000111000110010"
1459 "11111111111111111111"
1460 },
1461 /* 20*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]04012345678901[17]170101[10]ABC123", -1, 0, 20, 20, 1, "GGS Figure 4.15-1 (and 5.1-6)", 0,
1462 "10101010101010101010"
1463 "11011000010100000111"
1464 "10001001100001010100"
1465 "10110111001100000001"
1466 "11100010000101101110"
1467 "10101100110001010101"
1468 "11111010101000100110"
1469 "10010011001000100011"
1470 "10101000110010111010"
1471 "11001111001010101111"
1472 "10001010000111000010"
1473 "10110000010101000011"
1474 "11110010000001011000"
1475 "11011000000110101111"
1476 "11111010111011110110"
1477 "11001001001110101111"
1478 "11011010000001110010"
1479 "11010111010111101101"
1480 "10001000000101111010"
1481 "11111111111111111111"
1482 },
1483 /* 21*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]04012345678901[17]170101[10]ABC123", -1, 0, 20, 20, 0, "GGS Figure 4.15-1 (and 5.1-6) **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
1484 "10101010101010101010"
1485 "11011000010100110111"
1486 "10001001100000000100"
1487 "10110111001100001001"
1488 "11100010000010010010"
1489 "10101100111000111001"
1490 "11111010110001000010"
1491 "10010011110100101101"
1492 "10101001001100100000"
1493 "11001111101110100111"
1494 "10001010010101101010"
1495 "10110110111100101011"
1496 "11100011111111010000"
1497 "11000010100100111011"
1498 "11001101000111010110"
1499 "11011110010111110111"
1500 "11011001111011011110"
1501 "11010110010111111101"
1502 "10001010100111001010"
1503 "11111111111111111111"
1504 },
1505 /* 22*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, GS1_GS_SEPARATOR, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-1 **NOT SAME**, uses 0-padded final TEXT triplet", 0,
1506 "10101010101010101010101010101010"
1507 "11001111010000111101100000101001"
1508 "10001010011111001011011001000010"
1509 "10111011001001111101111101000101"
1510 "11100101000010001000011011011110"
1511 "10000101001101111010111000100101"
1512 "10010001000100101000000010011110"
1513 "10010110011101011000101100101111"
1514 "11101010110010001100011100110100"
1515 "11011100110110111101010000010001"
1516 "10001010000101001100001111001110"
1517 "10110011010101111000010011100001"
1518 "11101100100110101110101000010110"
1519 "11100100000000111000000111111001"
1520 "10100010111011101001110100100010"
1521 "11111111111111111111111111111111"
1522 "10101010101010101010101010101010"
1523 "11100011100010011011000101111111"
1524 "11001100001101001110011000000010"
1525 "10111011011110111100010111011101"
1526 "11101011011111101101101100000110"
1527 "10010000011010011111000000111111"
1528 "11000101110000101100110001100100"
1529 "10000010111011011111010001010011"
1530 "10110011100011001101101100110110"
1531 "10111010111101011000100010111001"
1532 "10010011101110101110010011010110"
1533 "11101011001100011011001001000001"
1534 "10001011111000001010010011110000"
1535 "11001011000110111111100011000001"
1536 "10110110011000001010011010011000"
1537 "11111111111111111111111111111111"
1538 },
1539 /* 23*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, GS1_GS_SEPARATOR, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-1 **NOT SAME**, uses 0-padded final TEXT triplet", 0,
1540 "10101010101010101010101010101010"
1541 "11001111010000111101100000101001"
1542 "10001010011111001011011001000010"
1543 "10111011001001111101111101000101"
1544 "11100101000010001000011011011110"
1545 "10000101001101111010111000100101"
1546 "10010001000100101000000010011110"
1547 "10010110011101011000101100101111"
1548 "11101010110010001100011100110100"
1549 "11011100110110111101010000010001"
1550 "10001010000101001100001111001110"
1551 "10110011010101111000010011100001"
1552 "11101100100110101110101000010110"
1553 "11100100000000111000000111111001"
1554 "10100010111011101001110100100010"
1555 "11111111111111111111111111111111"
1556 "10101010101010101010101010101010"
1557 "11100011100010011011000101111111"
1558 "11001100001101001110011000000010"
1559 "10111011011110111100010111011101"
1560 "11101011011111101101101100000110"
1561 "10010000011010011111000000111111"
1562 "11000101110000101100110001100100"
1563 "10000010111011011111010001010011"
1564 "10110011100011001101101100110110"
1565 "10111010111101011000100010111001"
1566 "10010011101110101110010011010110"
1567 "11101011001100011011001001000001"
1568 "10001011111000001010010011110000"
1569 "11001011000110111111100011000001"
1570 "10110110011000001010011010011000"
1571 "11111111111111111111111111111111"
1572 },
1573 /* 24*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-2 (and 4.15.1-3) **NOT SAME**, uses 0-padded final TEXT triplet (as does tec-it)", 0,
1574 "10101010101010101010101010101010"
1575 "11001111010000111101100000101001"
1576 "10001010011111001011011001000010"
1577 "10111011001001111101111101000101"
1578 "11100101000010001000011011011110"
1579 "10000101001101111010111000100101"
1580 "10010001110100101000000010011110"
1581 "10010110101101011000101100101111"
1582 "11101010000010001100011100110100"
1583 "11011100110110111101010000011001"
1584 "10001010000101001100000111001010"
1585 "10110011010101111000010011010101"
1586 "11101100100110101110101111011110"
1587 "11100100000000111000011101100111"
1588 "10100010111011101010010111001010"
1589 "11111111111111111111111111111111"
1590 "10101010101010101010101010101010"
1591 "11111011100010011000001101110111"
1592 "11010100001101101010111001101010"
1593 "10100011011110111011111010110101"
1594 "11101011011111001001000000111110"
1595 "10010000011001011101001101100011"
1596 "11000101110110001010111111110000"
1597 "10000010110011111100011111010101"
1598 "10110011011011001011010010110100"
1599 "10111010110110111011000101100001"
1600 "10010010000011101101011111110110"
1601 "11101000010110011011011101111001"
1602 "10001100011101101000101011001100"
1603 "11000001011001011111011001010001"
1604 "10110000011010101010011010011000"
1605 "11111111111111111111111111111111"
1606 },
1607 /* 25*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-2 (and 4.15.1-3) **NOT SAME**, uses 0-padded final TEXT triplet (as does tec-it)", 0,
1608 "10101010101010101010101010101010"
1609 "11001111010000111101100000101001"
1610 "10001010011111001011011001000010"
1611 "10111011001001111101111101000101"
1612 "11100101000010001000011011011110"
1613 "10000101001101111010111000100101"
1614 "10010001110100101000000010011110"
1615 "10010110101101011000101100101111"
1616 "11101010000010001100011100110100"
1617 "11011100110110111101010000011001"
1618 "10001010000101001100000111001010"
1619 "10110011010101111000010011010101"
1620 "11101100100110101110101111011110"
1621 "11100100000000111000011101100111"
1622 "10100010111011101010010111001010"
1623 "11111111111111111111111111111111"
1624 "10101010101010101010101010101010"
1625 "11111011100010011000001101110111"
1626 "11010100001101101010111001101010"
1627 "10100011011110111011111010110101"
1628 "11101011011111001001000000111110"
1629 "10010000011001011101001101100011"
1630 "11000101110110001010111111110000"
1631 "10000010110011111100011111010101"
1632 "10110011011011001011010010110100"
1633 "10111010110110111011000101100001"
1634 "10010010000011101101011111110110"
1635 "11101000010110011011011101111001"
1636 "10001100011101101000101011001100"
1637 "11000001011001011111011001010001"
1638 "10110000011010101010011010011000"
1639 "11111111111111111111111111111111"
1640 },
1641 /* 26*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09524000059109[21]12345678p901[10]1234567p[17]271120", -1, 0, 22, 22, 1, "GGS v23 Figure 4.15.1-1 (and 4.15.1-3 and 4.15.1-4)", 0,
1642 "1010101010101010101010"
1643 "1100111101000011000111"
1644 "1000101101111100100100"
1645 "1011101100100110001001"
1646 "1110010100001000011100"
1647 "1000010100110100101101"
1648 "1001000111010000011000"
1649 "1001011010110001101111"
1650 "1110101000001000100100"
1651 "1101110011011000101001"
1652 "1001101000010110100010"
1653 "1011001101011011001001"
1654 "1110110011101011011010"
1655 "1110010101001100110001"
1656 "1010001000011110011100"
1657 "1111101111110110001111"
1658 "1101011110011111010010"
1659 "1010001011101101101101"
1660 "1110010011011110100010"
1661 "1001011100110011100111"
1662 "1001110001100110100100"
1663 "1111111111111111111111"
1664 },
1665 /* 27*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]09512345678901[15]170810[21]abcde", -1, 0, 20, 20, 1, "GGS Figure 5.6.2-1", 0,
1666 "10101010101010101010"
1667 "11001111010111100111"
1668 "10001010100101010100"
1669 "10110111010010011001"
1670 "11100010010101101110"
1671 "10101100101000111101"
1672 "11111010011000000110"
1673 "10010011100000101101"
1674 "10101001101011000010"
1675 "11000110000100011111"
1676 "10001011010001100010"
1677 "10110000101001000011"
1678 "11110011011001011100"
1679 "11011101001000101011"
1680 "11111101001000110110"
1681 "11011100110000101111"
1682 "11000100001111110000"
1683 "11011111110010101101"
1684 "10011010101001110010"
1685 "11111111111111111111"
1686 },
1687 /* 28*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09512345678901[15]170810[21]abcde", -1, 0, 20, 20, 1, "GGS Figure 5.6.2-1", 0,
1688 "10101010101010101010"
1689 "11001111010111100111"
1690 "10001010100101010100"
1691 "10110111010010011001"
1692 "11100010010101101110"
1693 "10101100101000111101"
1694 "11111010011000000110"
1695 "10010011100000101101"
1696 "10101001101011000010"
1697 "11000110000100011111"
1698 "10001011010001100010"
1699 "10110000101001000011"
1700 "11110011011001011100"
1701 "11011101001000101011"
1702 "11111101001000110110"
1703 "11011100110000101111"
1704 "11000100001111110000"
1705 "11011111110010101101"
1706 "10011010101001110010"
1707 "11111111111111111111"
1708 },
1709 /* 29*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]00012345678905[17]040115", -1, 0, 12, 26, 1, "GGS Figure 5.6.3.1-1 (left)", 0,
1710 "10101010101010101010101010"
1711 "11001000010011010100111111"
1712 "10001001100010001111001010"
1713 "10110111011000001001001111"
1714 "11100010100100100010001100"
1715 "10101100110101011101101001"
1716 "11111000111110101001010010"
1717 "10011111101010111001100001"
1718 "10101110101000110000010010"
1719 "11001101010110000111100111"
1720 "10001001100010100010100000"
1721 "11111111111111111111111111"
1722 },
1723 /* 30*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]00012345678905[17]040115", -1, 0, 12, 26, 1, "GGS Figure 5.6.3.1-1 (left)", 0,
1724 "10101010101010101010101010"
1725 "11001000010011010100111111"
1726 "10001001100010001111001010"
1727 "10110111011000001001001111"
1728 "11100010100100100010001100"
1729 "10101100110101011101101001"
1730 "11111000111110101001010010"
1731 "10011111101010111001100001"
1732 "10101110101000110000010010"
1733 "11001101010110000111100111"
1734 "10001001100010100010100000"
1735 "11111111111111111111111111"
1736 },
1737 /* 31*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "[01]00012345678905[17]040115", -1, 0, 18, 18, 1, "GGS Figure 5.6.3.1-1 (right)", 0,
1738 "101010101010101010"
1739 "110010000100010101"
1740 "100010011010111110"
1741 "101101110001101111"
1742 "111000100010101100"
1743 "101011001100010001"
1744 "111110000010101010"
1745 "100101100110101101"
1746 "101010101001110110"
1747 "110011110001110011"
1748 "100000111010111100"
1749 "111100000000010111"
1750 "111011010101010010"
1751 "111111111001001011"
1752 "100011100101010000"
1753 "111100011101000011"
1754 "100000101110000100"
1755 "111111111111111111"
1756 },
1757 /* 32*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, DM_SQUARE, "[01]00012345678905[17]040115", -1, 0, 18, 18, 1, "GGS Figure 5.6.3.1-1 (right)", 0,
1758 "101010101010101010"
1759 "110010000100010101"
1760 "100010011010111110"
1761 "101101110001101111"
1762 "111000100010101100"
1763 "101011001100010001"
1764 "111110000010101010"
1765 "100101100110101101"
1766 "101010101001110110"
1767 "110011110001110011"
1768 "100000111010111100"
1769 "111100000000010111"
1770 "111011010101010010"
1771 "111111111001001011"
1772 "100011100101010000"
1773 "111100011101000011"
1774 "100000101110000100"
1775 "111111111111111111"
1776 },
1777 /* 33*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]ABCDEFGHI123456789[92]abcdefghi", -1, 0, 32, 32, 0, "GGS Figure 5.6.3.2-3 (left) **NOT SAME** different encodation; BWIPP different encodation", 0,
1778 "10101010101010101010101010101010"
1779 "11001000010111111000100110101011"
1780 "10001001100001101100110010100010"
1781 "10110111001101111110011001000111"
1782 "11100010001100101100101001011110"
1783 "10101101101011111110000000100101"
1784 "11111010010010101101000010011110"
1785 "10010100101111011101101100101111"
1786 "10101000101101101111111100110100"
1787 "11001110011000111111110000001001"
1788 "10001010001010101101001111001110"
1789 "11110001000000111101011100101101"
1790 "11010001111011001000011010000010"
1791 "11011100101001111001000111111111"
1792 "10111100101001101111011101000010"
1793 "11111111111111111111111111111111"
1794 "10101010101010101010101010101010"
1795 "11010100111011111001101111100111"
1796 "11100111010011001011100001001010"
1797 "11111001010111011101111000110011"
1798 "11110000000010101101001110000110"
1799 "11101110000001111011101000010101"
1800 "11110101001101101101110000001000"
1801 "10101011000111111010111001100111"
1802 "11000101010010001100000011101010"
1803 "11111101110111011001111011001101"
1804 "11010111011010001000011101001010"
1805 "10100111111110111101010111100011"
1806 "10111011111010001001001100101110"
1807 "10010101001110111101000101111101"
1808 "11110110001001001010110111010110"
1809 "11111111111111111111111111111111"
1810 },
1811 /* 34*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]ABCDEFGHI123456789[92]abcdefghi", -1, 0, 32, 32, 0, "GGS Figure 5.6.3.2-3 (left) **NOT SAME** different encodation; BWIPP different encodation", 2,
1812 "10101010101010101010101010101010"
1813 "11001000010111111001100001001011"
1814 "10001001100001101101000101000010"
1815 "10110111001101111011101101000111"
1816 "11100010001100101000100111011110"
1817 "10101101101011111010001000100101"
1818 "11111010010010101110101010011110"
1819 "10010100101111011100001100101111"
1820 "10101000101101101011011100110100"
1821 "11001110011000111101110000001001"
1822 "10001010001011101101001111010110"
1823 "11110001000011111101011001001101"
1824 "11010001111011001000010001011010"
1825 "11011100100111111001010011011101"
1826 "10111100100011101100111011001100"
1827 "11111111111111111111111111111111"
1828 "10101010101010101010101010101010"
1829 "11010100101011111001011111001111"
1830 "11100111111011101011111011100010"
1831 "11111000010111111101111111010011"
1832 "11111110100011001011001111101110"
1833 "11100110000000111010010011110001"
1834 "11110111000011001010111110001100"
1835 "10101011001110111001110110001011"
1836 "11000101100111101010111001100010"
1837 "11111101001100011001010010000101"
1838 "11010101100010001011111011111010"
1839 "10100100100100111100001111011011"
1840 "10111011101111001100101011101110"
1841 "10011101001101011100111000111001"
1842 "11110000001011001010110001000110"
1843 "11111111111111111111111111111111"
1844 },
1845 /* 35*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, 30, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]abcdefghi", -1, 0, 16, 48, 1, "GGS Figure 5.6.3.2-3 (right) **NOT SAME** different encodation", 0,
1846 "101010101010101010101010101010101010101010101010"
1847 "110010000101111001000011101101100100111011001111"
1848 "100010011000011101111100100100011000110010111100"
1849 "101101110011011100100111100111101110111110100011"
1850 "111000100011001100111010101000011110001110111110"
1851 "101011011010110100101101100100010101101110101111"
1852 "111110100100100101111000101001100001101001001010"
1853 "100101001011111001111001110110100101101100010111"
1854 "101010001011111100111100100010000000011110001100"
1855 "110011100101101010111011110111110111100111011001"
1856 "100010100011010010111100100100101000001000011110"
1857 "111100010010101101110001100001000001010110001001"
1858 "110100001000101000011100101010101100011001001010"
1859 "110111001110010000011111101111000110100011011011"
1860 "101110001010001011101010101101111111111000000100"
1861 "111111111111111111111111111111111111111111111111"
1862 },
1863 /* 36*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, 30, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]abcdefghi", -1, 0, 16, 48, 0, "GGS Figure 5.6.3.2-3 (right) **NOT SAME** different encodation; BWIPP same as FAST_MODE", 2,
1864 "101010101010101010101010101010101010101010101010"
1865 "110010000101111001000011101101100100111011001111"
1866 "100010011000011101111100100100011000110010111100"
1867 "101101110011011100100111100111101110111110100011"
1868 "111000100011001100111010101000011110001110111110"
1869 "101011011010110100101101100100010101101110101111"
1870 "111110100100100101111000101001100001101001001010"
1871 "100101001011111001111001110110100101101100010111"
1872 "101010001011111100111100100010000000011110001100"
1873 "110011100101101010111011110111110111100111011001"
1874 "100010100011010010111100100100101000001000011110"
1875 "111100010010101101110001100001000001010110001001"
1876 "110100001000101000011100101010101100011001001010"
1877 "110111001110010000011111101111000110100011011011"
1878 "101110001010001011101010101101111111111000000100"
1879 "111111111111111111111111111111111111111111111111"
1880 },
1881 /* 37*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "[00]395011010013000129[403]123+1021JK+0320+12[421]5281500KM", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-6 **NOT SAME** figure has unnecessary FNC1 at end of data", 0,
1882 "101010101010101010101010"
1883 "110001110100011010101101"
1884 "100010100100101000011000"
1885 "101000110001001011100001"
1886 "111010110110100001100010"
1887 "100001001001010100001111"
1888 "100110110111100000000100"
1889 "100101110011001001100001"
1890 "110000010110101011100010"
1891 "110011001100011101110101"
1892 "100000100011111010000000"
1893 "101010110110011011000001"
1894 "111010001001101000110000"
1895 "110001000100011110101101"
1896 "101011011101110000101000"
1897 "110111000100011101011111"
1898 "110101001010111101000010"
1899 "110000111110111111111001"
1900 "100101110010001010110110"
1901 "111011010010000000100111"
1902 "100110111101001000000100"
1903 "101111000010010011111101"
1904 "111001011011101100011010"
1905 "111111111111111111111111"
1906 },
1907 /* 38*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, DM_SQUARE, "[00]395011010013000129[403]123+1021JK+0320+12[421]5281500KM", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-6 **NOT SAME** figure has unnecessary FNC1 at end of data", 0,
1908 "101010101010101010101010"
1909 "110001110100011010101101"
1910 "100010100100101000011000"
1911 "101000110001001011100001"
1912 "111010110110100001100010"
1913 "100001001001010100001111"
1914 "100110110111100000000100"
1915 "100101110011001001100001"
1916 "110000010110101011100010"
1917 "110011001100011101110101"
1918 "100000100011111010000000"
1919 "101010110110011011000001"
1920 "111010001001101000110000"
1921 "110001000100011110101101"
1922 "101011011101110000101000"
1923 "110111000100011101011111"
1924 "110101001010111101000010"
1925 "110000111110111111111001"
1926 "100101110010001010110110"
1927 "111011010010000000100111"
1928 "100110111101001000000100"
1929 "101111000010010011111101"
1930 "111001011011101100011010"
1931 "111111111111111111111111"
1932 },
1933 /* 39*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[00]093123450000000012[421]0362770[401]931234518430GR[403]MEL", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-7 **NOT SAME** different encodation", 0,
1934 "101010101010101010101010"
1935 "110011100101100110110101"
1936 "100010001001111010000100"
1937 "101001110100001011100011"
1938 "111000110111000001101010"
1939 "101011010010100110000111"
1940 "101110011000011000001100"
1941 "100101101011010001101001"
1942 "110000100101011011101110"
1943 "110010010110101101110001"
1944 "100010101101001011010000"
1945 "101010001000100000011001"
1946 "101000101010000010000100"
1947 "100110101110101100010101"
1948 "100010010000111001000000"
1949 "101000001001111000011011"
1950 "111110000111001110000010"
1951 "110001110101001101101111"
1952 "110111110101100111101110"
1953 "110100010010101011110101"
1954 "110011000001011110100010"
1955 "100111010001010011000101"
1956 "101110011001110010101010"
1957 "111111111111111111111111"
1958 },
1959 /* 40*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[00]093123450000000012[421]0362770[401]931234518430GR[403]MEL", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-7 **NOT SAME** different encodation", 0,
1960 "101010101010101010101010"
1961 "110011100101100110110101"
1962 "100010001001111010000100"
1963 "101001110100001011100011"
1964 "111000110111000001101010"
1965 "101011010010100110000111"
1966 "101110011000011000001100"
1967 "100101101011010001101001"
1968 "110000100101011011101110"
1969 "110010010110101101110001"
1970 "100010101101001011010000"
1971 "101010001000100000011001"
1972 "101000101010000010000100"
1973 "100110101110101100010101"
1974 "100010010000111001000000"
1975 "101000001001111000011011"
1976 "111110000111001110000010"
1977 "110001110101001101101111"
1978 "110111110101100111101110"
1979 "110100010010101011110101"
1980 "110011000001011110100010"
1981 "100111010001010011000101"
1982 "101110011001110010101010"
1983 "111111111111111111111111"
1984 },
1985 /* 41*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "A123BJC5D6E71", -1, 0, 16, 16, 0, "HIBC/LIC Figure 3 same; BWIPP different encodation, same no. of codewords", 0,
1986 "1010101010101010"
1987 "1011101001111011"
1988 "1000001100010100"
1989 "1010101011001111"
1990 "1100110100101100"
1991 "1011000001011001"
1992 "1100010011110100"
1993 "1000101001100101"
1994 "1010111011100000"
1995 "1011000011100011"
1996 "1000101100111010"
1997 "1001011100001101"
1998 "1010010001110100"
1999 "1101010010001101"
2000 "1111100111000010"
2001 "1111111111111111"
2002 },
2003 /* 42*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "A123BJC5D6E71", -1, 0, 16, 16, 0, "HIBC/LIC Figure 3 **NOT SAME** (see FAST_MODE); BWIPP different encodation", 0,
2004 "1010101010101010"
2005 "1011101100110101"
2006 "1000110001101100"
2007 "1010001011110101"
2008 "1100100001000100"
2009 "1010011000100001"
2010 "1001000111111100"
2011 "1001000100111101"
2012 "1110000011010110"
2013 "1011010000000001"
2014 "1001101100100000"
2015 "1101101100100111"
2016 "1101001110100100"
2017 "1101110011110101"
2018 "1000100111000010"
2019 "1111111111111111"
2020 },
2021 /* 43*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "A123BJC5D6E71/$$52001510X3", -1, 0, 20, 20, 0, "HIBC/LIC Section 4.3.3 **NOT SAME** different encodation; also figure has weird CRLF after check digit; BWIPP different encodation", 0,
2022 "10101010101010101010"
2023 "10111011000101100001"
2024 "10000110011010101100"
2025 "10100001100011010101"
2026 "11010110011011000000"
2027 "10001010010000010001"
2028 "11011000100100111110"
2029 "10000110010001101111"
2030 "10011010001111111010"
2031 "10111100100101111001"
2032 "10000110000111010110"
2033 "11010111000101001111"
2034 "10000011101001011100"
2035 "10110001100101000001"
2036 "11100001000111011110"
2037 "10001010000000000101"
2038 "10010101101111110110"
2039 "11011011000010010101"
2040 "10010010010000100010"
2041 "11111111111111111111"
2042 },
2043 /* 44*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "A123BJC5D6E71/$$52001510X3", -1, 0, 20, 20, 0, "HIBC/LIC Section 4.3.3 **NOT SAME** different encodation; also figure has weird CRLF after check digit; BWIPP different encodation", 0,
2044 "10101010101010101010"
2045 "10111011011011011001"
2046 "10001100010010100100"
2047 "10100010010001101101"
2048 "11001000111011101010"
2049 "10100110110001011101"
2050 "10010011100100100100"
2051 "10010111010000000011"
2052 "11100010001011101110"
2053 "10110100100011101111"
2054 "10010110001000010010"
2055 "11010110110001101101"
2056 "10000011111100100100"
2057 "10110011010111011001"
2058 "11100010111111111010"
2059 "10000110011101011111"
2060 "10011000110011110100"
2061 "11000101010100010101"
2062 "10011111101001100010"
2063 "11111111111111111111"
2064 },
2065 /* 45*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "H123ABC01234567890", -1, 0, 12, 26, 1, "HIBC/LIC Figure C2, same", 0,
2066 "10101010101010101010101010"
2067 "10111011011011110101001101"
2068 "10010110000001001100110100"
2069 "10010001010100001011110001"
2070 "11010101011010110100111100"
2071 "10000101110000001110001101"
2072 "11011011110011001011100000"
2073 "10010001101011100010001001"
2074 "10000001101101100110101010"
2075 "11001111011110011111010001"
2076 "10010010001100110000011010"
2077 "11111111111111111111111111"
2078 },
2079 /* 46*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "H123ABC01234567890", -1, 0, 12, 26, 1, "HIBC/LIC Figure C2, same", 0,
2080 "10101010101010101010101010"
2081 "10111011011011110101001101"
2082 "10010110000001001100110100"
2083 "10010001010100001011110001"
2084 "11010101011010110100111100"
2085 "10000101110000001110001101"
2086 "11011011110011001011100000"
2087 "10010001101011100010001001"
2088 "10000001101101100110101010"
2089 "11001111011110011111010001"
2090 "10010010001100110000011010"
2091 "11111111111111111111111111"
2092 },
2093 /* 47*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, DM_SQUARE, "/ACMRN123456/V200912190833", -1, 0, 20, 20, 1, "HIBC/PAS Section 2.2 Patient Id, same", 0,
2094 "10101010101010101010"
2095 "10001000010011001001"
2096 "11100110001010110100"
2097 "10000010111001010101"
2098 "11011100101010111100"
2099 "10010001110010100001"
2100 "11011110100100100110"
2101 "10110000100000101111"
2102 "11111100011100001000"
2103 "11001011011010001101"
2104 "11001010111110110000"
2105 "11000001111100001111"
2106 "11110010001100000100"
2107 "10011011100010110011"
2108 "11111100110000111110"
2109 "11000110111111110001"
2110 "11000001011001100110"
2111 "10101010010101100101"
2112 "10000100100110010010"
2113 "11111111111111111111"
2114 },
2115 /* 48*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, DM_SQUARE, "/ACMRN123456/V200912190833", -1, 0, 20, 20, 0, "HIBC/PAS Section 2.2 Patient Id **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
2116 "10101010101010101010"
2117 "11000000010011001111"
2118 "11010001101010110110"
2119 "11101100111001000001"
2120 "10001010101010111010"
2121 "10100001110011010001"
2122 "10011110100100111110"
2123 "11110000100001110011"
2124 "11111100011101010100"
2125 "11001011000010111101"
2126 "11001010110111011000"
2127 "11000001100110010111"
2128 "11110010111001001100"
2129 "10011101100110011111"
2130 "11111010100111110110"
2131 "11011101010001001011"
2132 "11011101110001110010"
2133 "11110001110101111101"
2134 "11100110100110001010"
2135 "11111111111111111111"
2136 },
2137 /* 49*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/ACMRN123456/V2009121908334\\R\\E", -1, 0, 20, 20, 1, "HIBC/PAS 1.3-2010 Section 2.2 Patient Id Macro, same", 0,
2138 "10101010101010101010"
2139 "10000000001110001111"
2140 "11010101001010011100"
2141 "11000000011100110101"
2142 "11011001101011001100"
2143 "11001100000100010001"
2144 "11110111101011000100"
2145 "11010010001101100001"
2146 "11110010010110011110"
2147 "11010010010000010011"
2148 "10010001100010110000"
2149 "11101100100001000111"
2150 "11101010000011111100"
2151 "11000010000101001011"
2152 "11001110111110010010"
2153 "11000010110100011101"
2154 "11001011001001011100"
2155 "10010110010000010101"
2156 "11100110001010111010"
2157 "11111111111111111111"
2158 },
2159 /* 50*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/ACMRN123456/V2009121908334\\R\\E", -1, 0, 20, 20, 0, "HIBC/PAS 1.3-2010 Section 2.2 Patient Id Macro **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
2160 "10101010101010101010"
2161 "11111011001110001111"
2162 "11100100001010011100"
2163 "10000000011100111101"
2164 "11000111101011011100"
2165 "11110100000101011011"
2166 "10101111101010010000"
2167 "10010010001010101111"
2168 "11110010010110111010"
2169 "11010010011010110101"
2170 "10010001110101110010"
2171 "11101101100101000111"
2172 "11101010010100101100"
2173 "11000110100010000111"
2174 "11001111001101111110"
2175 "11010111100010100101"
2176 "11011001111000110010"
2177 "11011001110001011101"
2178 "11011111001010100010"
2179 "11111111111111111111"
2180 },
2181 /* 51*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/EO523201", -1, 0, 14, 14, 1, "HIBC/PAS Section 2.2 Purchase Order, same", 0,
2182 "10101010101010"
2183 "10011001010101"
2184 "11101000011010"
2185 "10001100011101"
2186 "11101100101100"
2187 "10100001101111"
2188 "10010001010110"
2189 "10000001011001"
2190 "11100000010100"
2191 "11011010100101"
2192 "10111110101110"
2193 "11110000101101"
2194 "10010010000100"
2195 "11111111111111"
2196 },
2197 /* 52*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/EO523201", -1, 0, 14, 14, 1, "HIBC/PAS Section 2.2 Purchase Order, same", 0,
2198 "10101010101010"
2199 "10011001010101"
2200 "11101000011010"
2201 "10001100011101"
2202 "11101100101100"
2203 "10100001101111"
2204 "10010001010110"
2205 "10000001011001"
2206 "11100000010100"
2207 "11011010100101"
2208 "10111110101110"
2209 "11110000101101"
2210 "10010010000100"
2211 "11111111111111"
2212 },
2213 /* 53*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, DM_SQUARE, "/EU720060FF0/O523201", -1, 0, 18, 18, 1, "HIBC/PAS Section 2.2 2nd Purchase Order, same", 0,
2214 "101010101010101010"
2215 "100110010100100001"
2216 "111011110110010110"
2217 "100000101110011001"
2218 "111001001010000100"
2219 "100000000000011101"
2220 "100101100000101110"
2221 "111000000111111011"
2222 "110110111000101010"
2223 "101001000111000111"
2224 "100011110101010110"
2225 "111111001101010011"
2226 "100000000001101000"
2227 "110100100011011111"
2228 "111000100110101110"
2229 "111010100101000011"
2230 "111000010011001010"
2231 "111111111111111111"
2232 },
2233 /* 54*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, DM_SQUARE, "/EU720060FF0/O523201", -1, 0, 18, 18, 1, "HIBC/PAS Section 2.2 2nd Purchase Order, same", 0,
2234 "101010101010101010"
2235 "100110010100100001"
2236 "111011110110010110"
2237 "100000101110011001"
2238 "111001001010000100"
2239 "100000000000011101"
2240 "100101100000101110"
2241 "111000000111111011"
2242 "110110111000101010"
2243 "101001000111000111"
2244 "100011110101010110"
2245 "111111001101010011"
2246 "100000000001101000"
2247 "110100100011011111"
2248 "111000100110101110"
2249 "111010100101000011"
2250 "111000010011001010"
2251 "111111111111111111"
2252 },
2253 /* 55*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/EU720060FF0/O523201/Z34H159/M9842431340", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (left), same", 0,
2254 "1010101010101010101010"
2255 "1001100101001000000011"
2256 "1110111101100001111010"
2257 "1000001011101100111111"
2258 "1110010010010000111100"
2259 "1000000000011100000111"
2260 "1001011010011000001110"
2261 "1110000010001001101001"
2262 "1101100110001010100100"
2263 "1010010011011101000101"
2264 "1000100011010000001110"
2265 "1111010100101000010111"
2266 "1000001001011011101110"
2267 "1111110111111101100011"
2268 "1001010110011010000000"
2269 "1101010100110100010011"
2270 "1001010011000110000000"
2271 "1111001010100101110111"
2272 "1100110010110011010000"
2273 "1100001011100001000111"
2274 "1010110000010001001000"
2275 "1111111111111111111111"
2276 },
2277 /* 56*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/EU720060FF0/O523201/Z34H159/M9842431340", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (left), same", 0,
2278 "1010101010101010101010"
2279 "1001100101001000000011"
2280 "1110111101100001111010"
2281 "1000001011101100111111"
2282 "1110010010010000111100"
2283 "1000000000011100000111"
2284 "1001011010011000001110"
2285 "1110000010001001101001"
2286 "1101100110001010100100"
2287 "1010010011011101000101"
2288 "1000100011010000001110"
2289 "1111010100101000010111"
2290 "1000001001011011101110"
2291 "1111110111111101100011"
2292 "1001010110011010000000"
2293 "1101010100110100010011"
2294 "1001010011000110000000"
2295 "1111001010100101110111"
2296 "1100110010110011010000"
2297 "1100001011100001000111"
2298 "1010110000010001001000"
2299 "1111111111111111111111"
2300 },
2301 /* 57*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/EU720060FF0/O523201/Z34H159/M9842431340V\\R\\E", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (right), same", 0,
2302 "1010101010101010101010"
2303 "1000000000111010011101"
2304 "1101011100101001011100"
2305 "1100010000000001101001"
2306 "1111110110000111100000"
2307 "1100100000110011001101"
2308 "1001011001000010000110"
2309 "1000100101110111110111"
2310 "1100001001110111111100"
2311 "1011111001001010001101"
2312 "1000011000010100101010"
2313 "1111001101110100101101"
2314 "1110001101101100001100"
2315 "1001010101111010110011"
2316 "1000110111011100101010"
2317 "1111110011011111010101"
2318 "1101000011100111101110"
2319 "1011000010010100110111"
2320 "1001110101111101000000"
2321 "1110101001011011000111"
2322 "1001110110011101101000"
2323 "1111111111111111111111"
2324 },
2325 /* 58*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/EU720060FF0/O523201/Z34H159/M9842431340V\\R\\E", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (right), same", 0,
2326 "1010101010101010101010"
2327 "1000000000111010011101"
2328 "1101011100101001011100"
2329 "1100010000000001101001"
2330 "1111110110000111100000"
2331 "1100100000110011001101"
2332 "1001011001000010000110"
2333 "1000100101110111110111"
2334 "1100001001110111111100"
2335 "1011111001001010001101"
2336 "1000011000010100101010"
2337 "1111001101110100101101"
2338 "1110001101101100001100"
2339 "1001010101111010110011"
2340 "1000110111011100101010"
2341 "1111110011011111010101"
2342 "1101000011100111101110"
2343 "1011000010010100110111"
2344 "1001110101111101000000"
2345 "1110101001011011000111"
2346 "1001110110011101101000"
2347 "1111111111111111111111"
2348 },
2349 /* 59*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/E+/KN12345", -1, 0, 16, 16, 1, "HIBC/PAS Section 2.2 Asset Tag **NOT SAME** check digit 'A' in figure is for '/KN12345', but actual data is as given here, when check digit is 'J'", 0,
2350 "1010101010101010"
2351 "1001101010001111"
2352 "1110001000101100"
2353 "1000110100101101"
2354 "1101000000110010"
2355 "1000101001000001"
2356 "1110000111001100"
2357 "1010001101111101"
2358 "1111101010101000"
2359 "1101100101010001"
2360 "1100001011010010"
2361 "1100001111001001"
2362 "1100010100000110"
2363 "1010001101001101"
2364 "1001000000000010"
2365 "1111111111111111"
2366 },
2367 /* 60*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/E+/KN12345", -1, 0, 16, 16, 0, "HIBC/PAS Section 2.2 Asset Tag **NOT SAME** see above; BWIPP same as FAST_MODE", 0,
2368 "1010101010101010"
2369 "1100011011001011"
2370 "1101100111000110"
2371 "1110111101000011"
2372 "1010100000010010"
2373 "1011001001000111"
2374 "1001100110111110"
2375 "1100001111011001"
2376 "1011101101000110"
2377 "1001011010011111"
2378 "1111001001000000"
2379 "1101100000100011"
2380 "1100110101110000"
2381 "1100011111111101"
2382 "1001111001100010"
2383 "1111111111111111"
2384 },
2385 /* 61*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/LAH123/NC903", -1, 0, 16, 16, 1, "HIBC/PAS Section 2.2 Surgical Instrument, same", 0,
2386 "1010101010101010"
2387 "1001010001010001"
2388 "1110010100000100"
2389 "1000001100000011"
2390 "1110001100101000"
2391 "1000111111100001"
2392 "1011001110000100"
2393 "1100110000001101"
2394 "1000001110010000"
2395 "1011001110111111"
2396 "1001011010011010"
2397 "1111000110111011"
2398 "1010010101000100"
2399 "1011001110110101"
2400 "1100000101010010"
2401 "1111111111111111"
2402 },
2403 /* 62*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/LAH123/NC903", -1, 0, 16, 16, 0, "HIBC/PAS Section 2.2 Surgical Instrument **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
2404 "1010101010101010"
2405 "1111000001001111"
2406 "1110010001010110"
2407 "1000001101100111"
2408 "1111000100100100"
2409 "1000001111111001"
2410 "1011111000101100"
2411 "1010000000111101"
2412 "1001111100000100"
2413 "1001101000011111"
2414 "1111010001010110"
2415 "1000001001111101"
2416 "1111101010000010"
2417 "1101010100000101"
2418 "1110011111101010"
2419 "1111111111111111"
2420 },
2421 /* 63*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, 7, -1, "[)>\\R06\\G18VD89536\\G1P8902A\\GS3122A02965\\R\\E", -1, 0, 22, 22, 1, "ANSI MH10.8.17-2017 Figure 4 Macro06 **NOT SAME** 253-state randomising of padding in figure seems incorrect", 0,
2422 "1010101010101010101010"
2423 "1101110000111001011011"
2424 "1010111010001010001110"
2425 "1100011100101001000111"
2426 "1110011000100010001100"
2427 "1111011100011001000101"
2428 "1011101101000101111010"
2429 "1100101100010101010111"
2430 "1110101001001000001100"
2431 "1000010001111000110101"
2432 "1110111001110000001000"
2433 "1010100011101000011011"
2434 "1100010101011110111010"
2435 "1011011000011100011111"
2436 "1011001001000101100110"
2437 "1000000111001100000001"
2438 "1011110001100011000010"
2439 "1100110100000110100111"
2440 "1100011111110000001110"
2441 "1100110010010010001101"
2442 "1000001010010010110100"
2443 "1111111111111111111111"
2444 },
2445 /* 64*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, 7, -1, "[)>\\R06\\G18VD89536\\G1P8902A\\GS3122A02965\\R\\E", -1, 0, 22, 22, 1, "ANSI MH10.8.17-2017 Figure 4 Macro06 **NOT SAME** 253-state randomising of padding in figure seems incorrect", 0,
2446 "1010101010101010101010"
2447 "1101110000111001011011"
2448 "1010111010001010001110"
2449 "1100011100101001000111"
2450 "1110011000100010001100"
2451 "1111011100011001000101"
2452 "1011101101000101111010"
2453 "1100101100010101010111"
2454 "1110101001001000001100"
2455 "1000010001111000110101"
2456 "1110111001110000001000"
2457 "1010100011101000011011"
2458 "1100010101011110111010"
2459 "1011011000011100011111"
2460 "1011001001000101100110"
2461 "1000000111001100000001"
2462 "1011110001100011000010"
2463 "1100110100000110100111"
2464 "1100011111110000001110"
2465 "1100110010010010001101"
2466 "1000001010010010110100"
2467 "1111111111111111111111"
2468 },
2469 /* 65*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R06\\G25S0614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B7", 0,
2470 "1010101010101010"
2471 "1101000010101111"
2472 "1011100001011100"
2473 "1011010001010101"
2474 "1110000110111010"
2475 "1101010011011111"
2476 "1000010001111100"
2477 "1101100111110101"
2478 "1100101101001100"
2479 "1010100000001111"
2480 "1001100010010100"
2481 "1001000000000101"
2482 "1011110011000010"
2483 "1110101111010101"
2484 "1010101010001010"
2485 "1111111111111111"
2486 },
2487 /* 66*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R06\\G25S0614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B7", 0,
2488 "1010101010101010"
2489 "1101000010101111"
2490 "1011100001011100"
2491 "1011010001010101"
2492 "1110000110111010"
2493 "1101010011011111"
2494 "1000010001111100"
2495 "1101100111110101"
2496 "1100101101001100"
2497 "1010100000001111"
2498 "1001100010010100"
2499 "1001000000000101"
2500 "1011110011000010"
2501 "1110101111010101"
2502 "1010101010001010"
2503 "1111111111111111"
2504 },
2505 /* 67*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R05\\G80040614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B8", 0,
2506 "1010101010101010"
2507 "1111100010001111"
2508 "1010100001100100"
2509 "1010010001011001"
2510 "1110000110000110"
2511 "1001010011101111"
2512 "1000010010001100"
2513 "1101100111110101"
2514 "1100101000101100"
2515 "1010100001010011"
2516 "1001001100111100"
2517 "1001110010011101"
2518 "1001011000010100"
2519 "1100110000010101"
2520 "1010000010101010"
2521 "1111111111111111"
2522 },
2523 /* 68*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R05\\G80040614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B8", 0,
2524 "1010101010101010"
2525 "1111100010001111"
2526 "1010100001100100"
2527 "1010010001011001"
2528 "1110000110000110"
2529 "1001010011101111"
2530 "1000010010001100"
2531 "1101100111110101"
2532 "1100101000101100"
2533 "1010100001010011"
2534 "1001001100111100"
2535 "1001110010011101"
2536 "1001011000010100"
2537 "1100110000010101"
2538 "1010000010101010"
2539 "1111111111111111"
2540 },
2541 /* 69*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 3, -1, -1, -1, "sn:7QPB4MN", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 3 Example 1", 0,
2542 "1010101010101010"
2543 "1001001011100001"
2544 "1000111110110000"
2545 "1100100110000001"
2546 "1000110111101010"
2547 "1100100110001111"
2548 "1000010110000110"
2549 "1000010000000001"
2550 "1001101001111110"
2551 "1001100011010111"
2552 "1011100110011110"
2553 "1000010111011101"
2554 "1101000010001110"
2555 "1110101001000101"
2556 "1001011001111010"
2557 "1111111111111111"
2558 },
2559 /* 70*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 3, -1, -1, -1, "price:£20.00", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 3 Example 2", 0,
2560 "10101010101010101010101010"
2561 "10000111010111000110110001"
2562 "10000101101010010011011000"
2563 "11001010011000000101110111"
2564 "10010101000100111011110110"
2565 "11100111000100111100000001"
2566 "11100101111110001101011100"
2567 "10000011101101110011110011"
2568 "11011100101111100110010110"
2569 "10101101100110000001001011"
2570 "11100101010110100111011000"
2571 "11111111111111111111111111"
2572 },
2573 /* 71*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 3, -1, -1, -1, "C:\\DOCS\\EXAMPLE.TXT", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 3 Example 3", 0,
2574 "101010101010101010"
2575 "100000001010011011"
2576 "100010111000011100"
2577 "110010001000010111"
2578 "100011100110001110"
2579 "110001010100010001"
2580 "101000000010110100"
2581 "111000000111100111"
2582 "100010101110101110"
2583 "111101011100000111"
2584 "101101110100111010"
2585 "110000101011100001"
2586 "100110010100111110"
2587 "100000000100010101"
2588 "111011010100011000"
2589 "101111000111101111"
2590 "100110001010000100"
2591 "111111111111111111"
2592 },
2593 /* 72*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 4, -1, -1, -1, "Študentska št. 2198390", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 4 Example 1; BWIPP same as FAST_MODE", 0,
2594 "10101010101010101010"
2595 "10001110100110101111"
2596 "10001101000001010110"
2597 "11011010011101011001"
2598 "10111110101000101110"
2599 "11010110111111100111"
2600 "10011001111111100000"
2601 "10011111111111010001"
2602 "11000110110101100100"
2603 "11101101010011000011"
2604 "10111110101011001110"
2605 "10100100100110000101"
2606 "10111010000001010010"
2607 "10011010111010000001"
2608 "10100010001110111000"
2609 "10001101001000100111"
2610 "10110101100001100110"
2611 "11111110001010111101"
2612 "11010000001001011010"
2613 "11111111111111111111"
2614 },
2615 /* 73*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 4, -1, 10, -1, "Szczegółowe dane kontaktowe:+48 22 694 60 00", -1, 0, 32, 32, 0, "AIM ITS/04-023:2022 ECI 4 Example 2 **NOT SAME** different encodation; BWIPP different encodation", 0,
2616 "10101010101010101010101010101010"
2617 "10010010111100111011110110001111"
2618 "10001111110010101000001000100000"
2619 "11011101001100111001111111000101"
2620 "10011101100110001100001101011110"
2621 "11101101011101011001100000100101"
2622 "11000111000010101110001010011110"
2623 "11010100010000011000001100101111"
2624 "11100010001100101001011100110110"
2625 "11101011010001011001110000000001"
2626 "10000101111001001011000111011000"
2627 "10000110001011111011010001001111"
2628 "10010101010000101001101110111000"
2629 "10011001000101011111000011101101"
2630 "11011111100011101100010000000010"
2631 "11111111111111111111111111111111"
2632 "10101010101010101010101010101010"
2633 "10011011100000011001000100011101"
2634 "11011100111100001111011111100100"
2635 "11011011110010011111110101100011"
2636 "11101111000110101101001000001000"
2637 "10110101101110011111100100010011"
2638 "10011001101101101001001000100000"
2639 "10101010111010111100000011000111"
2640 "10011011001000101010001001000010"
2641 "10011101101000111010100010100101"
2642 "11100000000001001110111100101110"
2643 "10011011100010111011101110011101"
2644 "11101101111111101110111001010100"
2645 "10001010101011111111110010011101"
2646 "11001100101101101010010101100000"
2647 "11111111111111111111111111111111"
2648 },
2649 /* 74*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 5, -1, -1, DM_SQUARE, "Liĥtenŝtejno", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 5 Example 1; BWIPP different encodation", 0,
2650 "101010101010101010"
2651 "100101101010111011"
2652 "100011010100011110"
2653 "111010101110110111"
2654 "100001111010000110"
2655 "111100110100011001"
2656 "111111110000101000"
2657 "110111110111011111"
2658 "101101101001101110"
2659 "101011010001100011"
2660 "110100011000000110"
2661 "111101010011111011"
2662 "101010100110001100"
2663 "100010001100010111"
2664 "110101100101101010"
2665 "100010011100100101"
2666 "110001011101010110"
2667 "111111111111111111"
2668 },
2669 /* 75*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 6, -1, -1, DM_SQUARE, "Lietuvą", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 6 Example 1", 0,
2670 "1010101010101010"
2671 "1001011011110111"
2672 "1000010100001110"
2673 "1111100101001101"
2674 "1001110010001110"
2675 "1111010011100111"
2676 "1110100001010110"
2677 "1100000101010001"
2678 "1101101001001100"
2679 "1110101111100011"
2680 "1101111011100110"
2681 "1011100001101101"
2682 "1011000111011100"
2683 "1100101001001101"
2684 "1100100101110010"
2685 "1111111111111111"
2686 },
2687 /* 76*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 7, -1, -1, DM_SQUARE, "Россия", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 7 Example 1", 0,
2688 "1010101010101010"
2689 "1001110110001111"
2690 "1001101010110100"
2691 "1000101100100101"
2692 "1001100010101000"
2693 "1110010011110111"
2694 "1100000001110110"
2695 "1111100110000001"
2696 "1010001010001110"
2697 "1001110101110011"
2698 "1011111000110000"
2699 "1011011010100111"
2700 "1101110011100110"
2701 "1000011010101101"
2702 "1010110001000010"
2703 "1111111111111111"
2704 },
2705 /* 77*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 7, -1, -1, DM_SQUARE, "Монголулс", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 7 Example 2", 0,
2706 "101010101010101010"
2707 "100111100010010101"
2708 "100110000111111110"
2709 "100010111010101111"
2710 "100100001110101110"
2711 "111000111100001001"
2712 "110000100010111110"
2713 "110100010111111111"
2714 "101110001001110010"
2715 "100011100101100111"
2716 "110001001010011100"
2717 "100101010001110101"
2718 "100111110110111000"
2719 "101001010101111001"
2720 "110011000110000000"
2721 "101111110101011001"
2722 "110100011110000100"
2723 "111111111111111111"
2724 },
2725 /* 78*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 8, -1, -1, DM_SQUARE, "جواز السفر", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 8 Example 1", 0,
2726 "101010101010101010"
2727 "100111100010000001"
2728 "100110001111110010"
2729 "100111111010101111"
2730 "100100001010101110"
2731 "111010111100010001"
2732 "110100100010111010"
2733 "111100100111011001"
2734 "111011111001110010"
2735 "101111001111111001"
2736 "110010100101010100"
2737 "101110100110100011"
2738 "111100100010101110"
2739 "110010000001110111"
2740 "100000010011010100"
2741 "101111111100011101"
2742 "101100011100001010"
2743 "111111111111111111"
2744 },
2745 /* 79*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 8, -1, -1, -1, "المنشأ: المملكة العربية السعودية", -1, 0, 24, 24, 1, "AIM ITS/04-023:2022 ECI 8 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
2746 "101010101010101010101010"
2747 "100111010010111011001011"
2748 "100110111100000010010000"
2749 "100111000000111111001101"
2750 "100101110011111110100010"
2751 "111001010001001001101111"
2752 "111101010101110101101110"
2753 "111100001011010001101001"
2754 "101011110001111111000110"
2755 "100011100010010100001011"
2756 "101011100111000111010010"
2757 "111101010101001011010111"
2758 "100000001011111111110110"
2759 "110010000011010101000101"
2760 "101010110001010010010010"
2761 "111011000011110111111011"
2762 "111100001100000111000110"
2763 "111100010101100000100011"
2764 "101111110010011001101110"
2765 "100001110110010001100101"
2766 "101010101000001101111100"
2767 "110101100100100111001101"
2768 "100111000101101010110010"
2769 "111111111111111111111111"
2770 },
2771 /* 80*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 9, -1, -1, DM_SQUARE, "Μέρος #. α123", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 9 Example 1", 0,
2772 "101010101010101010"
2773 "100111100100000011"
2774 "100110001111001100"
2775 "101011100001110111"
2776 "100100011010100110"
2777 "110111001000011001"
2778 "101110100000101000"
2779 "101110010110111101"
2780 "101111101000101100"
2781 "100000110010100111"
2782 "111010011011010100"
2783 "110101010110001101"
2784 "111110011101000010"
2785 "101100110111110101"
2786 "101011110001111000"
2787 "111110011110011011"
2788 "111100011110101000"
2789 "111111111111111111"
2790 },
2791 /* 81*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 10, -1, -1, -1, "דרכון", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 10 Example 1", 0,
2792 "10101010101010101010101010101010"
2793 "10011101110010011001011101110101"
2794 "10011110001001001011101011110100"
2795 "10110010001000011011100111101101"
2796 "11011110000110101111101011010010"
2797 "11111110111110011001000100101111"
2798 "11010100010001101010000011101010"
2799 "11111111111111111111111111111111"
2800 },
2801 /* 82*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 10, -1, -1, -1, "מספר חלק: A20200715001", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 10 Example 2 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
2802 "10101010101010101010"
2803 "10011110011111000111"
2804 "10011101101010101110"
2805 "10110111101100111001"
2806 "10010101111010010100"
2807 "11110010110001000001"
2808 "10011011101000111110"
2809 "10110010000111000011"
2810 "10011111010101010000"
2811 "10111100110011010101"
2812 "11001000110110100100"
2813 "10111100100000111101"
2814 "10101001000011001110"
2815 "11000110100101000001"
2816 "10011110101101011000"
2817 "10000110110111011111"
2818 "10110001001101110100"
2819 "11100100101110010101"
2820 "11000111100100101010"
2821 "11111111111111111111"
2822 },
2823 /* 83*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 10, -1, -1, -1, "מספר חלק: A20200715001", -1, 0, 20, 20, 1, "AIM ITS/04-023:2022 ECI 10 Example 2 **NOT SAME** different encodation", 0,
2824 "10101010101010101010"
2825 "10011101100001000111"
2826 "10011111111110010110"
2827 "10110111101101001001"
2828 "10010101111011010100"
2829 "11110010110100101101"
2830 "10011011101101111010"
2831 "10110010001101100011"
2832 "10011110001010100010"
2833 "10111101001110011101"
2834 "11001000111010000100"
2835 "10110001001011000101"
2836 "10000101101011001010"
2837 "11110110001101010101"
2838 "10010111111001100100"
2839 "10011101010100110111"
2840 "10111011001110011010"
2841 "11110101100100001101"
2842 "11000111010001111010"
2843 "11111111111111111111"
2844 },
2845 /* 84*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 11, -1, -1, -1, "Amerika Birleşik Devletleri", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 11 Example 1 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
2846 "1010101010101010101010"
2847 "1000101011001011000001"
2848 "1001111101111001101100"
2849 "1100101110111111111011"
2850 "1001111000001110111000"
2851 "1111011101001001000011"
2852 "1110110000001101101010"
2853 "1010011101010101100111"
2854 "1110010001101000110110"
2855 "1001000101111010101001"
2856 "1110011011110111010000"
2857 "1100110101100001100011"
2858 "1100110000000000101010"
2859 "1001011001011010011101"
2860 "1101011110000110010010"
2861 "1100111000110011110101"
2862 "1011010110110111000010"
2863 "1011111110101100100001"
2864 "1110100000001110110100"
2865 "1101100010010110011111"
2866 "1110010000010000011110"
2867 "1111111111111111111111"
2868 },
2869 /* 85*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 11, -1, -1, -1, "Amerika Birleşik Devletleri", -1, 0, 22, 22, 1, "AIM ITS/04-023:2022 ECI 11 Example 1 **NOT SAME** different encodation", 0,
2870 "1010101010101010101010"
2871 "1001110011001011001001"
2872 "1001111001111001110100"
2873 "1100000110111110100011"
2874 "1001011000001110110000"
2875 "1111011101001000110011"
2876 "1110110000001101001000"
2877 "1010011101010101110111"
2878 "1110010001101011101110"
2879 "1001000101111000001001"
2880 "1110011011110011000100"
2881 "1100110101100100101111"
2882 "1100110000000101011010"
2883 "1001011001100001100001"
2884 "1101011110100001100100"
2885 "1100111001000111011101"
2886 "1011011100010000111010"
2887 "1011110101000111110001"
2888 "1110110111010111100000"
2889 "1101110111000000010011"
2890 "1110111101000010011110"
2891 "1111111111111111111111"
2892 },
2893 /* 86*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 11, -1, -1, -1, "Biniş kartı #120921039", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 11 Example 2; BWIPP different encodation", 0,
2894 "10101010101010101010"
2895 "10001110101011111111"
2896 "10010101011000110110"
2897 "11001010110110010001"
2898 "10011111100000111010"
2899 "11101010111000111011"
2900 "11010100101001000000"
2901 "10101010001011000001"
2902 "11110110110010001010"
2903 "10010000100110111011"
2904 "11001001111000001110"
2905 "10010100000101101111"
2906 "11101111000001110100"
2907 "11000001110100111111"
2908 "10101110011101100000"
2909 "11111011111011101101"
2910 "11010011001001110000"
2911 "10101100011011001101"
2912 "10000100110101011010"
2913 "11111111111111111111"
2914 },
2915 /* 87*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 12, -1, -1, -1, "Kūrybiškumą", -1, 0, 12, 26, 0, "AIM ITS/04-023:2022 ECI 12 Example 1 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
2916 "10101010101010101010101010"
2917 "10010010000111001101100011"
2918 "10011111110110110110111000"
2919 "11011100100001101101111111"
2920 "10011100000110010100001110"
2921 "11000100011101011100010001"
2922 "10000100101011100011011010"
2923 "10100101000001111110101001"
2924 "11010001001001001000011100"
2925 "10111001001111010000000101"
2926 "10011101110100000011000100"
2927 "11111111111111111111111111"
2928 },
2929 /* 88*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 12, -1, -1, -1, "Kūrybiškumą", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 12 Example 1 **NOT SAME** different encodation", 0,
2930 "10101010101010101010101010"
2931 "10011110000111001010011111"
2932 "10010001010110110011110000"
2933 "11011100100001101000000111"
2934 "10011110000110000000100110"
2935 "11000100011100111011101001"
2936 "10000100101011000010101010"
2937 "10100101000100100110000001"
2938 "11010010001010110101011000"
2939 "11111001101111110000010001"
2940 "11000101010100110000011010"
2941 "11111111111111111111111111"
2942 },
2943 /* 89*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 13, -1, -1, -1, "บาร๋แค่ด", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 13 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
2944 "1010101010101010"
2945 "1001110100011001"
2946 "1001101111101000"
2947 "1110100100111111"
2948 "1001110111011110"
2949 "1101001000100111"
2950 "1110001010011110"
2951 "1110111010010001"
2952 "1111111001100010"
2953 "1001000000100101"
2954 "1100101010000100"
2955 "1100010011100011"
2956 "1100000011101000"
2957 "1000011111010101"
2958 "1001010001001010"
2959 "1111111111111111"
2960 },
2961 /* 90*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 15, -1, -1, -1, "uzņēmums", -1, 0, 16, 16, 0, "AIM ITS/04-023:2022 ECI 15 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
2962 "1010101010101010"
2963 "1001101111101001"
2964 "1010110111010100"
2965 "1000101010000001"
2966 "1001011110010000"
2967 "1111001100011111"
2968 "1101110101111110"
2969 "1010111001100001"
2970 "1111100011000010"
2971 "1011100000101111"
2972 "1101000010001000"
2973 "1110000111000111"
2974 "1001010000011010"
2975 "1101001001100101"
2976 "1110011001011010"
2977 "1111111111111111"
2978 },
2979 /* 91*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 16, -1, -1, -1, "ṁórṡáċ", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 16 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
2980 "10101010101010101010101010101010"
2981 "10011101001100111111001100100101"
2982 "10101011110110101011000000111100"
2983 "10011001010000111001101100000001"
2984 "11010010010000001010011001001110"
2985 "11110110101100011111111110011101"
2986 "11101100010001001001011110100100"
2987 "11111111111111111111111111111111"
2988 },
2989 /* 92*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 17, -1, -1, -1, "Price: €13.50", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 17 Example 1", 0,
2990 "10101010101010101010101010"
2991 "10000111000111101110001001"
2992 "10100101110010111101000010"
2993 "10101011110111010110100111"
2994 "10010101011010010000100110"
2995 "11100000110001000100010001"
2996 "11100100110010110111101100"
2997 "10000001101110111010011011"
2998 "11011100101111110001001110"
2999 "10101101110001111000111101"
3000 "10100111000100011110100110"
3001 "11111111111111111111111111"
3002 },
3003 /* 93*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 18, -1, -1, -1, "Te słowa są głębokie", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 18 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
3004 "1010101010101010101010"
3005 "1001011001001010011011"
3006 "1010001101110111011000"
3007 "1011100010011110110111"
3008 "1001001100010100000100"
3009 "1111011101010000101101"
3010 "1110010000110101100100"
3011 "1000110111110101011111"
3012 "1110000000001000110110"
3013 "1111110111111001001001"
3014 "1110010001111100101010"
3015 "1110100011100100111111"
3016 "1101011101010010001010"
3017 "1011011000011101110111"
3018 "1100001001111010101110"
3019 "1011000111000111100101"
3020 "1000001001000010111110"
3021 "1010010010111111100001"
3022 "1100110001011001111000"
3023 "1110101010111001011011"
3024 "1011000010010101000110"
3025 "1111111111111111111111"
3026 },
3027 /* 94*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 20, -1, -1, -1, "バーコード", -1, 0, 12, 26, 0, "AIM ITS/04-023:2022 ECI 20 Example 1 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
3028 "10101010101010101010101010"
3029 "10011110011111011010110101"
3030 "10100100010101100010110110"
3031 "11011010011110110101110111"
3032 "10111111011000110101101110"
3033 "11110110100001110010111001"
3034 "10001000110010011001110110"
3035 "11100110101110111000101101"
3036 "10100100101011100010101100"
3037 "11100010001011010011110111"
3038 "11000110001100101101001010"
3039 "11111111111111111111111111"
3040 },
3041 /* 95*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 20, -1, -1, DM_SQUARE, "東京都", -1, 0, 16, 16, 0, "AIM ITS/04-023:2022 ECI 20 Example 2 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
3042 "1010101010101010"
3043 "1001110111101011"
3044 "1010011001101010"
3045 "1101111100001101"
3046 "1000111010111110"
3047 "1100110011010111"
3048 "1011000011111110"
3049 "1000100111111001"
3050 "1111100000001010"
3051 "1111000101101011"
3052 "1010110001100000"
3053 "1110010000001001"
3054 "1001011000001110"
3055 "1110111011010101"
3056 "1010010001000010"
3057 "1111111111111111"
3058 },
3059 /* 96*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 21, -1, -1, -1, "Študentska št. 2198390", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 21 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
3060 "10101010101010101010"
3061 "10001100100001100111"
3062 "10100101100110111110"
3063 "11101100001010110001"
3064 "10111011100101011110"
3065 "11101101000100110001"
3066 "11111011100011001110"
3067 "11000000111110011001"
3068 "11100111111110101000"
3069 "11000111111000011001"
3070 "11011011010111011110"
3071 "11100101100111011011"
3072 "11111011111100110010"
3073 "11010100101010011001"
3074 "11101100100010111110"
3075 "11110000011100100001"
3076 "10011011000111010100"
3077 "11111100011000100101"
3078 "11010010011010100010"
3079 "11111111111111111111"
3080 },
3081 /* 97*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 22, -1, -1, DM_SQUARE, "Россия", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 22 Example 1", 0,
3082 "1010101010101010"
3083 "1001110111011111"
3084 "1010101011100000"
3085 "1111111101000011"
3086 "1001100010101000"
3087 "1111010011011111"
3088 "1000000001100110"
3089 "1011100100000001"
3090 "1010101000111000"
3091 "1001111010011001"
3092 "1101100010010000"
3093 "1011011010001001"
3094 "1110100000111100"
3095 "1001011100110101"
3096 "1011010001101010"
3097 "1111111111111111"
3098 },
3099 /* 98*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 22, -1, -1, DM_SQUARE, "Монголулс", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 22 Example 2", 0,
3100 "101010101010101010"
3101 "100111100100010101"
3102 "101010000001111110"
3103 "111111111010101111"
3104 "100100010110101110"
3105 "111100111100011001"
3106 "100001000010111100"
3107 "100110010111100101"
3108 "101000111000100010"
3109 "100011110100101111"
3110 "111011111000101000"
3111 "100111100001100101"
3112 "100011110010101010"
3113 "100000110010101001"
3114 "110111010111100000"
3115 "100110011101011001"
3116 "101100011000000110"
3117 "111111111111111111"
3118 },
3119 /* 99*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 23, -1, -1, -1, "bœuf", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 23 Example 1", 0,
3120 "10101010101010"
3121 "10001110110001"
3122 "10110001110100"
3123 "10000110111101"
3124 "10011010110010"
3125 "11110101110101"
3126 "11110010010000"
3127 "10001111000111"
3128 "11110111110110"
3129 "10000001100001"
3130 "11010110100000"
3131 "10010000100111"
3132 "11000001001110"
3133 "11111111111111"
3134 },
3135 /*100*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 24, -1, -1, DM_SQUARE, "جواز السفر", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 24 Example 1", 0,
3136 "101010101010101010"
3137 "100111100010000001"
3138 "101110001110110010"
3139 "100111111110101111"
3140 "100100001010101110"
3141 "111010111100011001"
3142 "110000010010100010"
3143 "111101110110110001"
3144 "111011011001101010"
3145 "101111100101000111"
3146 "110000010001000010"
3147 "101111110011000011"
3148 "110001010110100110"
3149 "110010011100010111"
3150 "111110101000110000"
3151 "101111100010001011"
3152 "110100011110001010"
3153 "111111111111111111"
3154 },
3155 /*101*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 24, -1, -1, -1, "المنشأ: المملكة العربية السعودية", -1, 0, 24, 24, 1, "AIM ITS/04-023:2022 ECI 24 Example 2", 0,
3156 "101010101010101010101010"
3157 "100111010010001001001011"
3158 "101110111100001110010010"
3159 "100111000000111111011011"
3160 "100101110011101110101110"
3161 "111001010001001001101111"
3162 "110111010100010101101110"
3163 "111100001001000110001001"
3164 "111011111001111100101010"
3165 "100011100010010101011111"
3166 "101011100111100110010100"
3167 "111101010101101010010011"
3168 "100000001011110011010100"
3169 "110010000001000011100101"
3170 "101010110101010110001010"
3171 "111011110111011101000001"
3172 "100100011011100100110010"
3173 "111100001100111100001111"
3174 "101110101011010110101110"
3175 "100001100100001100100001"
3176 "101110110011010001010110"
3177 "110001111011100111011101"
3178 "101111000110001010111010"
3179 "111111111111111111111111"
3180 },
3181 /*102*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 25, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 25 Example 1", 0,
3182 "10101010101010"
3183 "10000010011111"
3184 "10110101011100"
3185 "10101111001101"
3186 "10000011101100"
3187 "11000000010111"
3188 "10010000010100"
3189 "10000100010111"
3190 "10101101011110"
3191 "11001100011001"
3192 "11111010000010"
3193 "10011010101101"
3194 "10011101010100"
3195 "11111111111111"
3196 },
3197 /*103*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 25, -1, -1, -1, "バーコード", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 25 Example 2", 0,
3198 "10101010101010101010101010"
3199 "10011110010000001001101001"
3200 "10110000101111001011001010"
3201 "10100111011011101110100111"
3202 "10011000011000010000110110"
3203 "11010010110001100111100001"
3204 "11010110110011000110001100"
3205 "10110011101011011111000001"
3206 "10010111101001011101001100"
3207 "11100100000101010101100011"
3208 "11000100100011011100111100"
3209 "11111111111111111111111111"
3210 },
3211 /*104*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 25, -1, -1, -1, "바코드", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 25 Example 3 **NOT SAME** example sets explicit BASE256 byte count", 0,
3212 "10101010101010101010101010101010"
3213 "10011101000111111101100100000101"
3214 "10111011100010101000011111001100"
3215 "10101011100111111110100111110101"
3216 "11100001000110001100000000111010"
3217 "11010111110011111111000101100111"
3218 "11110100011001101010111111010110"
3219 "11111111111111111111111111111111"
3220 },
3221 /*105*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, DM_SQUARE, "条码", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 26 Example 1", 0,
3222 "1010101010101010"
3223 "1001110111110101"
3224 "1011111011000100"
3225 "1011010100111001"
3226 "1000010010010100"
3227 "1101110011001111"
3228 "1011100000010110"
3229 "1110100111001001"
3230 "1010111100111110"
3231 "1110010111011111"
3232 "1100111010000100"
3233 "1011111101000011"
3234 "1111111101100100"
3235 "1000011100010101"
3236 "1001110001111010"
3237 "1111111111111111"
3238 },
3239 /*106*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, -1, "バーコード", -1, 0, 20, 20, 1, "AIM ITS/04-023:2022 ECI 26 Example 2", 0,
3240 "10101010101010101010"
3241 "10011110001010000111"
3242 "10111111000100111110"
3243 "10110011010001010001"
3244 "10001110001111011010"
3245 "11000011100100001011"
3246 "10101010000101000000"
3247 "10110001001001100101"
3248 "10001010000000001000"
3249 "11110010000011010101"
3250 "10001010010001011010"
3251 "11100001110010000001"
3252 "10110010011000110000"
3253 "10011010010111000111"
3254 "11111111110100000110"
3255 "11010100111101001001"
3256 "11001010010001101000"
3257 "11101000000101101101"
3258 "11000101001001010010"
3259 "11111111111111111111"
3260 },
3261 /*107*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 26 Example 3", 0,
3262 "101010101010101010"
3263 "100111100000010101"
3264 "101111000110111110"
3265 "101101010101101111"
3266 "100011101010101110"
3267 "111100111100001001"
3268 "100100110010110010"
3269 "101010010110000111"
3270 "100101011000001010"
3271 "100100001110010001"
3272 "100011010111100000"
3273 "100011100010101101"
3274 "111111010100001010"
3275 "110010001001001001"
3276 "100111011011000110"
3277 "100110110111011111"
3278 "101100010110000100"
3279 "111111111111111111"
3280 },
3281 /*108*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 27, -1, -1, -1, "sn:7QPB4MN", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 27 Example 1", 0,
3282 "1010101010101010"
3283 "1001001011000001"
3284 "1011111111011000"
3285 "1100100111101001"
3286 "1000110111011100"
3287 "1100100110000111"
3288 "1000010110101110"
3289 "1000010011010001"
3290 "1001101001110110"
3291 "1001100011110011"
3292 "1011000000011110"
3293 "1000110001100001"
3294 "1110101111011010"
3295 "1110001011011101"
3296 "1001011001110010"
3297 "1111111111111111"
3298 },
3299 /*109*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 28, -1, -1, -1, "條碼", -1, 0, 14, 14, 0, "AIM ITS/04-023:2022 ECI 28 Example 1 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example except does not set explicit BASE256 byte count", 0,
3300 "10101010101010"
3301 "10011101101111"
3302 "10111001001100"
3303 "11010111110001"
3304 "10011010100010"
3305 "11111111100101"
3306 "11010001010100"
3307 "11000100010111"
3308 "10110010111110"
3309 "10011001011001"
3310 "10000111110010"
3311 "11110001100001"
3312 "10101101000110"
3313 "11111111111111"
3314 },
3315 /*110*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 29, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 29 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
3316 "10101010101010"
3317 "10011101000111"
3318 "10111011101100"
3319 "11101111110101"
3320 "10010001000000"
3321 "11110000101001"
3322 "11111100101110"
3323 "11100000001111"
3324 "11011110100110"
3325 "10000000101001"
3326 "10111010101110"
3327 "10100011110101"
3328 "11001101000100"
3329 "11111111111111"
3330 },
3331 /*111*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 29, -1, -1, -1, "北京", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 29 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
3332 "10101010101010"
3333 "10011101000101"
3334 "10111011100110"
3335 "11100110001111"
3336 "10001011110100"
3337 "11110000010111"
3338 "11011111000000"
3339 "11000100101111"
3340 "11001101001110"
3341 "10100100101001"
3342 "10000101101110"
3343 "10011001110001"
3344 "10101101000110"
3345 "11111111111111"
3346 },
3347 /*112*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 30, -1, -1, -1, "바코드", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 30 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
3348 "10101010101010101010101010101010"
3349 "10011101010000111110011110001101"
3350 "10111011100001101011001100110000"
3351 "11111001111110111010010000010001"
3352 "11011010110111101010001000101010"
3353 "11011111001011111001111111100111"
3354 "11011100010101101110100010101010"
3355 "11111111111111111111111111111111"
3356 },
3357 /*113*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 30, -1, -1, -1, "서울", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 30 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
3358 "10101010101010"
3359 "10011101010111"
3360 "10111011100110"
3361 "11111011101101"
3362 "10000000001100"
3363 "11101010010111"
3364 "11111000111000"
3365 "11000111001111"
3366 "11101101011110"
3367 "11110110000001"
3368 "10110010011110"
3369 "11011101100001"
3370 "11001101000110"
3371 "11111111111111"
3372 },
3373 /*114*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 31, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 31 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
3374 "10101010101010"
3375 "10011101010111"
3376 "11001011110100"
3377 "10001111000101"
3378 "10010001011100"
3379 "11110011111001"
3380 "11111010101000"
3381 "11110100011111"
3382 "11001001011110"
3383 "10011000100001"
3384 "11100001000110"
3385 "11000111110101"
3386 "11000111000100"
3387 "11111111111111"
3388 },
3389 /*115*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 31, -1, -1, -1, "北京", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 31 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
3390 "10101010101010"
3391 "10011101010101"
3392 "11001011111110"
3393 "10000110111111"
3394 "10001011101000"
3395 "11110011000111"
3396 "11011001000110"
3397 "11010000111111"
3398 "11011010110110"
3399 "10111100100001"
3400 "11011110000110"
3401 "11111101110001"
3402 "10100111000110"
3403 "11111111111111"
3404 },
3405 /*116*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 31, -1, -1, -1, "條碼", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 31 Example 3 **NOT SAME** different encodation (example uses binary)", 0,
3406 "10101010101010"
3407 "10001101110001"
3408 "11000100010000"
3409 "10001011110011"
3410 "10111011000000"
3411 "11101111000101"
3412 "10011100000110"
3413 "11010101100111"
3414 "10101011010110"
3415 "10000111111001"
3416 "11000110110000"
3417 "11001111101011"
3418 "10110111010010"
3419 "11111111111111"
3420 },
3421 /*117*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 32 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
3422 "10101010101010"
3423 "10011101011111"
3424 "11001011111000"
3425 "10011110010101"
3426 "10010000011000"
3427 "11110011000001"
3428 "11111001000010"
3429 "11100101010111"
3430 "11011110110110"
3431 "10010011011001"
3432 "10001110010010"
3433 "10110101101101"
3434 "11000001000100"
3435 "11111111111111"
3436 },
3437 /*118*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, -1, "北京", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 32 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
3438 "10101010101010"
3439 "10011101011101"
3440 "11001011110010"
3441 "10010111101111"
3442 "10001010101100"
3443 "11110011111111"
3444 "11011010101100"
3445 "11000001110111"
3446 "11001101011110"
3447 "10110111011001"
3448 "10110001010010"
3449 "10001111101001"
3450 "10100001000110"
3451 "11111111111111"
3452 },
3453 /*119*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, -1, "條碼", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 32 Example 3 **NOT SAME** different encodation (example uses binary)", 0,
3454 "10101010101010"
3455 "10001101111001"
3456 "11000100011100"
3457 "10011010100011"
3458 "10111010000100"
3459 "11101111111101"
3460 "10011111101100"
3461 "11000100101111"
3462 "10111100111110"
3463 "10001100000001"
3464 "10101001100100"
3465 "10111101110011"
3466 "10110001010010"
3467 "11111111111111"
3468 },
3469 /*120*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, DM_SQUARE, "པེ་ཅིང།", -1, 0, 24, 24, 0, "AIM ITS/04-023:2022 ECI 32 Example 4 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
3470 "101010101010101010101010"
3471 "100111110000011010000101"
3472 "110001010011101011111000"
3473 "100110100010001000000001"
3474 "101010111101111000100010"
3475 "111100101011010111001111"
3476 "101001001000011100000110"
3477 "101000101100101001110001"
3478 "100001001111101011100100"
3479 "111010001100111101101101"
3480 "100011010001011011110000"
3481 "110010010111110001101011"
3482 "101101111000101100010010"
3483 "110000111010011001110111"
3484 "101111000010001111001100"
3485 "101001000110000010101101"
3486 "101011101110010001100100"
3487 "100101000100111011001101"
3488 "111101101010011000011010"
3489 "111110011100101001001111"
3490 "100010111101101000111100"
3491 "111001111000001100100101"
3492 "110001000101110010010010"
3493 "111111111111111111111111"
3494 },
3495 /*121*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, DM_SQUARE, "バーコード", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 32 Example 5", 0,
3496 "101010101010101010"
3497 "100111100000000001"
3498 "110010001111110010"
3499 "100101001110101111"
3500 "100100110010101110"
3501 "110100010000010001"
3502 "110100100010100110"
3503 "100101110111001001"
3504 "101001001001110100"
3505 "111011101000110011"
3506 "110101001000010110"
3507 "100010101000110001"
3508 "110111110111101000"
3509 "111011011001100101"
3510 "101001011011110000"
3511 "101111010001101001"
3512 "101100011101111000"
3513 "111111111111111111"
3514 },
3515 /*122*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 32 Example 6 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
3516 "101010101010101010"
3517 "100111100000001111"
3518 "110001010011000100"
3519 "100110100011110111"
3520 "101011111110100110"
3521 "111100110100011001"
3522 "100100100000100000"
3523 "101000110111110001"
3524 "101001001000001000"
3525 "111100011010000111"
3526 "100001001010100000"
3527 "111011011010000111"
3528 "111010101010001010"
3529 "101001100101100111"
3530 "101101011010111010"
3531 "110111110000100111"
3532 "101100010101010110"
3533 "111111111111111111"
3534 },
3535 /*123*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 33, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 33 Example 1", 0,
3536 "10101010101010"
3537 "10001010110111"
3538 "11000000010100"
3539 "10100000001001"
3540 "10010101100000"
3541 "11111000100001"
3542 "10001100000010"
3543 "10011110011111"
3544 "10101010010110"
3545 "10101011001001"
3546 "10110010011110"
3547 "11110100111101"
3548 "10010001000100"
3549 "11111111111111"
3550 },
3551 /*124*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 33, -1, -1, DM_SQUARE, "バーコード", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 33 Example 2 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
3552 "101010101010101010"
3553 "100111100010010001"
3554 "110010000100110010"
3555 "101011100010101111"
3556 "101010011010101110"
3557 "111100110000011001"
3558 "100101010010100100"
3559 "110000100110100001"
3560 "100001011001010010"
3561 "111000011111011101"
3562 "111001011000110110"
3563 "111001011110000111"
3564 "111110001110011010"
3565 "111101110110011101"
3566 "110111001100001000"
3567 "110111010110011001"
3568 "111100010111101010"
3569 "111111111111111111"
3570 },
3571 /*125*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 33, -1, -1, -1, "바코드", -1, 0, 8, 32, 0, "AIM ITS/04-023:2022 ECI 33 Example 3 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
3572 "10101010101010101010101010101010"
3573 "10010110001111011011011000110101"
3574 "11001111111100101000100000101000"
3575 "10101010110011011010101011101001"
3576 "11001001010111101111001001100010"
3577 "11111001001000011000100000000011"
3578 "11110010110110101110001111110110"
3579 "11111111111111111111111111111111"
3580 },
3581 /*126*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 33, -1, -1, -1, "바코드", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 33 Example 3 **NOT SAME** different encodation", 0,
3582 "10101010101010101010101010101010"
3583 "10011101001111011010111110010101"
3584 "11000011111111101000110111000100"
3585 "10100000110010111111011010110001"
3586 "11000001010111001000101111100010"
3587 "11111111000000011001110101101111"
3588 "11110100011100101110011010101000"
3589 "11111111111111111111111111111111"
3590 },
3591 /*127*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 34, -1, -1, -1, "条码", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 34 Example 1", 0,
3592 "10101010101010101010101010101010"
3593 "10000100000001011001100100101101"
3594 "11000100100001001101100101100100"
3595 "10111010000110111100110000101101"
3596 "11010000001011001000011010110010"
3597 "11100000010100111100110101101011"
3598 "11010000001111101100000001100110"
3599 "11111111111111111111111111111111"
3600 },
3601 /*128*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 34, -1, -1, -1, "バーコード", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 34 Example 2 **NOT SAME** different encodation; BWIPP different encodation", 0,
3602 "1010101010101010101010"
3603 "1000010001011111000001"
3604 "1100000010110010010000"
3605 "1011110000010011001001"
3606 "1011001000111010010010"
3607 "1110010000101001001011"
3608 "1011101110111101010000"
3609 "1011111000010101100111"
3610 "1010110110101000110110"
3611 "1010000011111001101001"
3612 "1000100111111111110100"
3613 "1011101011101111100011"
3614 "1101100101100000011000"
3615 "1100011000010100101011"
3616 "1111001010000011111100"
3617 "1111000101010110000011"
3618 "1110001011000011100110"
3619 "1110010101000001110101"
3620 "1010101000111011110110"
3621 "1000001001000110011101"
3622 "1101110000000101011100"
3623 "1111111111111111111111"
3624 },
3625 /*129*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 34, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 34 Example 3 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
3626 "101010101010101010"
3627 "100001000101111111"
3628 "110011001011000000"
3629 "101110001001110111"
3630 "101011101110110110"
3631 "110010000000010001"
3632 "111001110000111010"
3633 "110111010111011001"
3634 "100011011001110010"
3635 "101000000111010001"
3636 "100000101011011110"
3637 "101100011100110111"
3638 "101100010100110000"
3639 "111111100111000001"
3640 "100001000011011000"
3641 "100000101110010011"
3642 "101000000011010110"
3643 "111111111111111111"
3644 },
3645 /*130*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 34, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 34 Example 3 **NOT SAME** different encodation", 0,
3646 "101010101010101010"
3647 "100111100101111111"
3648 "110011011011000000"
3649 "101110101001110111"
3650 "101010001110110110"
3651 "110000000000011001"
3652 "110101110000111010"
3653 "110111010110100001"
3654 "100011011000011110"
3655 "101000011000101111"
3656 "100011011111111000"
3657 "101110111100011111"
3658 "101101011010001000"
3659 "110111011110011001"
3660 "111000001110001000"
3661 "100111100000010111"
3662 "101100011111010100"
3663 "111111111111111111"
3664 },
3665 /*131*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 35, -1, -1, -1, "条码", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 35 Example 1", 0,
3666 "10101010101010101010101010101010"
3667 "10001010101001011001011111111101"
3668 "11000000011111001011101110100000"
3669 "11000000000110111000110111011101"
3670 "11000010001110001111001100111110"
3671 "11000010101100011100010000001011"
3672 "11001100011110001000101111100010"
3673 "11111111111111111111111111111111"
3674 },
3675 /*132*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 35, -1, -1, -1, "バーコード", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 35 Example 2 **NOT SAME** different encodation; BWIPP different encodation", 0,
3676 "1010101010101010101010"
3677 "1001111010111100010001"
3678 "1100100000010110000000"
3679 "1100111001000110010101"
3680 "1010100000110100011010"
3681 "1111001100101000111011"
3682 "1001010110011101101100"
3683 "1110011011010101011111"
3684 "1000010010101011011110"
3685 "1000000111111000011001"
3686 "1111100111110011001000"
3687 "1111110011101010000001"
3688 "1100000101000111111000"
3689 "1100111000001001100101"
3690 "1011101010011011100000"
3691 "1101000100111000010101"
3692 "1010000001011110010100"
3693 "1000010110001001000101"
3694 "1000011101101100111000"
3695 "1001011111010100100111"
3696 "1000011100010000111100"
3697 "1111111111111111111111"
3698 },
3699 /*133*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 35, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 35 Example 3 **NOT SAME** different encodation; BWIPP different encodation", 0,
3700 "101010101010101010"
3701 "100101100010110001"
3702 "110011111110000010"
3703 "110011000101000111"
3704 "100010100010001110"
3705 "111110110000011001"
3706 "101101010000110000"
3707 "111101100111001101"
3708 "100100011001111100"
3709 "110111100000101011"
3710 "101001011010101000"
3711 "111111001010001101"
3712 "110001011011010100"
3713 "111100111001011101"
3714 "111011010101100100"
3715 "110000000111111111"
3716 "110010110111000000"
3717 "111111111111111111"
3718 },
3719 /*134*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 170, -1, -1, -1, "sn:7QPB4MN", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 170 Example 1", 0,
3720 "1010101010101010"
3721 "1101001101000101"
3722 "1000011000100000"
3723 "1000101000101001"
3724 "1011111101000010"
3725 "1110000100111111"
3726 "1011011000011110"
3727 "1010011011010001"
3728 "1000111011000100"
3729 "1110001110110001"
3730 "1000111001111000"
3731 "1000100110001001"
3732 "1101001101010000"
3733 "1010000010100101"
3734 "1101110101101010"
3735 "1111111111111111"
3736 },
3737 /*135*/ { BARCODE_DATAMATRIX, DATA_MODE, 899, -1, -1, -1, "\000\001\002\133\134\135\375\376\377", 9, 0, 12, 26, 0, "AIM ITS/04-023:2022 ECI 899 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
3738 "10101010101010101010101010"
3739 "11001100001001010101010111"
3740 "10000000111000111010100110"
3741 "10110001100110100000111111"
3742 "10000101001011001101100110"
3743 "11000011110001000000110001"
3744 "11011011110011111011110000"
3745 "11101110101110100010110101"
3746 "10001101101001001110101110"
3747 "10010110100111110011110111"
3748 "10010010000010011010010100"
3749 "11111111111111111111111111"
3750 },
3751 /*136*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, 3, -1, -1, -1, "\101\300", -1, 0, 12, 12, 1, "AÀ", 0,
3752 "101010101010"
3753 "100010101111"
3754 "100001011110"
3755 "110000010001"
3756 "101100110000"
3757 "110010100111"
3758 "101011011100"
3759 "110100111101"
3760 "101100110100"
3761 "101011100101"
3762 "100011011010"
3763 "111111111111"
3764 },
3765 /*137*/ { BARCODE_DATAMATRIX, DATA_MODE, 3, -1, -1, -1, "\101\300", -1, 0, 12, 12, 1, "AÀ", 0,
3766 "101010101010"
3767 "100010101111"
3768 "100001011110"
3769 "110000010001"
3770 "101100110000"
3771 "110010100111"
3772 "101011011100"
3773 "110100111101"
3774 "101100110100"
3775 "101011100101"
3776 "100011011010"
3777 "111111111111"
3778 },
3779 /*138*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 26, -1, -1, -1, "AÀ", -1, 0, 14, 14, 1, "AÀ", 0,
3780 "10101010101010"
3781 "10001010100001"
3782 "10110101100100"
3783 "10110001000101"
3784 "10111000100010"
3785 "11101011110011"
3786 "10011100001100"
3787 "10001100101111"
3788 "10110110111110"
3789 "10000111010001"
3790 "10000001111000"
3791 "11110100110001"
3792 "11000110001100"
3793 "11111111111111"
3794 },
3795 /*139*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, -1, "AÀ", -1, 0, 14, 14, 1, "AÀ", 0,
3796 "10101010101010"
3797 "10001010100001"
3798 "10110101100100"
3799 "10110001000101"
3800 "10111000100010"
3801 "11101011110011"
3802 "10011100001100"
3803 "10001100101111"
3804 "10110110111110"
3805 "10000111010001"
3806 "10000001111000"
3807 "11110100110001"
3808 "11000110001100"
3809 "11111111111111"
3810 },
3811 /*140*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "abcdefgh+", -1, 0, 16, 16, 1, "TEX last_shift 2, symbols_left 1, process_p 1", 0,
3812 "1010101010101010"
3813 "1010011011101001"
3814 "1011001010010010"
3815 "1001100100110011"
3816 "1111100010101100"
3817 "1111111011110111"
3818 "1111011111111100"
3819 "1011001100001111"
3820 "1000000101011000"
3821 "1000011011000111"
3822 "1101011100110100"
3823 "1100100100110101"
3824 "1000000111001000"
3825 "1111111010001101"
3826 "1101110101001010"
3827 "1111111111111111"
3828 },
3829 /*141*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, DM_SQUARE, "abcdefgh+", -1, 0, 14, 14, 0, "ATTTTTTTT; BWIPP same as FAST_MODE", 1,
3830 "10101010101010"
3831 "11100001010101"
3832 "11010101001000"
3833 "11111100011011"
3834 "10100110000010"
3835 "10001000100111"
3836 "10101100101000"
3837 "10001000110011"
3838 "11101101100100"
3839 "10101101000011"
3840 "10110100100010"
3841 "11101010101001"
3842 "10111011000100"
3843 "11111111111111"
3844 },
3845 /*142*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "7 BASE256s, 1 pad", 0,
3846 "10101010101010101010101010101010"
3847 "10000101000011011000110100100001"
3848 "11100111110101001011101110100010"
3849 "10111011010100111110010110001011"
3850 "11001000110001101000001111000010"
3851 "11000010000001111000100101001011"
3852 "11010000111100001010011101100100"
3853 "11111111111111111111111111111111"
3854 },
3855 /*143*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "7 BASE256s, 1 pad", 0,
3856 "10101010101010101010101010101010"
3857 "10000101000011011000110100100001"
3858 "11100111110101001011101110100010"
3859 "10111011010100111110010110001011"
3860 "11001000110001101000001111000010"
3861 "11000010000001111000100101001011"
3862 "11010000111100001010011101100100"
3863 "11111111111111111111111111111111"
3864 },
3865 /*144*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "8 BASE256s, no padding", 0,
3866 "10101010101010101010101010101010"
3867 "10000101000011011111001101000001"
3868 "11010111110101001001011001100010"
3869 "11001011010111111010001100100011"
3870 "11001000110000101011101100011010"
3871 "11000010000001111000010010110011"
3872 "11010000110010001001010001111000"
3873 "11111111111111111111111111111111"
3874 },
3875 /*145*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "8 BASE256s, no padding", 0,
3876 "10101010101010101010101010101010"
3877 "10000101000011011111001101000001"
3878 "11010111110101001001011001100010"
3879 "11001011010111111010001100100011"
3880 "11001000110000101011101100011010"
3881 "11000010000001111000010010110011"
3882 "11010000110010001001010001111000"
3883 "11111111111111111111111111111111"
3884 },
3885 /*146*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "\200\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "8 BASE256s, square, no padding", 0,
3886 "1010101010101010"
3887 "1000010100001101"
3888 "1101011111101110"
3889 "1100101101000101"
3890 "1000100000110000"
3891 "1100011100010111"
3892 "1001010100101100"
3893 "1110111010010111"
3894 "1000111000010110"
3895 "1110001101001001"
3896 "1000110011010000"
3897 "1011110101001101"
3898 "1000000010101100"
3899 "1001001000100101"
3900 "1111000011111010"
3901 "1111111111111111"
3902 },
3903 /*147*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, DM_SQUARE, "\200\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "8 BASE256s, square, no padding", 0,
3904 "1010101010101010"
3905 "1000010100001101"
3906 "1101011111101110"
3907 "1100101101000101"
3908 "1000100000110000"
3909 "1100011100010111"
3910 "1001010100101100"
3911 "1110111010010111"
3912 "1000111000010110"
3913 "1110001101001001"
3914 "1000110011010000"
3915 "1011110101001101"
3916 "1000000010101100"
3917 "1001001000100101"
3918 "1111000011111010"
3919 "1111111111111111"
3920 },
3921 /*148*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "9 BASE256s, 1 pad", 0,
3922 "1010101010101010"
3923 "1000010101001101"
3924 "1110011111000010"
3925 "1101101101010101"
3926 "1000100000001010"
3927 "1100011001101111"
3928 "1001010111100100"
3929 "1110111001100111"
3930 "1000111101000010"
3931 "1110001101001101"
3932 "1000011111001000"
3933 "1011001101010111"
3934 "1010101000000000"
3935 "1011001001011101"
3936 "1100000011011010"
3937 "1111111111111111"
3938 },
3939 /*149*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "9 BASE256s, 1 pad", 0,
3940 "1010101010101010"
3941 "1000010101001101"
3942 "1110011111000010"
3943 "1101101101010101"
3944 "1000100000001010"
3945 "1100011001101111"
3946 "1001010111100100"
3947 "1110111001100111"
3948 "1000111101000010"
3949 "1110001101001101"
3950 "1000011111001000"
3951 "1011001101010111"
3952 "1010101000000000"
3953 "1011001001011101"
3954 "1100000011011010"
3955 "1111111111111111"
3956 },
3957 /*150*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 22, 22, 1, "22 BASE256s, 6 pads", 0,
3958 "1010101010101010101010"
3959 "1010010100011100010101"
3960 "1000011110111110001100"
3961 "1010101100010111000101"
3962 "1000100000010100110110"
3963 "1100011100101000100101"
3964 "1001010100111101110100"
3965 "1110111000010101110111"
3966 "1000111010101000101100"
3967 "1110000111111001100111"
3968 "1000000111110100001010"
3969 "1011110011101111101001"
3970 "1111000101101110010000"
3971 "1100011000111101111001"
3972 "1111001010100110101110"
3973 "1111000100111010000001"
3974 "1110000100011110101100"
3975 "1100010001111011110101"
3976 "1000101001101111011100"
3977 "1111110010000111001001"
3978 "1111101000110111010100"
3979 "1111111111111111111111"
3980 },
3981 /*151*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 22, 22, 1, "22 BASE256s, 6 pads", 0,
3982 "1010101010101010101010"
3983 "1010010100011100010101"
3984 "1000011110111110001100"
3985 "1010101100010111000101"
3986 "1000100000010100110110"
3987 "1100011100101000100101"
3988 "1001010100111101110100"
3989 "1110111000010101110111"
3990 "1000111010101000101100"
3991 "1110000111111001100111"
3992 "1000000111110100001010"
3993 "1011110011101111101001"
3994 "1111000101101110010000"
3995 "1100011000111101111001"
3996 "1111001010100110101110"
3997 "1111000100111010000001"
3998 "1110000100011110101100"
3999 "1100010001111011110101"
4000 "1000101001101111011100"
4001 "1111110010000111001001"
4002 "1111101000110111010100"
4003 "1111111111111111111111"
4004 },
4005 /*152*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, DM_DMRE, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 8, 64, 1, "22 BASE256s, no padding", 0,
4006 "1010101010101010101010101010101010101010101010101010101010101010"
4007 "1000010101100011101010101011101111110100100110011100010011010111"
4008 "1101011110001010110000001110001010001011010111001010101101100000"
4009 "1100101000110001110100000001100110010100111101111110000010011111"
4010 "1000100101001000110110101110011011110110111010101110010111001100"
4011 "1100001101011011111101111000110110110101110110111111011010011111"
4012 "1101000011001010111101101101110010111100111101001010010011001000"
4013 "1111111111111111111111111111111111111111111111111111111111111111"
4014 },
4015 /*153*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, DM_DMRE, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 8, 64, 1, "22 BASE256s, no padding", 0,
4016 "1010101010101010101010101010101010101010101010101010101010101010"
4017 "1000010101100011101010101011101111110100100110011100010011010111"
4018 "1101011110001010110000001110001010001011010111001010101101100000"
4019 "1100101000110001110100000001100110010100111101111110000010011111"
4020 "1000100101001000110110101110011011110110111010101110010111001100"
4021 "1100001101011011111101111000110110110101110110111111011010011111"
4022 "1101000011001010111101101101110010111100111101001010010011001000"
4023 "1111111111111111111111111111111111111111111111111111111111111111"
4024 },
4025 /*154*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 1, "249 BASE256s + 6 ASCII (3 double-digits)", 0,
4026 "1010101010101010101010101010101010101010101010101010101010101010"
4027 "1000010100011101100000010111100110100010110111011011111010000001"
4028 "1100011110111110100110111101111010101101000010001101001011001100"
4029 "1101101100010111110011110010101111111101101111111000111010011111"
4030 "1000100000010100101110100100010011101111110111101111000010011100"
4031 "1100011100101001111000111100010110100000001000111000010111011111"
4032 "1001010100111000110001000111000010000110010001101001010100110110"
4033 "1110111000001001100110011110010110100111101011111101110000100001"
4034 "1000111010111010101111110111010011110010010000101011111100100100"
4035 "1110000111101011110100011110010111101001010010011010011100101111"
4036 "1000000110110110101100000110101010111110101110001001100111001010"
4037 "1011110011010011100100010101110110010111100011011011000101010001"
4038 "1111000000110100100110001000001010110000101101001000110010011100"
4039 "1100010111100011111010011010011110001011111110011001011110110101"
4040 "1111011001000110110011110110010010011101001110101110100000100000"
4041 "1111111111111111111111111111111111111111111111111111111111111111"
4042 "1010101010101010101010101010101010101010101010101010101010101010"
4043 "1110001011011001101110110011001111000100100101111110101111000101"
4044 "1110110010110010111000100100011010010000000010101111111101011000"
4045 "1101000010101101110111100001111110100100111100111100010010010011"
4046 "1000100110010100110000111011001011101101110101001001100110110100"
4047 "1111100101011001100001011010011111100110001111111010101010010111"
4048 "1000001111111110110101011001100011101101000010101100111010001110"
4049 "1111000000111101101111010011010111000001100001111110000100000001"
4050 "1111010010101010100000011000001010001110111110101110000001111010"
4051 "1011001001000111100000011010011110111101001101011110111011000001"
4052 "1000010001100010101101001011010011100111000010101001111100101110"
4053 "1111011010100001111100001110110111001001101010111111110010101101"
4054 "1110100001010010100001011000100010001010100100001101110101001100"
4055 "1111111110101101111011010111110111101000001011011110100000000011"
4056 "1001110010110010111011001000101011011110110101101001001010101100"
4057 "1111111111111111111111111111111111111111111111111111111111111111"
4058 "1010101010101010101010101010101010101010101010101010101010101010"
4059 "1101000101000011110110000010110111101010011000011011010101000001"
4060 "1101111101111010110111110101100011001010001010101100011011100010"
4061 "1011011101111111111111010000101111011110000101011000011000100011"
4062 "1011011110000100101000101100100011100101110101001110000101001100"
4063 "1000101100001001110001110111011111000100111010111111011110001001"
4064 "1010100101101000110000011111110011001100101111101000111000101100"
4065 "1100001101001011101001110000100110000100011001011100010001000011"
4066 "1100000011000000110100100100111011000111110110001101011110011110"
4067 "1001100111111111101100110100011110111000010011111000001000111111"
4068 "1010100111101010101001000101100011100100011101001000011100011010"
4069 "1100100101001111101001111111011111100110000101111001111100010011"
4070 "1111100101100000100001110001101011001111010110101000001110010100"
4071 "1110111011000011110010010010111111001001010110011011010111010011"
4072 "1011110001011110101100100110011010111110100001001010011101010110"
4073 "1111111111111111111111111111111111111111111111111111111111111111"
4074 "1010101010101010101010101010101010101010101010101010101010101010"
4075 "1110111000110011111011100100010111000011100101011011101100010011"
4076 "1110110010010110100100001110111010010110110001101111010100110000"
4077 "1001001101100001111011100010000110011101011001111010001001111001"
4078 "1010011111000110111100001110010010011010011010101000100111101000"
4079 "1011111111010001100011010010011111110100000001111000101111110011"
4080 "1011011011010000111100000011000010100000011010001100111100001100"
4081 "1010100010001111100111010000110110101100110010011011101100010101"
4082 "1010001000011110101101010000111011011001111110001100011011110010"
4083 "1100100011011111101101110100101111011111010101011000011100100101"
4084 "1110001110100110101011000111000011111100100000001001111000001110"
4085 "1111011111010111111111110100001110110110001101011111010010010111"
4086 "1111110000011000100110001110001010111110000000001010111101111100"
4087 "1010101010110001100001110010110111111100001000011001001011101101"
4088 "1000001101010100110010010110101010000000001010101100100011101010"
4089 "1111111111111111111111111111111111111111111111111111111111111111"
4090 },
4091 /*155*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 1, "249 BASE256s + 6 ASCII (3 double-digits)", 0,
4092 "1010101010101010101010101010101010101010101010101010101010101010"
4093 "1000010100011101100000010111100110100010110111011011111010000001"
4094 "1100011110111110100110111101111010101101000010001101001011001100"
4095 "1101101100010111110011110010101111111101101111111000111010011111"
4096 "1000100000010100101110100100010011101111110111101111000010011100"
4097 "1100011100101001111000111100010110100000001000111000010111011111"
4098 "1001010100111000110001000111000010000110010001101001010100110110"
4099 "1110111000001001100110011110010110100111101011111101110000100001"
4100 "1000111010111010101111110111010011110010010000101011111100100100"
4101 "1110000111101011110100011110010111101001010010011010011100101111"
4102 "1000000110110110101100000110101010111110101110001001100111001010"
4103 "1011110011010011100100010101110110010111100011011011000101010001"
4104 "1111000000110100100110001000001010110000101101001000110010011100"
4105 "1100010111100011111010011010011110001011111110011001011110110101"
4106 "1111011001000110110011110110010010011101001110101110100000100000"
4107 "1111111111111111111111111111111111111111111111111111111111111111"
4108 "1010101010101010101010101010101010101010101010101010101010101010"
4109 "1110001011011001101110110011001111000100100101111110101111000101"
4110 "1110110010110010111000100100011010010000000010101111111101011000"
4111 "1101000010101101110111100001111110100100111100111100010010010011"
4112 "1000100110010100110000111011001011101101110101001001100110110100"
4113 "1111100101011001100001011010011111100110001111111010101010010111"
4114 "1000001111111110110101011001100011101101000010101100111010001110"
4115 "1111000000111101101111010011010111000001100001111110000100000001"
4116 "1111010010101010100000011000001010001110111110101110000001111010"
4117 "1011001001000111100000011010011110111101001101011110111011000001"
4118 "1000010001100010101101001011010011100111000010101001111100101110"
4119 "1111011010100001111100001110110111001001101010111111110010101101"
4120 "1110100001010010100001011000100010001010100100001101110101001100"
4121 "1111111110101101111011010111110111101000001011011110100000000011"
4122 "1001110010110010111011001000101011011110110101101001001010101100"
4123 "1111111111111111111111111111111111111111111111111111111111111111"
4124 "1010101010101010101010101010101010101010101010101010101010101010"
4125 "1101000101000011110110000010110111101010011000011011010101000001"
4126 "1101111101111010110111110101100011001010001010101100011011100010"
4127 "1011011101111111111111010000101111011110000101011000011000100011"
4128 "1011011110000100101000101100100011100101110101001110000101001100"
4129 "1000101100001001110001110111011111000100111010111111011110001001"
4130 "1010100101101000110000011111110011001100101111101000111000101100"
4131 "1100001101001011101001110000100110000100011001011100010001000011"
4132 "1100000011000000110100100100111011000111110110001101011110011110"
4133 "1001100111111111101100110100011110111000010011111000001000111111"
4134 "1010100111101010101001000101100011100100011101001000011100011010"
4135 "1100100101001111101001111111011111100110000101111001111100010011"
4136 "1111100101100000100001110001101011001111010110101000001110010100"
4137 "1110111011000011110010010010111111001001010110011011010111010011"
4138 "1011110001011110101100100110011010111110100001001010011101010110"
4139 "1111111111111111111111111111111111111111111111111111111111111111"
4140 "1010101010101010101010101010101010101010101010101010101010101010"
4141 "1110111000110011111011100100010111000011100101011011101100010011"
4142 "1110110010010110100100001110111010010110110001101111010100110000"
4143 "1001001101100001111011100010000110011101011001111010001001111001"
4144 "1010011111000110111100001110010010011010011010101000100111101000"
4145 "1011111111010001100011010010011111110100000001111000101111110011"
4146 "1011011011010000111100000011000010100000011010001100111100001100"
4147 "1010100010001111100111010000110110101100110010011011101100010101"
4148 "1010001000011110101101010000111011011001111110001100011011110010"
4149 "1100100011011111101101110100101111011111010101011000011100100101"
4150 "1110001110100110101011000111000011111100100000001001111000001110"
4151 "1111011111010111111111110100001110110110001101011111010010010111"
4152 "1111110000011000100110001110001010111110000000001010111101111100"
4153 "1010101010110001100001110010110111111100001000011001001011101101"
4154 "1000001101010100110010010110101010000000001010101100100011101010"
4155 "1111111111111111111111111111111111111111111111111111111111111111"
4156 },
4157 /*156*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 0, "249 BASE256s + 8 ASCII (Sh A80 + 3 double-digits); BWIPP uses 2nd B256 length byte instead of ASCII shift (same no. of codewords)", 0,
4158 "1010101010101010101010101010101010101010101010101010101010101010"
4159 "1000010100011101100000010111100110100010110111011011111010000001"
4160 "1100011110111110100110111101111010101101000010001101001011001100"
4161 "1101101100010111110011110010101111111101101111111000111010011111"
4162 "1000100000010100101110100100010011101111110111101111000010011100"
4163 "1100011100101001111000111100010110100000001000111000010111011111"
4164 "1001010100111000110001000111000010000110010001101001010100110110"
4165 "1110111000001001100110011110010110100111101011111101110000100001"
4166 "1000111010111010101111110111010011110010010000101011111100100100"
4167 "1110000111101011110100011110010111101001010010011010011100101111"
4168 "1000000110110110101100000110101010111110101110001001100111001010"
4169 "1011110011010011100100010101110110010111100011011011000101010001"
4170 "1111000000110100100110001000001010110000101101001000110010011100"
4171 "1100010111100011111010011010011110001011111110011001011110100101"
4172 "1111011001000110110011110110010010011101001110101110100000111100"
4173 "1111111111111111111111111111111111111111111111111111111111111111"
4174 "1010101010101010101010101010101010101010101010101010101010101010"
4175 "1110001011011001101110110011001111000100100101111110101110001101"
4176 "1110110010110010111000100100011010010000000010101111111100110100"
4177 "1101000010101101110111100001111110100100111100111100010000000001"
4178 "1000100110010100110000111011001011101101110101001001100000001100"
4179 "1111100101011001100001011010011111100110001111111010101001000111"
4180 "1000001111111110110101011001100011101101000010101100111101110110"
4181 "1111000000111101101111010011010111000001100001111110000111011001"
4182 "1111010010101010100000011000001010001110111110101111011000110110"
4183 "1011001001000111100000011010011110111101001101011100111100001001"
4184 "1000010001100010101101001011010011100111000010101110100100111110"
4185 "1111011010100001111100001110110111001001101011111100111010000111"
4186 "1110100001010010100001011000100010001010110101101010010100110100"
4187 "1111111110101101111011010111110111101000101010111010111100010011"
4188 "1001110010110010111011001000101011011100011101101100100011101100"
4189 "1111111111111111111111111111111111111111111111111111111111111111"
4190 "1010101010101010101010101010101010101010101010101010101010101010"
4191 "1101000101000011110110000010110111101000011000111110111010011001"
4192 "1101111101111010110111110101100011001000101011101100100111110010"
4193 "1011011101111111111111010000101111010010000110111110001111100111"
4194 "1011011110000100101000101100100011101101110010101111000100001000"
4195 "1000101100001001110001110111011111100100111110111000100100000101"
4196 "1010100101101000110000011111111010100100001011101001001011010010"
4197 "1100001101001011101001110000101111100100000011111111101010100011"
4198 "1100000011000000110100100100100011000101101010101101011011101110"
4199 "1001100111111111101100110100000110111010110011011010001010001111"
4200 "1010100111101010101001000101001011101010101011101100000011001110"
4201 "1100100101001111101001111111011111101011101001011001101101011011"
4202 "1111100101100000100001110001101011011101110000001010101100110100"
4203 "1110111011000011110010010010111111011111110111111110001001101011"
4204 "1011110001011110101100100110011010001101000111001110011110001110"
4205 "1111111111111111111111111111111111111111111111111111111111111111"
4206 "1010101010101010101010101010101010101010101010101010101010101010"
4207 "1110111000110011111011100100010111111011010010011101000000001011"
4208 "1110110010010110100100001110100011101000100110101001000110101000"
4209 "1001001101100001111011100010111111111010011111011010100111110001"
4210 "1010011111000110111100001110111011011000000101101101011000001000"
4211 "1011111111010001100011010011011111001000000100011011100011101111"
4212 "1011011011010000111100001000111010101111011101101101010111001000"
4213 "1010100010001111100111010001110110110101011001011101010011101001"
4214 "1010001000011110101101011010000011001010110101101000110111100000"
4215 "1100100011011111101101011101110110001000001011111000100101111101"
4216 "1110001110100110101001100110100010111111000101001110100100110110"
4217 "1111011111010111111110100001101111100010101100111101010001000111"
4218 "1111110000011000101010110101101010000111111000001011100010000000"
4219 "1010101010110001101001110010010111001010001001011001111101101001"
4220 "1000001101010100110100010100101010001100001000101100101001101010"
4221 "1111111111111111111111111111111111111111111111111111111111111111"
4222 },
4223 /*157*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 0, "249 BASE256s + 8 ASCII (Sh A80 + 3 double-digits); BWIPP uses 2nd B256 length byte instead of ASCII shift (same no. of codewords)", 0,
4224 "1010101010101010101010101010101010101010101010101010101010101010"
4225 "1000010100011101100000010111100110100010110111011011111010000001"
4226 "1100011110111110100110111101111010101101000010001101001011001100"
4227 "1101101100010111110011110010101111111101101111111000111010011111"
4228 "1000100000010100101110100100010011101111110111101111000010011100"
4229 "1100011100101001111000111100010110100000001000111000010111011111"
4230 "1001010100111000110001000111000010000110010001101001010100110110"
4231 "1110111000001001100110011110010110100111101011111101110000100001"
4232 "1000111010111010101111110111010011110010010000101011111100100100"
4233 "1110000111101011110100011110010111101001010010011010011100101111"
4234 "1000000110110110101100000110101010111110101110001001100111001010"
4235 "1011110011010011100100010101110110010111100011011011000101010001"
4236 "1111000000110100100110001000001010110000101101001000110010011100"
4237 "1100010111100011111010011010011110001011111110011001011110100101"
4238 "1111011001000110110011110110010010011101001110101110100000111100"
4239 "1111111111111111111111111111111111111111111111111111111111111111"
4240 "1010101010101010101010101010101010101010101010101010101010101010"
4241 "1110001011011001101110110011001111000100100101111110101110001101"
4242 "1110110010110010111000100100011010010000000010101111111100110100"
4243 "1101000010101101110111100001111110100100111100111100010000000001"
4244 "1000100110010100110000111011001011101101110101001001100000001100"
4245 "1111100101011001100001011010011111100110001111111010101001000111"
4246 "1000001111111110110101011001100011101101000010101100111101110110"
4247 "1111000000111101101111010011010111000001100001111110000111011001"
4248 "1111010010101010100000011000001010001110111110101111011000110110"
4249 "1011001001000111100000011010011110111101001101011100111100001001"
4250 "1000010001100010101101001011010011100111000010101110100100111110"
4251 "1111011010100001111100001110110111001001101011111100111010000111"
4252 "1110100001010010100001011000100010001010110101101010010100110100"
4253 "1111111110101101111011010111110111101000101010111010111100010011"
4254 "1001110010110010111011001000101011011100011101101100100011101100"
4255 "1111111111111111111111111111111111111111111111111111111111111111"
4256 "1010101010101010101010101010101010101010101010101010101010101010"
4257 "1101000101000011110110000010110111101000011000111110111010011001"
4258 "1101111101111010110111110101100011001000101011101100100111110010"
4259 "1011011101111111111111010000101111010010000110111110001111100111"
4260 "1011011110000100101000101100100011101101110010101111000100001000"
4261 "1000101100001001110001110111011111100100111110111000100100000101"
4262 "1010100101101000110000011111111010100100001011101001001011010010"
4263 "1100001101001011101001110000101111100100000011111111101010100011"
4264 "1100000011000000110100100100100011000101101010101101011011101110"
4265 "1001100111111111101100110100000110111010110011011010001010001111"
4266 "1010100111101010101001000101001011101010101011101100000011001110"
4267 "1100100101001111101001111111011111101011101001011001101101011011"
4268 "1111100101100000100001110001101011011101110000001010101100110100"
4269 "1110111011000011110010010010111111011111110111111110001001101011"
4270 "1011110001011110101100100110011010001101000111001110011110001110"
4271 "1111111111111111111111111111111111111111111111111111111111111111"
4272 "1010101010101010101010101010101010101010101010101010101010101010"
4273 "1110111000110011111011100100010111111011010010011101000000001011"
4274 "1110110010010110100100001110100011101000100110101001000110101000"
4275 "1001001101100001111011100010111111111010011111011010100111110001"
4276 "1010011111000110111100001110111011011000000101101101011000001000"
4277 "1011111111010001100011010011011111001000000100011011100011101111"
4278 "1011011011010000111100001000111010101111011101101101010111001000"
4279 "1010100010001111100111010001110110110101011001011101010011101001"
4280 "1010001000011110101101011010000011001010110101101000110111100000"
4281 "1100100011011111101101011101110110001000001011111000100101111101"
4282 "1110001110100110101001100110100010111111000101001110100100110110"
4283 "1111011111010111111110100001101111100010101100111101010001000111"
4284 "1111110000011000101010110101101010000111111000001011100010000000"
4285 "1010101010110001101001110010010111001010001001011001111101101001"
4286 "1000001101010100110100010100101010001100001000101100101001101010"
4287 "1111111111111111111111111111111111111111111111111111111111111111"
4288 },
4289 /*158*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 1, "10 ASCII + 251 BASE256s + 6 ASCII", 0,
4290 "1010101010101010101010101010101010101010101010101010101010101010"
4291 "1010011010011101100000010111100110100010110111011011111010000001"
4292 "1011001010111110100110111101111010101101000010001101001011001100"
4293 "1001100010010111110011110010101111111101101111111000111010011111"
4294 "1010100001010100101110100100010011101111110111101111000010011100"
4295 "1000001110101001111000111100010110100000001000111000010111011111"
4296 "1100011000111000110001000111000010000110010001101001010100110100"
4297 "1111100000001001100110011110010110100111101011111101110000100001"
4298 "1110101010111010101111110111010011110010010000101011111100100110"
4299 "1110100111101011110100011110010111101001010010011010011100101111"
4300 "1100000110110110101100000110101010111110101110001001100111001010"
4301 "1111110011010011100100010101110110010111100011011011000101010111"
4302 "1111000000110100100110001000001010110000101101001000110010011110"
4303 "1000010111100011111010011010011110001011111110011001011110100111"
4304 "1111011001000110110011110110010010011101001110101110100000101000"
4305 "1111111111111111111111111111111111111111111111111111111111111111"
4306 "1010101010101010101010101010101010101010101010101010101010101010"
4307 "1110001011011001101110110011001111000100100101111110101111000001"
4308 "1110110010110010111000100100011010010000000010101111111100010100"
4309 "1101000010101101110111100001111110100100111100111100010100011011"
4310 "1000100110010100110000111011001011101101110101001001100011101110"
4311 "1111100101011001100001011010011111100110001111111010110111111111"
4312 "1000001111111110110101011001100011101101000010101100110011000110"
4313 "1111000000111101101111010011010111000001100001111110000000101001"
4314 "1111010010101010100000011000001010001110111110101111000001010010"
4315 "1011001001000111100000011010011110111101001101011011010101100001"
4316 "1000010001100010101101001011010011100111000010101000000000111110"
4317 "1111011010100001111100001110110111001001101010111000100011100111"
4318 "1110100001010010100001011000100010001010110100101010000001111100"
4319 "1111111110101101111011010111110111101000000011111010000111001011"
4320 "1001110010110010111011001000101011011101000101001100110000010100"
4321 "1111111111111111111111111111111111111111111111111111111111111111"
4322 "1010101010101010101010101010101010101010101010101010101010101010"
4323 "1101000101000011110110000010110111101001011000111100010011010001"
4324 "1101111101111010110111110101100011001110101011001010000000010110"
4325 "1011011101111111111111010000101111011010000100111110111001010011"
4326 "1011011110000100101000101100100011100111110011001111110100000000"
4327 "1000101100001001110001110111011111000100110101111011010110000011"
4328 "1010100101101000110000011111110010001100110000001001101010011010"
4329 "1100001101001011101001110000100111000100100111111111011000011011"
4330 "1100000011000000110100100100101011000111011101101001000000110110"
4331 "1001100111111111101100110100101110111010010111011011011001111111"
4332 "1010100111101010101001000101100011101100010100001111010110111110"
4333 "1100100101001111101001111100011111101100001000111010011110100111"
4334 "1111100101100000100001111100101011011100011111101010000100001100"
4335 "1110111011000011110010010100111111001101110101011011101100110001"
4336 "1011110001011110101100011110011011000000100000001111100001111110"
4337 "1111111111111111111111111111111111111111111111111111111111111111"
4338 "1010101010101010101010101010101010101010101010101010101010101010"
4339 "1110111000110011111011101100010111001111000011011001011111010011"
4340 "1110110010010110100100100110001010110011000011101001101000101000"
4341 "1001001101100001111000000010010110101111101001011010001101010001"
4342 "1010011111000110111001001100001010000000011111101000001111111100"
4343 "1011111111010001100111010000111110111110101101111110101011100011"
4344 "1011011011010000100000000000001011001011001110001000100100100000"
4345 "1010100010001111101111011011100110010010101001111111100001101111"
4346 "1010001000011010101101100001111010010101101111001101000111100100"
4347 "1100100011010011101101101000000111010011100001011011101110111101"
4348 "1110001110101100101010000000001011111110110100101001000111100110"
4349 "1111011111100101111110011110011110100000010010011001010011111111"
4350 "1111110010100000101110000101001011111010000011001100110100101100"
4351 "1011101011110001110011111110010111100110000000011001001101100001"
4352 "1001010101010100111010010100101010000010001011001100101011101010"
4353 "1111111111111111111111111111111111111111111111111111111111111111"
4354 },
4355 /*159*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 0, "10 ASCII + 251 BASE256s + 6 ASCII; BWIPP same as FAST_MODE", 0,
4356 "1010101010101010101010101010101010101010101010101010101010101010"
4357 "1010011010011101100000010111100110100010110111011011111010000001"
4358 "1011001010111110100110111101111010101101000010001101001011001100"
4359 "1001100000010111110011110010101111111101101111111000111010011111"
4360 "1010100000010100101110100100010011101111110111101111000010011100"
4361 "1000001101101001111000111100010110100000001000111000010111011111"
4362 "1100010100111000110001000111000010000110010001101001010100110100"
4363 "1111100000001001100110011110010110100111101011111101110000100001"
4364 "1111001010111010101111110111010011110010010000101011111100100110"
4365 "1011110111101011110100011110010111101001010010011010011100101111"
4366 "1001000110110110101100000110101010111110101110001001100111001010"
4367 "1011110011010011100100010101110110010111100011011011000101010111"
4368 "1111000000110100100110001000001010110000101101001000110010011110"
4369 "1000010111100011111010011010011110001011111110011001011110111111"
4370 "1111011001000110110011110110010010011101001110101110100000101000"
4371 "1111111111111111111111111111111111111111111111111111111111111111"
4372 "1010101010101010101010101010101010101010101010101010101010101010"
4373 "1110001011011001101110110011001111000100100101111110101110010001"
4374 "1110110010110010111000100100011010010000000010101111111101110100"
4375 "1101000010101101110111100001111110100100111100111100010000001011"
4376 "1000100110010100110000111011001011101101110101001001100001111100"
4377 "1111100101011001100001011010011111100110001111111010101010010111"
4378 "1000001111111110110101011001100011101101000010101100100110110110"
4379 "1111000000111101101111010011010111000001100001111111011001100001"
4380 "1111010010101010100000011000001010001110111110101111100111000110"
4381 "1011001001000111100000011010011110111101001101011101110100010101"
4382 "1000010001100010101101001011010011100111000010101001100011110110"
4383 "1111011010100001111100001110110111001001101010011111110101111001"
4384 "1110100001010010100001011000100010001010110101001000001100001010"
4385 "1111111110101101111011010111110111101000000011111111001100100011"
4386 "1001110010110010111011001000101011011101000101001001011010011100"
4387 "1111111111111111111111111111111111111111111111111111111111111111"
4388 "1010101010101010101010101010101010101010101010101010101010101010"
4389 "1101000101000011110110000010110111101001011000111110101110110001"
4390 "1101111101111010110111110101100011001110101001101010001110111010"
4391 "1011011101111111111111010000101111011010000100111111100001111011"
4392 "1011011110000100101000101100100011100111110100001100110100001000"
4393 "1000101100001001110001110111011111000100111110011110101001001111"
4394 "1010100101101000110000011111110010001100111010001101000111010100"
4395 "1100001101001011101001110000100111000100110011111101010011101011"
4396 "1100000011000000110100100100101011000110110111101100011111110110"
4397 "1001100111111111101100110100101110111011011111111100010000101111"
4398 "1010100111101010101001000101100011100010010110001111010101010010"
4399 "1100100101001111101001111100011111101100010000011110000010110011"
4400 "1111100101100000100001111100101011101011100110101111011011101000"
4401 "1110111011000011110010010100111111100101101111011011100100011001"
4402 "1011110001011110101100011110010010010011000111001110100010001100"
4403 "1111111111111111111111111111111111111111111111111111111111111111"
4404 "1010101010101010101010101010101010101010101010101010101010101010"
4405 "1110111000110011111011101100011111111010011111011110010000101011"
4406 "1110110010010110100100100110000010111011000010101000101111011000"
4407 "1001001101100001111000000010001111011000111000011100010111001001"
4408 "1010011111000110111001001100000011111100100101101100011100001100"
4409 "1011111111010001100111010011000111001011010111011010110000101111"
4410 "1011011011010000100000001101010011100111111100101100011001000000"
4411 "1010100010001111101111010101101110101110101001111000101111100001"
4412 "1010001000011010101101000001010011111100111010101101001111010110"
4413 "1100100011010011101101010000000111111100010100111011001010101101"
4414 "1110001110101100101011010010011011001011000010101000001101000110"
4415 "1111011111100101111110100111011110010111100010111111101000101111"
4416 "1111110010100000100101001001110010011011001100001001000000000000"
4417 "1011101011110001111111111011010110010010000001011001000101111001"
4418 "1001010101010100111110010100001010001100001000001100100011101010"
4419 "1111111111111111111111111111111111111111111111111111111111111111"
4420 },
4421 /*160*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 88, 88, 1, "10 ASCII + 252 BASE256s + 10 ASCII + 253 BASE256 + 6 ASCII", 0,
4422 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4423 "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
4424 "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
4425 "1001100010010111001111110010101111110110111111100011101001100100011100101011100101001111"
4426 "1010100001010100111010100100010110111111011011111100001001111100101011000101111000110100"
4427 "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
4428 "1100011000111001000100100111000000011001000011100101010011011101001001110001001001110000"
4429 "1111100100001000011001111110010010011110101111110111000000010000011111100000101111100001"
4430 "1110101010111010111110110111010111001001000010101111110010010001101101110001010010011110"
4431 "1110100111101011010001111110010110100101001110001001101011010100011111101100001000111101"
4432 "1100000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
4433 "1111110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
4434 "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
4435 "1000010111100011101001111010011000101111111110000010000000111010011010011110000010000111"
4436 "1111011001000111001110110110010001110100111010111010000011110011101001000010011000110100"
4437 "1110001011011000111011110011001100010010010111110010010110001111011011001010101101010101"
4438 "1110110010110011100010100100011001000000001010111110110100111001101010111110011110101100"
4439 "1101000010101101011111100001111010010011110110010110101011010001111010011100001111100001"
4440 "1000100110010101000010111011001110110111010011000110000101010100001010101111100111010110"
4441 "1111100101011000000101111010011110011000110111110001010110010000111110111110001110011111"
4442 "1000001111111111010100111001100110110100001010110011111111100111001100010101010111010110"
4443 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4444 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4445 "1111000000111100111101110011010100000111101110010000001111101101011100011101100011000001"
4446 "1111010010101010000000111000001000111011110011111100101011100100001110001110101000011010"
4447 "1011001001000110000001111010011011110011001110110010010011011000011100001000010010101101"
4448 "1000010001100010110100101011010110011100001010000100011011111010101110101111000001010010"
4449 "1111011010100001110001101110110100111110000111110110111111111101111010010011011011011001"
4450 "1110100001010010000100111000100000101010010011101000000110011001001001110010111100111010"
4451 "1111111110101101101101110111110110000101101111111110001001011001111111010011010100101011"
4452 "1001110010110011101100101000101101110000010010011101100000111011001000000110100011000100"
4453 "1101000101000011011001100010110100111011100111010101001000101100111100010010100111001001"
4454 "1101111101111011011110110101100100111010011011011011101100110111001111111000010011111010"
4455 "1011011101111111111101110000100110000001001110100111111111011001011010100101111100001011"
4456 "1011011110000100100010101100101010011110010010100101100001110111001001010111001010000000"
4457 "1000101100001001000111110110100000110110111110100101000000111101011011101000010010011011"
4458 "1010100101101001000000111111111011010000110011101100111010001001001000101111110001101010"
4459 "1100001101001010100111110110101000000101011110111001001000101110011101100011110100001011"
4460 "1100000011000001010010100100101000011010001011011110110011100010001010111111100011110110"
4461 "1001100111111110110011101101111010111010111110111001011001010010011001011111111001100111"
4462 "1010100111101010100100100111010110000100010010100000101001010011101001100100000000001010"
4463 "1100100101001110100101111101011101111100000111001111111001111110011100101010000001010011"
4464 "1111100101100000000110111100010011111110100011011001010011111100101010100100101010010000"
4465 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4466 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4467 "1110111011000011000011100110100001000011101111100100110001010001011000011011100111110001"
4468 "1011110001011110110010111000010110101100000010111111100001100111101100111000101001100100"
4469 "1110111000110011010011100100101011010111101111001001110010101000111110100000111110011011"
4470 "1110110010010110010110111110000100011110100010011011010001100111101101000010111011100000"
4471 "1001001101100111110101100101000110000101011110111011100001110110111001101000010000100001"
4472 "1010011111000111111000101110000110010111100010010011100110100111001001010110010011000100"
4473 "1011111111001001110101111101001010101000010111011000011111100111011000010010010100110111"
4474 "1011011011010000010000110011001111000011100010000000001110111001101100010000011000110000"
4475 "1010100011101100011011101011110011110011100110001111000000101000011110010010011010111011"
4476 "1010001000011010111010110110001011000000110011011100000000100010001001100000110110001110"
4477 "1100100001100110110001100001110101111011110111010000001110000011111000111000000000011101"
4478 "1110001111000110110100101110001001101101101011011100011100011010001110000101100100100110"
4479 "1111010000110111100101110001101010000100000110011110010110010001111011000100000111100111"
4480 "1111110011000001111100101110001011010010001011101111011001001111001011100011001001110100"
4481 "1010001100000001101001110011111010100010101111001101101010101110011011011111110001001001"
4482 "1000010111011010100000100111100011110101100011111000111101011110101000010110011111001110"
4483 "1011010111001100001111100100010111111100001110101000110101100001011111010100111000110101"
4484 "1110110110110001011010111001011010001000011011010100110101001111101001100111110001010100"
4485 "1111110001100101100011101101110100111110000111000000000000101001011111111011011110000111"
4486 "1010001001101110110100110011000100001001011010111110010111000110001101010100100000101100"
4487 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4488 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4489 "1000001000101010111111100010100100011111100111111001010000110111111110011011011110111011"
4490 "1011111001101000001110100010111101010001001011011011100111011000101110111011010100011000"
4491 "1111101000010101010011110011100100001101001110001011010000001000011000010111011000100001"
4492 "1000111101011010101100110110101011111111110010011100110000100001101000110110001000101010"
4493 "1011010110000010111111100101011010000011000111111101010000001001111101010101000111000101"
4494 "1000010000110101101110110100000110110000101011001010111110101001101000010100010001000010"
4495 "1111101100100000100111101110011111010101011110111101101010000000011001001011011011110101"
4496 "1000101000110000000100100101001000011010011010101101100111101101101100111010010010011110"
4497 "1000011101010100111111101011010111101000100110001100101100101000011010110111010010011011"
4498 "1001110101110101001010101010100110010011100011101110011000110100001101000101101101110110"
4499 "1110111110100110010111110110101110010100101111010011011000001100011010110111000001001001"
4500 "1010110001101110011000100101010001110100011010110110100111110101001100000110010011001000"
4501 "1110010001000010100001100001100011000001011111111010001110100010011100111001100100100001"
4502 "1000100010000000110110110010011101011111000010001010111110101001101010000011000101010000"
4503 "1100010110111111001001110000010001011010100110010111110001000011111100101101010000001001"
4504 "1100111101111100100110111110111100111011011011110010110000001001101011011100110100100100"
4505 "1010101101010111011011110011001001010101101111111011110110101011011001010111101011000111"
4506 "1110001001100111001100101100111100010100100011110101011111010101001000101001111001111010"
4507 "1001111110110111000111110010110001110001110111100111011110000010111010010101111110111001"
4508 "1101010100110101110000110100001000100000101010010010101110100111001111100010001001001100"
4509 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4510 },
4511 /*161*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200" "\061\062\063\064\065\066", -1, 0, 88, 88, 0, "10 ASCII + 252 BASE256s + 10 ASCII + 253 BASE256 + 6 ASCII; BWIPP same as FAST_MODE", 0,
4512 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4513 "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
4514 "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
4515 "1001100000010111001111110010101111110110111111100011101001100100011100101011100101001111"
4516 "1010100000010100111010100100010110111111011011111100001001111100101011000101111000110100"
4517 "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
4518 "1100010100111001000100100111000000011001000011100101010011011101001001110001001001110000"
4519 "1111100000001000011001111110010010011110101111110111000000010000011111100000101111100001"
4520 "1111001010111010111110110111010111001001000010101111110010010001101101110001010010011110"
4521 "1011110111101011010001111110010110100101001110001001101011010100011111101100001000111101"
4522 "1001000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
4523 "1011110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
4524 "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
4525 "1000010111100011101001111010011000101111111110000010000000111010011010011110000010000111"
4526 "1111011001000111001110110110010001110100111010111010000011110011101001000010011000110100"
4527 "1110001011011000111011110011001100010010010111110010010110001111011011001010101101010101"
4528 "1110110010110011100010100100011001000000001010111110110100111001101010111110011110101100"
4529 "1101000010101101011111100001111010010011110110010110101011010001111010011100001111100001"
4530 "1000100110010101000010111011001110110111010011000110000101010100001010101111100111010110"
4531 "1111100101011000000101111010011110011000110111110001010110010000111110111110001110011111"
4532 "1000001111111111010100111001100110110100001010110011111111100111001100010101010111010110"
4533 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4534 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4535 "1111000000111100111101110011010100000111101110010000001111101101011100011101100011000001"
4536 "1111010010101010000000111000001000111011110011111100101011100100001110001110101000001110"
4537 "1011001001000110000001111010011011110011001110110010010011011000011100001000010010001001"
4538 "1000010001100010110100101011010110011100001010000100011011111010101110101111000000100110"
4539 "1111011010100001110001101110110100111110000111110110111111111101111010010011011001010011"
4540 "1110100001010010000100111000100000101010010011101000000110011001001001110010111010110110"
4541 "1111111110101101101101110111110110000101101111111110001001011001111111010011001100010011"
4542 "1001110010110011101100101000101101110000010010011101100000111011001000000110110001111100"
4543 "1101000101000011011001100010110100111011100111010101001000101100111100010010110001110001"
4544 "1101111101111011011110110101100100111010011011011011101100110111001111111000100001000110"
4545 "1011011101111111111101110000100110000001001110100111111111011001011010100101011101111011"
4546 "1011011110000100100010101100101010011110010010100101100001110111001001010000001001010000"
4547 "1000101100001001000111110110100000110110111110100101000000111101011011111010000000011111"
4548 "1010100101101001000000111111111011010000110011101100111010001001001000101111010001000110"
4549 "1100001101001010100111110110101000000101011110111001001000101110011100011000010011111011"
4550 "1100000011000001010010100100101000011010001011011110110011100010001011000011001011100110"
4551 "1001100111111110110011101101111010111010111110111001011001010010011110111101100111110111"
4552 "1010100111101010100100100111010110000100010010100000101001010011101001100110011100001110"
4553 "1100100101001110100101111101011101111100000111001111111001111111111010110101000110001011"
4554 "1111100101100000000110111100010011111110100011011001010011111101101101111000011111100100"
4555 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4556 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4557 "1110111011000011000011100110100001000011101111100100110001010001111011011111000010100101"
4558 "1011110001011110110010111000010110101100000010111111100001100010101000011111110101110110"
4559 "1110111000110011010011100100101011010111101111001001110010100000111101001100111000110011"
4560 "1110110010010110010110111110000100011110100010011011010001110101101111111011101100111000"
4561 "1001001101100111110101100101000110000101011110111011100000011101111111000001011001000001"
4562 "1010011111000111111000101110000110010111100010010011100110111111101000111101011000100000"
4563 "1011111111001001110101111101001010101000010111011000011100110001011110010000001100000111"
4564 "1011011011010000010000110011001111000011100010000000001101010100101111011010110100011100"
4565 "1010100011101100011011101011110011110011100110001111000000000010011010011111100010100011"
4566 "1010001000011010111010110110001011000000110011011100011101110111001011000110101000011000"
4567 "1100100001100110110001100001110101111011110111010001010100101011011001000101010100111101"
4568 "1110001111000110110100101110001001101101101011011100101011110011101001110001111010100110"
4569 "1111010000110111100101110001101010000100000110011111110010101110011011111000101000001111"
4570 "1111110011000001111100101110001011010010001011101011010001010000101100100110101101100100"
4571 "1010001100000001101001110011111010100010101111010000011111000110011001000011011001011101"
4572 "1000010111011010100000100111100011110101100011110010101111111011101100110101101011101110"
4573 "1011010111001100001111100100010111111100001111000001011110000001011010101011110111100101"
4574 "1110110110110001011010111001011010001000011011010011001111100101101010100011100001101010"
4575 "1111110001100101100011101101110100111110001110001101001000011100011001010111101000010111"
4576 "1010001001101110110100110011000100001001000010110010100011100101001010001111111111000100"
4577 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4578 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4579 "1000001000101010111111100010100100011110100110100110100110110100111010111010001101101011"
4580 "1011111001101000001110100010111101010000011011111010110111111100001101000100110000101100"
4581 "1111101000010101010011110011100100001101011111000000000111011011011000011001000101011101"
4582 "1000111101011010101100110110101011111111111011001011010000000010001000001001001010001010"
4583 "1011010110000010111111100101011010000011010110110111101001111100011001101011111100011111"
4584 "1000010000110101101110110100000110110001000011101110000010100100001111011011000001000110"
4585 "1111101100100000100111101110011111010110001111010111011001110001011111000110010111011101"
4586 "1000101000110000000100100101001000010010111011100000100000111100101101000101010100110110"
4587 "1000011101010100111111101011010111101010010110001010110110110111011011010111010000100011"
4588 "1001110101110101001010101010100110011000000010000010000111100001101000100011101001101110"
4589 "1110111110100110010111110110101110110000101111011100101011111111111111100111011000110101"
4590 "1010110001101110011000100101010010100011100010100001011111000000001101011100101000010000"
4591 "1110010001000010100001100001100000001111000111101100100110110001111100010110011010011101"
4592 "1000100010000000110110110010010100000101101010100010011100010110101101001111101111011110"
4593 "1100010110111111001001110000010101001011011110011011011001001010111001110100101000010001"
4594 "1100111101111100100110111110101111110010011010010111010111100000001101010001011010000100"
4595 "1010101101010111011011110011110111000010110111111000000000010001111101011110011110110111"
4596 "1110001001100111001100101110010110100011001011110001111110111001001000111011100111010010"
4597 "1001111110110111000111110000110000011001010111000100001111101000111110011101010110101001"
4598 "1101010100110101110000110100101000010000100010110010111110101011001111100010000101001100"
4599 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4600 },
4601 /*162*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 88, 88, 1, "10 ASCII + 252 BASE256s + 10 ASCII + 304 BASE256, no padding", 0,
4602 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4603 "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
4604 "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
4605 "1001100010010111001111110010101111110110111111100011101001100100011100101011100101001111"
4606 "1010100001010100111010100100010110111111011011111100001001111100101011000101111000110100"
4607 "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
4608 "1100011000111001000100100111000000011001000011100101010011011101001001110001001001110000"
4609 "1111100100001000011001111110010010011110101111110111000000010000011111100000101111100001"
4610 "1110101010111010111110110111010111001001000010101111110010010001101101110001010010011110"
4611 "1110100111101011010001111110010110100101001110001001101011010100011111101100001000111101"
4612 "1100000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
4613 "1111110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
4614 "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
4615 "1000010111100011101001111010011000101111111110000010000000111010011010011110000010010111"
4616 "1111011001000111001110110110010001110100111010111010000011110011101001000010011000111000"
4617 "1110001011011000111011110011001100010010010111110010010110001111011011001010101100001001"
4618 "1110110010110011100010100100011001000000001010111110110100111001101010111110011110110100"
4619 "1101000010101101011111100001111010010011110110010110101011010001111010011100001101000001"
4620 "1000100110010101000010111011001110110111010011000110000101010100001010101111100000111110"
4621 "1111100101011000000101111010011110011000110111110001010110010000111110111110011111011111"
4622 "1000001111111111010100111001100110110100001010110011111111100111001100010101011001101110"
4623 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4624 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4625 "1111000000111100111101110011010100000111101110010000001111101101011100011100100111001001"
4626 "1111010010101010000000111000001000111011110011111100101011100100001110001110110001001110"
4627 "1011001001000110000001111010011011110011001110110010010011011000011100001110110011111001"
4628 "1000010001100010110100101011010110011100001010000100011011111010101110101000100001100110"
4629 "1111011010100001110001101110110100111110000111110110111111111101111010000110011011011111"
4630 "1110100001010010000100111000100000101010010011101000000110011001001001111000110000001010"
4631 "1111111110101101101101110111110110000101101111111110001001011001111111000011011101111011"
4632 "1001110010110011101100101000101101110000010010011101100000111011001000111101111101001100"
4633 "1101000101000011011001100010110100111011100111010101001000101100111000110010101011010001"
4634 "1101111101111011011110110101100100111010011011011011101100110111001000010011100100011010"
4635 "1011011101111111111101110000100110000001001110100111111111011000111101011111111010010111"
4636 "1011011110000100100010101100101010011110010010100101100001110111001111110101011010110000"
4637 "1000101100001001000111110110100000110110111110100101000000111111111111001001000011000101"
4638 "1010100101101001000000111111111011010000110011101100111010001011101010000101111001101100"
4639 "1100001101001010100111110110101000000101011110111001001000101010011011001011001111101011"
4640 "1100000011000001010010100100101000011010001011011110110011100000001101100001100011010110"
4641 "1001100111111110110011101101111010111010111110111001011001010001111101011110100111001111"
4642 "1010100111101010100100100111010110000100010010100000101001011011101000011100010100100110"
4643 "1100100101001110100101111101011101111100000111001111111001111101011101010000100010110011"
4644 "1111100101100000000110111100010011111110100011011001010011011011101100000001010000110000"
4645 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4646 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4647 "1110111011000011000011100110100001000011101111100100110001001110011000000001000001111101"
4648 "1011110001011110110010111000010110101100000010111111100011010000001100111010011101011110"
4649 "1110111000110011010011100100101011010111101111001001110010000000011111110111111010000011"
4650 "1110110010010110010110111110000100011110100010011011010100011000101110110101100000000000"
4651 "1001001101100111110101100101000110000101011110111011101100001010011110111100001101010001"
4652 "1010011111000111001000101110000110010111100010010011001010101100001010000101101001101000"
4653 "1011111111001001100101111101001010101000010111011000001001000001111101001011000001000011"
4654 "1011011011010000101000110011001111000011100010000010011011111110001000111101000110010100"
4655 "1010100011101100011011101011110011110011100110001110000000111111111011101011111111101111"
4656 "1010001000011010111010110110001011000000110011010000101011000001001010100000101011100010"
4657 "1100100001100110110001100001110101111011110111011101100000010010011001011001111001001101"
4658 "1110001111000110110100101110001001101101101011111101111000110001001001100000100000001110"
4659 "1111010000110111100101110001101010000100000110001101010110100010111100100101011100011111"
4660 "1111110011000001111100101110001011010010000011100001110011100110001000000101100010100100"
4661 "1010001100000001101001110011111010100010101110010111111000110101011100110010101111100001"
4662 "1000010111011010100000100111100011110101110010110110000110001100101101001111000001111010"
4663 "1011010111001100001111100100010111111100110110100000011010110110111110100011100110010011"
4664 "1110110110110001011010111001011010001010111010001010101001110100101010110101100011110000"
4665 "1111110001100101100011101101110100111100101110111011010111011110111010101011110011010111"
4666 "1010001001101110110100110011000100000010110010011110011101101001001101001001010011000100"
4667 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4668 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4669 "1000001000101010111111100010100100011001111111000011111100010010111110000100000100101011"
4670 "1011111001101000001110100010111101100101011011010001000100111101101100101010001011101100"
4671 "1111101000010101010011110011100100111000101110000011000001010011111011000110101100110101"
4672 "1000111101011010101100110110101001000010101010001010111111110101001010001001001010010110"
4673 "1011010110000010111111100101011000101001010110001101010110100000111110110000111101110001"
4674 "1000010000110101101110110100001110111101001011010010000111011111101111011101001000100110"
4675 "1111101100100000100111101110011001101110101110100001011100101001011110010100111111100101"
4676 "1000101000110000000100100101010111001110010010011011001010001000101000100100100101001110"
4677 "1000011101010100111111101011111011101010110111111110000000111001111100011101100110100011"
4678 "1001110101110101001010101000000010000010110011100010010000111011101111111100101110011110"
4679 "1110111110100110010111110100110000100101000110001000000010101101111010000001011110010001"
4680 "1010110001101110011000101011011111001111011010011011011000010100001011100101011010111100"
4681 "1110010001000010100001101000001111111101000110101000001000010010011001110111101011100011"
4682 "1000100010000000110100101001001001000100110010110000000001011100001001100001000110001110"
4683 "1100010110111111001011111101011101110010100110111111010100001010111100011011100011100001"
4684 "1100111101111100101100101010011100111101001010011110000111110011101100100000001011011100"
4685 "1010101101010111010011111000011100100011011110011011010001011000111010101000010111010111"
4686 "1110001001100111011110111101000101001011000011100101001111000111101100100000000000011110"
4687 "1001111110110111100111101011110100110001000110000111011111101000111100001101011010100001"
4688 "1101010100110101100000110110001000001000101011110010001110100101001111000010001111001100"
4689 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4690 },
4691 /*163*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 88, 88, 0, "10 ASCII + 252 BASE256s + 10 ASCII + 304 BASE256, no padding; BWIPP same as FAST_MODE", 0,
4692 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4693 "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
4694 "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
4695 "1001100000010111001111110010101111110110111111100011101001100100011100101011100101001111"
4696 "1010100000010100111010100100010110111111011011111100001001111100101011000101111000110100"
4697 "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
4698 "1100010100111001000100100111000000011001000011100101010011011101001001110001001001110000"
4699 "1111100000001000011001111110010010011110101111110111000000010000011111100000101111100001"
4700 "1111001010111010111110110111010111001001000010101111110010010001101101110001010010011110"
4701 "1011110111101011010001111110010110100101001110001001101011010100011111101100001000111101"
4702 "1001000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
4703 "1011110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
4704 "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
4705 "1000010111100011101001111010011000101111111110000010000000111010011010011110000010010111"
4706 "1111011001000111001110110110010001110100111010111010000011110011101001000010011000111000"
4707 "1110001011011000111011110011001100010010010111110010010110001111011011001010101100001001"
4708 "1110110010110011100010100100011001000000001010111110110100111001101010111110011110110100"
4709 "1101000010101101011111100001111010010011110110010110101011010001111010011100001101000001"
4710 "1000100110010101000010111011001110110111010011000110000101010100001010101111100000111110"
4711 "1111100101011000000101111010011110011000110111110001010110010000111110111110011111011111"
4712 "1000001111111111010100111001100110110100001010110011111111100111001100010101011001101110"
4713 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4714 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4715 "1111000000111100111101110011010100000111101110010000001111101101011100011100100111001001"
4716 "1111010010101010000000111000001000111011110011111100101011100100001110001110110001011010"
4717 "1011001001000110000001111010011011110011001110110010010011011000011100001110110011011101"
4718 "1000010001100010110100101011010110011100001010000100011011111010101110101000100000010010"
4719 "1111011010100001110001101110110100111110000111110110111111111101111010000110011001010101"
4720 "1110100001010010000100111000100000101010010011101000000110011001001001111000110110000110"
4721 "1111111110101101101101110111110110000101101111111110001001011001111111000011000101000011"
4722 "1001110010110011101100101000101101110000010010011101100000111011001000111101101111110100"
4723 "1101000101000011011001100010110100111011100111010101001000101100111000110010111101101001"
4724 "1101111101111011011110110101100100111010011011011011101100110111001000010011010110100110"
4725 "1011011101111111111101110000100110000001001110100111111111011000111101011111011011100111"
4726 "1011011110000100100010101100101010011110010010100101100001110111001111110010011001100000"
4727 "1000101100001001000111110110100000110110111110100101000000111111111111011011010001000001"
4728 "1010100101101001000000111111111011010000110011101100111010001011101010000101011001000000"
4729 "1100001101001010100111110110101000000101011110111001001000101010011010110000101000011011"
4730 "1100000011000001010010100100101000011010001011011110110011100000001100011101001011000110"
4731 "1001100111111110110011101101111010111010111110111001011001010001111010111100111001011111"
4732 "1010100111101010100100100111010110000100010010100000101001011011101000011110001000100010"
4733 "1100100101001110100101111101011101111100000111001111111001111100111011001111100101101011"
4734 "1111100101100000000110111100010011111110100011011001010011011010101011011101100101000100"
4735 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4736 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4737 "1110111011000011000011100110100001000011101111100100110001001110111011000101100100101001"
4738 "1011110001011110110010111000010110101100000010111111100011010101001000011101000001001100"
4739 "1110111000110011010011100100101011010111101111001001110010001000011100011011111100101011"
4740 "1110110010010110010110111110000100011110100010011011010100001010101100001100110111011000"
4741 "1001001101100111110101100101000110000101011110111011101101100001011000010101000100110001"
4742 "1010011111000111001000101110000110010111100010010011001010110100101011101110100010001100"
4743 "1011111111001001100101111101001010101000010111011000001010010111111011001001011001110011"
4744 "1011011011010000101000110011001111000011100010000010011000010011001011110111101010111000"
4745 "1010100011101100011011101011110011110011100110001110000000010101111111100110000111110111"
4746 "1010001000011010111010110110001011000000110011010000110110010100001000000110110101110100"
4747 "1100100001100110110001100001110101111011110111011100111010111010111000100100101101101101"
4748 "1110001111000110110100101110001001101101101011111101001111011000101110010100111110001110"
4749 "1111010000110111100101110001101010000100000110001100110010011101011100011001110011110111"
4750 "1111110011000001111100101110001011010010000011100101111011111001101111000000000110110100"
4751 "1010001100000001101001110011111010100010101110001010001101011101011110101110000111110101"
4752 "1000010111011010100000100111100011110101110010111100010100101001101001101100110101011010"
4753 "1011010111001100001111100100010111111100110111001001110001010110111011011100101001000011"
4754 "1110110110110001011010111001011010001010111010001101010011011110101001110001110011001110"
4755 "1111110001100101100011101101110100111100100111110110011111101011111100000111000101000111"
4756 "1010001001101110110100110011000100000010101010010010101001001010001010010010001100101100"
4757 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4758 "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4759 "1000001000101010111111100010100100011000111110011100001010010001111010100101010111111011"
4760 "1011111001101000001110100010111101100100001011110000010100011001001111010101101111011000"
4761 "1111101000010101010011110011100100111000111111001000010110000000111011001000110001001001"
4762 "1000111101011010101100110110101001000010100011011101011111010110101010110110001000110110"
4763 "1011010110000010111111100101011000101001000111000111101111010101011010001110000110101011"
4764 "1000010000110101101110110100001110111100100011110110111011010010001000010010011000100010"
4765 "1111101100100000100111101110011001101101111111001011101111011000011000011001110011001101"
4766 "1000101000110000000100100101010111000110110011010110001101011001101001011011100011100110"
4767 "1000011101010100111111101011111011101000000111111000011010100110111101111101100100011011"
4768 "1001110101110101001010101000000010001001010010001110001111101110001010011010101010000110"
4769 "1110111110100110010111110100110000000001000110000111110001011110011111010001000111101101"
4770 "1010110001101110011000101011011100011000100010001100100000100001001010111111100001100100"
4771 "1110010001000010100001101000001100110011011110111110100000000001111001011000010101011111"
4772 "1000100010000000110100101001000000011110011010011000100011100011001110101101101100000000"
4773 "1100010110111111001011111101011001100011011110110011111100000011111001000010011011111001"
4774 "1100111101111100101100101010001111110100001011111011100000011010001010101101100101111100"
4775 "1010101101010111010011111000100010110100000110011000100111100010011110100001100010100111"
4776 "1110001001100111011110111111101111111100101011100001101110101011101100110010011110110110"
4777 "1001111110110111100111101001110101011001100110100100001110000010111000000101110010110001"
4778 "1101010100110101100000110110101000111000100011010010011110101001001111000010000011001100"
4779 "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
4780 },
4781 /*164*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@_", -1, 0, 8, 32, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 2 chars, not last 3 like Zint", 0,
4782 "10101010101010101010101010101010"
4783 "10000000001001111001101100001101"
4784 "10000000000001001001110011001100"
4785 "10000000000110011111100101100001"
4786 "11000000110101101100001101111000"
4787 "11000001110100111000111101101011"
4788 "11000000000000001001000001011010"
4789 "11111111111111111111111111111111"
4790 },
4791 /*165*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@_", -1, 0, 8, 32, 0, "EDI **NOT SAME** (see FAST_MODE); BWIPP uses different encodation", 0,
4792 "10101010101010101010101010101010"
4793 "11100000000000011000100100101001"
4794 "11100000000000001010011101001000"
4795 "10000000000011111010010010100101"
4796 "10000000000100101101001011011110"
4797 "11000000001000111010111110011001"
4798 "10000000000001001010010000010000"
4799 "11111111111111111111111111111111"
4800 },
4801 /*166*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@_", -1, 0, 16, 16, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 3 chars, not last 4 like Zint", 0,
4802 "1010101010101010"
4803 "1000000001000001"
4804 "1000000000111110"
4805 "1000000100010001"
4806 "1000000000101110"
4807 "1000001001110111"
4808 "1000010001010110"
4809 "1110100011110001"
4810 "1110001110011000"
4811 "1010010110010101"
4812 "1000111010010110"
4813 "1001011001000001"
4814 "1000110101100010"
4815 "1110100110001101"
4816 "1010100000010010"
4817 "1111111111111111"
4818 },
4819 /*167*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@_", -1, 0, 8, 32, 0, "AAEEEEEEEEA; BWIPP uses different encodation, see above", 1,
4820 "10101010101010101010101010101010"
4821 "10100000000000111000110101111001"
4822 "10000000000001001000100100011000"
4823 "10010000000011011010001100000101"
4824 "10000000001111001001110110011110"
4825 "11000110001010011011101010011011"
4826 "10000110001100001001010000001110"
4827 "11111111111111111111111111111111"
4828 },
4829 /*168*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@@_", -1, 0, 16, 16, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 4 chars, not last 1 like Zint", 0,
4830 "1010101010101010"
4831 "1000000001000001"
4832 "1000000000001100"
4833 "1000000100100001"
4834 "1000000000000010"
4835 "1000001001100111"
4836 "1000010001000110"
4837 "1000000010101001"
4838 "1000111011011000"
4839 "1001110001101101"
4840 "1000111000000000"
4841 "1000100111110111"
4842 "1011100111000100"
4843 "1011000110111101"
4844 "1000100000100010"
4845 "1111111111111111"
4846 },
4847 /*169*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@@_", -1, 0, 16, 16, 0, "AAAEEEEEEEEA; BWIPP uses different encodation, see above", 0,
4848 "1010101010101010"
4849 "1010011101000001"
4850 "1000000000101000"
4851 "1001000100101111"
4852 "1000000000000100"
4853 "1100001001010011"
4854 "1000010000001000"
4855 "1000000000100001"
4856 "1000001011010100"
4857 "1000000001111001"
4858 "1000000110011000"
4859 "1000011111101101"
4860 "1001011010100110"
4861 "1011001101111101"
4862 "1011000011010010"
4863 "1111111111111111"
4864 },
4865 /*170*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@@@_", -1, 0, 16, 16, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 5 chars, not last 2 like Zint", 0,
4866 "1010101010101010"
4867 "1000000000100001"
4868 "1000000000111000"
4869 "1000000010111001"
4870 "1000000100100100"
4871 "1000001000100111"
4872 "1000000011111110"
4873 "1000000110111001"
4874 "1000110010010100"
4875 "1001111110000101"
4876 "1000000010010000"
4877 "1000101101011001"
4878 "1001010001011110"
4879 "1000000111000101"
4880 "1011100000010010"
4881 "1111111111111111"
4882 },
4883 /*171*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@@@_", -1, 0, 16, 16, 0, "EEEEEEEEEEEEA; BWIPP uses different encodation, see above", 1,
4884 "1010101010101010"
4885 "1000000001100001"
4886 "1000000000110100"
4887 "1000000100001011"
4888 "1000000000001100"
4889 "1000001001101111"
4890 "1000010001000110"
4891 "1000000001101001"
4892 "1000001111100100"
4893 "1000001011000101"
4894 "1000001001010000"
4895 "1000011111011001"
4896 "1010111001010110"
4897 "1001100010001101"
4898 "1000000000100010"
4899 "1111111111111111"
4900 },
4901 /*172*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@@@@_", -1, 0, 12, 26, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 2 chars, not last 3 like Zint", 0,
4902 "10101010101010101010101010"
4903 "10000000001001100100101011"
4904 "10000000000010000000111000"
4905 "10000000000100011100111111"
4906 "10000000110100111100011110"
4907 "10000001110100100011100001"
4908 "10000000111110000011001100"
4909 "10000000101110100110101101"
4910 "10000000101010000110010000"
4911 "10000010101001111100101001"
4912 "10000001000001101011010000"
4913 "11111111111111111111111111"
4914 },
4915 /*173*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@@@@_", -1, 0, 16, 16, 0, "AEEEEEEEEEEEEA; BWIPP uses different encodation, see above", 1,
4916 "1010101010101010"
4917 "1110000001000001"
4918 "1110000001000000"
4919 "1000000011000111"
4920 "1000000100011100"
4921 "1100000000000011"
4922 "1000000011100000"
4923 "1000000011101001"
4924 "1000001011000000"
4925 "1000001110101001"
4926 "1000101111000000"
4927 "1000110100011011"
4928 "1011100010001000"
4929 "1000000000000101"
4930 "1001100000111010"
4931 "1111111111111111"
4932 },
4933 /*174*/ { BARCODE_DATAMATRIX, FAST_MODE, 26, -1, -1, -1, "abcdefghi1234FGHIJKLMNabc@@@@@@@@@é", -1, 0, 24, 24, 0, "Mix of modes TEX ASC C40 ASC EDI BAS; BWIPP uses different encodation", 0,
4934 "101010101010101010101010"
4935 "100111011110011101000101"
4936 "101111001100101101101000"
4937 "101110110110001110110011"
4938 "100100110000101100000010"
4939 "111011010011000111011111"
4940 "101010011000101100110110"
4941 "100111101000011111010001"
4942 "100111010000001011100100"
4943 "101110101000001101111011"
4944 "101111100000100111011110"
4945 "111111100000011100111011"
4946 "100111000010101010001010"
4947 "101000000010000111010101"
4948 "110100001000111110001000"
4949 "100000000100100010100001"
4950 "111000101000011111101100"
4951 "111000101111000100000011"
4952 "111001010010011000011000"
4953 "100001100010101101010101"
4954 "101011000110000010000110"
4955 "110111111101101101101101"
4956 "111101010110111111111010"
4957 "111111111111111111111111"
4958 },
4959 /*175*/ { BARCODE_DATAMATRIX, -1, 26, -1, -1, -1, "abcdefghi1234FGHIJKLMNabc@@@@@@@@@é", -1, 0, 24, 24, 0, "TTTTTTTTTAAAACCCCCCCCCAAAAAEEEEEEEAA; BWIPP uses different encodation", 0,
4960 "101010101010101010101010"
4961 "100111011110011100000101"
4962 "101111001100101100111100"
4963 "101110110110001001111011"
4964 "100100110000101000010110"
4965 "111011010011000000000111"
4966 "101010011000100011100110"
4967 "100111101000000010101001"
4968 "100111010000000001110100"
4969 "101110101000001010001111"
4970 "101111100000000100010110"
4971 "111111100000101111100001"
4972 "100111000010010000000000"
4973 "101001100010111000100101"
4974 "110101101110101010101000"
4975 "100010000111101110100001"
4976 "111000111000111001101000"
4977 "101001101100011000001011"
4978 "100011000001001010000000"
4979 "100111010111001001111001"
4980 "101100001001101010011110"
4981 "111101111010101100000101"
4982 "111011010111011111010010"
4983 "111111111111111111111111"
4984 },
4985 /*176*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'\001\002\003\004\005\006...............\015\015\015\015\015\015\015\015abcdefghijklmnopqrstuvwxyz\015\015\015\015\015\015\015\015...............\001\002\003\004\005\006ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^...............", -1, 0, 132, 132, 0, "Mixed modes (except B256); BWIPP different encodation", 0,
4986 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
4987 "101001101001010011000111100011111001011001011010011010010111111101110111100110110110000111110000111000011100111110111010111110010101"
4988 "101100101010110110010011000010100000111010101111010100001111001010100011010100110101000010101011010001111011001010111111011000100110"
4989 "100110010000100111011110100001010100101110111101000100110001000011101111111010010111110110001000111010011010111111011011000000110111"
4990 "101010011110000110101010001010010010000101101101000011010001111110111011001010001100111011101001110100000111101100001000011111100100"
4991 "100001101000001110110111000000101011010001011111111010111100100001111100100100110101001110111110100101000000011111100111011010010111"
4992 "110000101111011110011010000001101111000100001110000111001100111010101010100011100111001011010111010100000100001100110101011111001100"
4993 "111101011101000110000110111101011100101010111111000001010100011101100000011010110101000111010110110101101110111000001001011011101001"
4994 "111100100111111111101010110000000110111100101100001001100110011110110100000111100001110010000010011001110010001110110000111110010010"
4995 "110110011010110000100110010000000010111110111101101100111000110011100111000010011110011111111000101101010110111110010011111100000001"
4996 "101111110100111101111010011100110111001000001001111000111011010010101110001111001110100011001010111010011001101001101101110000100110"
4997 "101011101110100100000110101100100010010010111101100110111001010001110101101011110000101110000000101111000101111101101011110110101101"
4998 "101011000011010111011011110110000100101101101011110111101000011000111001111110101011000011111100101110001011101100011101100100101010"
4999 "110110000001101101000111110100001000100010111110111110111011100111101101111100001001101111001010101001000010111100001100110111111011"
5000 "100010110001001100001011011111001110100010101111110111010011100100111001110111101000011010000100111101110000101000100001101111000110"
5001 "101110110111001001001110011110111011101010111111111101011011100011101101110010111001010111110000101110101011011110011010110000011111"
5002 "111101111011011010001011011100111101010001101101001100011111110010101001110011010010000011001111111010101110001111010010010001110110"
5003 "111111101001100101100111111011000101000001111101100111111001001011100011010001010000000110011111110101101011011100101010111100011001"
5004 "101101101101010111011011010000110000111001101110101011011010110010101100011100011110011010100111010001110110101011010011001100111100"
5005 "101101111111010111111110000001011001110011111100011111111111000011100111100111101010111110000111011001101011111001100001000010111111"
5006 "101100010101001011001011011110100010101100101010001100000100111010100011101000100010110010100110111001001010001111111001100110100000"
5007 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5008 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5009 "111111000101011100010110011100111000100010111110110110010001111111111100001101011110111110001100101110101011011001111100110001001101"
5010 "111101101010101010000011111011010010100111101111111011000010110100101010110100111101111010110010011011001111001000111001100010000110"
5011 "110101100101000001100111011000111011111001011001110000111000010101100010010110000110101110001011111000001011111000100111001011001111"
5012 "100100011111110111111011101001111101000011101010100110110011000110111010001101000111101010001100000110000011001011110011110111101100"
5013 "111011100100101000110110111110100100000001111010110010111001110011101111001011110110111111011101000111101001111010101101000001001001"
5014 "100110001100010000111011010111110001111001101111110111111110010010110100101100100011010010001000000110111000101111100001001011010010"
5015 "111001010100010110110111010110011101100001111001100110101011010001110010110101111001000110000001101010100110111111011101110110111101"
5016 "111011000101010111110010000011100101100100001010000111011110011100100011100111001100010010000111010111000001101101101100000000000010"
5017 "100111111011011110011111111010100101000000011000010110011111100111110111110010000110110110010001110110010101111000001011111101000011"
5018 "101110111001110110100011000111100010010111101111000011001011101000100011100001111001010011000111100100001001101011101101011000010110"
5019 "101111000011111100101110000111001100110110111111111010111100001001100010011011101111010111010110111001000011011010000011111000101001"
5020 "110010101011001011000011110010111011010101101101000100101010110100101111000101111101100010101101101000101100001000110011001101111110"
5021 "110000000101101001101111101110101000010111111010001011000010001101101010010101101001000110111111100011100110111101111001111110010011"
5022 "111111110110101000010011001001101000001101001001001011111010010110111110101100101100111010111001100010100101101010100011101100111000"
5023 "101000111100111001011110110000111100111001111011100100101111110111111100001011100110010110101111001011101011111100001001001010100101"
5024 "101000001011010010001010100011010011001100001110100100110101010110110111010011011000010011001110111101001001001111010101100110001100"
5025 "100110101101010000100111011001011010010001011100010100010010010111111010101111110100011110111111110101010100111101001011010011001101"
5026 "100101111100011110100010011100000110000010001100000111000011100110101000101011100101010010110101110001111101001010000101101101011000"
5027 "100110010111101000001111010111000001110000011111111001111001001101110110011100001111110110010011011001101001111101000001010011111101"
5028 "111000111000100100011010111000000111111110101110111010010110110100101010001000011101100010111111100101010001101110010011101000111100"
5029 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5030 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5031 "100000101101010110101111101101101001101001011111000011111110010111100001000011010001110111001010110000110011011101110111001001110011"
5032 "111101111100101110100011111001010000101001101010101100111010001100110001111100011001111011010111101000111100001000000111001010101000"
5033 "111001110110010010100111101101010101010111011000100111001111001001111100100101011001111111100111100100111111111011100010100111100101"
5034 "111100101110011100110010111001010100100101101110100010110100101010111100100111000111110011110011111011101011101111101101001000000100"
5035 "111011001001110000101110101111010110100100111011110000010010110101110100001110111001001111101010011000000000011010000000001001111101"
5036 "110010101001001101001010101001101111110100101101011111000011100110100101111001010001110011001100001011110110101011101010011010100000"
5037 "101010111000011110101110100011001001010100011101001001110111011011111000010110100100101110111011111100100111111010010011000010111111"
5038 "101011111100100010110010101010101010100111001001001110000010010010110000101101001101001010100111100100111000001001000000101001000110"
5039 "110111010110001001000110000010111111111001111101001010000010011011110101101011111110100110010001000011110000111101101001110001001101"
5040 "100010101100101000111011110011000100111110001001011111001111011110101001100011110110100011100101000110010101101101111000010111010000"
5041 "100011101110000001110110110111010111001010111110011011000101111001110010001001001100010111101010110100110101111001010111110000101001"
5042 "100001011101000010100010000011000010011110101111001101101011010100111111010101110100001011000011100001001010101111000010000101101100"
5043 "100101101001111000011110000000110000011110111110111101111111110101111011111100100110011111000111011001111001111001001110100011001101"
5044 "110001111011110000010011000110111111001111001100110100010100010010111101101101101110011010001011100011111000101000000100111011011010"
5045 "101101100100111000001111000011001010111110111010100101010110010111111011111110010010010111001110110011100110111111110100110100100001"
5046 "101000100111111001110011110111000100110100101010111100011010101100110010110110011110001011100101111101011011101001100111101010001110"
5047 "111110011110101011110111100101001011111110011110010011110001011111111011001101111001101111000000111000000011011101101111011110010111"
5048 "110010010111001011011010000001001011001010001101011010100111110000100011111001001111110011101111001000001010001001101101001010110010"
5049 "100010010110111010010110001110100101100001111111001010111001011011101110101000101000000110011000000101111001011100101010100010001011"
5050 "111111000011110011111011001110100110010000101111011111100011100100110110111100000110001011011001111011110010101101100101110001011000"
5051 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5052 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5053 "110101111000011001111111101100011100011111011010011001010111000001100000010101000111001111111100111111101111011011011011001111100011"
5054 "101011000100010101110011110100001010111010101000000010110010010000100110101101110110000010011100000101110011001010110000010011000010"
5055 "111010001111111111111111100110101101010000011000000001101011111001111011100101110111000111000100001111111110111000010110101101001111"
5056 "110001110010111101010011101111111001111111101101111011111101100000110001001010001101100011100101111101000011001100100100010000010000"
5057 "111011010111001001111111010110010111001011111101100011100111111111100100111100101100101110111011011010010101111111111110110111010001"
5058 "100110011010001101001010011000100101000111001101101100000011011110110001110000101001001011100001100011001101101100101111011001111000"
5059 "110111010000010101100111100000100101001110011101100000001010011001101111111001011000011111101110111111011010111000011100100011000001"
5060 "101110011110000110100011011111110001010100001010100111000000000110101101100001111100001011010101001110010001001100101000001010100010"
5061 "101001001001111100100111011001001110111100111111110110000000010011101000110001110100111111011101110010111110011001101000100101111001"
5062 "111101000111101011110011011010101111011011101101010100010000110110101001110101011100010011111001111100110101001001010001000001100110"
5063 "101101001000101101000111011111101111011010011100010100000000100101101000110001101100011110101111011101111110111110111100001010010011"
5064 "111001010001111010100010000101111000000111001000000001100010000110111110101000101110100010101110110010101000101000001101011110001010"
5065 "101110010110011111001111010111100111000001111100110000000100000011111001101000000010001111011011100111001010011100110111000000110001"
5066 "101101010000000100111011000101110100001110001011001000001111010000110111111010101100101011101011111000000110101001010101000010011110"
5067 "101111000000010110100110111111001101101011111010000110001111010111111010100111010001011110101010100010000000011111001111111101001111"
5068 "111001111111000001011010110010110001011110001100101101011100010000110100000110001001011010110010101001101111101011000100001000011110"
5069 "100011011000110000001111011010001101011100011000001110111111100101111100110111010101001111000010001111010000111001011101111011010111"
5070 "101011010110100011011011101001111011001000001011011101010110100100100111010101000011110010011001001110010101001100001100010110010110"
5071 "100001010011011010011111001100101110110110011001101111101110101001110100101101001001100110110001000100110110011110001100111101011001"
5072 "110000110110011000001010111100100100100111101111111101110000000110100100001000101100100010111100011101011001001100001001110100010010"
5073 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5074 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5075 "110011100011010000101111101010101010110111011111101101100011110111110111111101010001001111100100011010100010111111010101111111000001"
5076 "101110000110111101110010001100001011101000001101100000011111110010111110000000100001010010111111101101100011001010100100010011110110"
5077 "101000001011111110011110100000100010111111111111011000010100000011110000001001110000010110101110100110110001011011101001111010000111"
5078 "111111001001110000101011111110100010110101001011010110011010011010101101001011110101010010010010001100011000001011000000001000011000"
5079 "101110101011100000101110011100001010101101111000110011101010100011110010110100000000011110000010100111100111111101111010011101111001"
5080 "111101001101011101110010000100010010011110101011001100100110001010101001110010001000000010100110111111111010001011000101010100001100"
5081 "111100001001011001111111110110000010111100111000010000011010100111101100100111011110111110000010101100100101111100101100100001111111"
5082 "110011001101011001010010101111101011001010001110001010001110100110111101010100100011111011011101100110010001001011011010000000101000"
5083 "100111010001011110111110010001111110101111011011100110101111101011110110000100111101001110111110011010111111011001000010011111111001"
5084 "101010000000011011111010011001110101111111001101000100000101010000110000010010000000110010011000110111000111001011111001000101110100"
5085 "100001110011111011100111111010101110011011111110110101010101110111100011100001000101110110001000100000000110011011001100110101000111"
5086 "100111101110011111100011010110011000000010101011001101110010011010100101010100101010101010000010111001000000101110010011010001111100"
5087 "101001101011101100100110011110100000101011111100000110100001101001110110110000111100000111110000011010110001011111010110011110000111"
5088 "110000010011100011110011111011011110111000001111101101111111001110110110100011010010000010100010000010011000001001001000001001100000"
5089 "110100001110000001010111101111011010110001011111000011110000111001101000111110100001110110110000111001011010111101010001000110010001"
5090 "110000001101011010101011110101010111010111101100000011010011110010111011001001011010111011110010010010101000001010001000010100000100"
5091 "110110000000101110111111101001010110001011011110000100000101000111111101100000110110100111010100101101101001011011011110101110000001"
5092 "100110001101000100111010011000100100101010001101101100010101100010110011001001001110010010100110111101100110101000110001101100010100"
5093 "110111001001010100101110110011111011000010111001101010111111100011101111100011011011000110001001100011000110011000111011001111100011"
5094 "100111111111000101101011001101101111001000101001100110111100011110101100000101010110000011111110010000101000101011111011011100010110"
5095 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5096 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5097 "110110110100100110111111101011111100100100111100011011000110010011100001101011001011001110011001100111011011011100011001101001111011"
5098 "111111110110110111010010011101010010011111101101101111111001100110111001101100111000100010001111101100100010101111001001101111110100"
5099 "100001010011111110110110001010110111100100011110110001001011100011100000100001011001011110011101111011001010011001011110011010110111"
5100 "100100110111011001100010100110010100110001001010000101110011010100100111100111000000010010100110101111001111101111000101000010011100"
5101 "101010100100010111011110101101110101011011011101101110111100011101110100111111110000001111101110001111010011011011100011111111010001"
5102 "111110000110111110011010110111110000010000001101010001011101111010111100100101000000101010011010111011010000101100100000000011101000"
5103 "111100010110101011011111100000100111110010011111111011011101001111111001011011010001100110000001101101111100111001011100111000100011"
5104 "101111010000110110110011010001110110100000101100001101010101111100101000100010101110011011101111111101100010001101100101100100111100"
5105 "111111101100001011101111001011101111011100011110010010000000011101101011011000010011111110011011001010001111111101100101010101101001"
5106 "111100010000001010011010010010110000110000001001101011010010011000100110111010111100010010000000011010110111101111001111001001001000"
5107 "111101100000101010110110110101100111011010111010111011100111101101100010010111110110000111010100110010001110011001010110110001001111"
5108 "110011000011001011000010101010011110110111101110111011010010001000111001011110011111100010101110101000000111101110001011111111000000"
5109 "111010000000001110100111101000100010101011111101111100010111111111101100011111001110000111000010011000011111111010011111111101101011"
5110 "111000000010110101110011011110010110101111101001100000100100001000110000100000110101011010000001101100001011001011010110110000000100"
5111 "100000000111101101000110010100100101001100111010110011110101111001110011110100110111010111101110001001000111111111111100000111110011"
5112 "111100100010011101110011001111010111010111001110000111000111110010111100000010100111010010011111010101110011101001001000011000100110"
5113 "111111101010111110011110010111100101010001011011011100011100001001110010011011100000000110110001000110101010111011000001000001100011"
5114 "101101011011010101000010001000010010011111001010101011100011100010100111011101100101110010011100001110011111101110011100011010110000"
5115 "101111111111101110100111110101011100010000011000010101010001111111110011101101001001001110111101011001111010011010100011101010111001"
5116 "110101010100010111111010100000000000110011101101010011010100111010111011101111011111110010101110001010101110001010111111010011111110"
5117 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5118 },
5119 /*177*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'\001\002\003\004\005\006...............\015\015\015\015\015\015\015\015abcdefghijklmnopqrstuvwxyz\015\015\015\015\015\015\015\015...............\001\002\003\004\005\006ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^...............", -1, 0, 120, 120, 0, "Mixed modes (except B256); BWIPP uses different encodation", 13,
5120 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5121 "101001101001010011011001100011111001011110010010011011010111111101001110101111111010000001101101101110110111111011101011"
5122 "101100101010110110001101000010100000111010101111010101000000110001110101001100101001111100111000101011100101101011001100"
5123 "100110010000100111011110100001010100101111101101000101100101111110010011101101111011110110111011011111100100110111001001"
5124 "101010011110000110101010001010010010000011011101000011110000101111000000101100001110011000111110001011110000100011011000"
5125 "100001101000001110111101000000101011010110010111110010001111101101100000001001011101110101000000000111011110101001101111"
5126 "110000101111011110001110000001101111000011000110001001101000101010101100101010101111010111101100101010110011111101011010"
5127 "111101011101000110011000111101011100101110101110101100110101110111101111010000111111011101101100111110100000011111111111"
5128 "111100100111111111101010110000000110111011001100111101110110100011011000111110101100111001110100010010011110110100000100"
5129 "110110011010110000111000010000000010111111101101111001011111101111111001101001111100010001110101011110110111000101010111"
5130 "101111110100111101101110011100110111001010000000100000111110111011010000101000101000100111011100000011110111101000010000"
5131 "101011101110100100011000101100100010010110100000000110010001111011101101011011111011011010010010010111101101100001011001"
5132 "101011000011010111001111110110000100101011010011110111111010100010100100111110101110001011011010100010111100000110111110"
5133 "110110000001101101011001110100001000100110110011010110011101110111010110000110111110111001001100000111111011010100100101"
5134 "100010110001001100001011011111001110100011011001101110011100111001101111101000101111110011011111010011100101000010101010"
5135 "101110110111001001011010011111011111111111010111111000110111111001001001110101011001111010011010000111011001001011111101"
5136 "111101111011011010001011011101101101010011111101101011001110111110101101110111101011111000001001000010111000101100010010"
5137 "111111101001100101111001111001110100100111111100111001100101100010111011011101111011100001010110011110100001011101000011"
5138 "101101101101010111001101010000110000111010110000101001111110110011001110111001101011111101001011011010001110001100000110"
5139 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5140 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5141 "101101111111010111111111100001011110010111111110111101101001110111011100010001111000110101101111100110100000000010011011"
5142 "101100010101001011101101111110100100100010110011010011110100100001011000100111001110011011010111111010000100011010011110"
5143 "111111000101011100111001011000101110101110100001011110011001100000011011011001011101110010111011100111001100001001101101"
5144 "111101101010101001101101111011011111111010011100011000010100100100001110001011101111001011001011100011010111011001100000"
5145 "110101100101000001111011111000101100011110110111001101101101101001101110111101111110101111011000001111110110000110111111"
5146 "100100011111111100101101101001111110100011101000001110110110101100001111101110101100111011010100011011011000000111010000"
5147 "111011100100101011111011111110100110010111000111101011110111111101010001101001111101110010010111001110010000011010110101"
5148 "100110001100010011101011010111110110101010010100011011010100111101111011001000101000001010111100001011111100011001110110"
5149 "111001010100101010011001010110101100000110001000011010011111110111011110101010011000110111010101100111111001101011111011"
5150 "111011000100101011101100000000111111100011100111000011110010101110011000111111001010001011100111010011110001101101011000"
5151 "100111111010011010011111111001111010011111101111111001110101100100010110000011011010011010001101111111100110111100110001"
5152 "101110111010011110101001000101101010001010011111010010110000101001110011101101001100010001111011010011000111010111110010"
5153 "101111000001011000111010000001010110100111011001111000111011110111011101111101111011101000011111111110011010110010100101"
5154 "110010010000001011001001010001001111101010011101110010101110100011101101110110101000000000101011011010011001110111010010"
5155 "110000011111101001111011100101100001000110011011101101101111101010111010100111011101100101011111001111101011111011110011"
5156 "111110111100101000001110110011111011111011001011100010001110111101001110111001101100101001011000011011101101010010011110"
5157 "101001001000111001011111110010011110101110111000100101010001110100011110011001011111010110110110101111111100111111000001"
5158 "101001100111010010001101101011011010010010110101000101111010110001011100111111101001011100110101111011010111000000010010"
5159 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5160 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5161 "100111101101010000111110101110110101101110010110110111011001100000011110000010111101011101001110101110110010001001011111"
5162 "100100011100011111001010110011110000101010111010001111011110100100011111110101001100111110110111100011110100101110011100"
5163 "100001010111101011011101110111011010011111011101000110110001111000111010010100011101001010010110101111111010101000110101"
5164 "110010111000101011001000010110111010001011100110000011100110101100111101010010101010101001100010110011011101101001100100"
5165 "110000101101010010011000000100100001101110100110110111110111111110000110000001011010101101111011110110110100101011111101"
5166 "111101111100001011001001000010010001001011111011010111100100111101000101100111101101111101001101011011101010011000100010"
5167 "101001110110110011011010001011011110100110011011000011101111100101011100011000011110101010001011001110111010011100100011"
5168 "101100101110001101101011001110111000111011000001000111110010101111101001100011101100001001100111011011100111011010001110"
5169 "111011001010011101111111011101010110100111010110010001110111110110111101010110111110111011011111100111101000111000010111"
5170 "110010100100010101001110001001110011010011011011011110110010110110111010110101101011100100111101000010011011110011010110"
5171 "101010111010100111111000000111011101110111111110101100111011100110111001111010111010010100001011001110010010110000111111"
5172 "101011101000111100101100100101100001001011010111000010110010110001111011111001101100100001011111101011110000100001000010"
5173 "110111110110011100111100100010110111000111111011101101101011111100010010000001111100000001001001010110100111111100111101"
5174 "100010011100101101001111110101111010001011001000100010001110110111101101011001001111000111110111110011110111011000101000"
5175 "100010011110001111011101010100101110111111000000100101101101101011100001011111111010000011011000111110010001111000000111"
5176 "101111111100101101101010110001101011101011001101000100100000110010100100011010101000100011100010100010111110111000110010"
5177 "100000111011001001111110000001111011001111101110110111011011111011101111111101011100010010101101000111100101011110011101"
5178 "111100111000101100001101101100000000101011011010011011010000101101011110011100001010110101010110101011101001101100100010"
5179 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5180 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5181 "100110001001100101011100011111010111011111111100101100100001100100101111110110011000011011010001111111010110110010010001"
5182 "110101010001001100001001111101011000101011100111011011001110110001110011101100101101011110110110011011011100000100000100"
5183 "100101101111100011111101100101111001101111100101001001101101111110101111001000011111111011100110101110000010001010110101"
5184 "101110100111011011101001110011010000001011111100100111011110100111001100101111101101100100101100010010111011010101100110"
5185 "110111001110001011111001110001101101010110000000110111111011110110000010111001011001111000000000100111100010111100010011"
5186 "111001101111011111101100100010100101111011011011110011011110100010001011011101101000101111111111010011100100001010000100"
5187 "101001100010010001111011101111010111100111000110111011011111111011010111011101111001000110011001111111011110111011110011"
5188 "111111011000011101001010111001101111010010010000100011001100100111100011001100101010100101110110000011100100001001000100"
5189 "100001010000101110111110111001100101111111011011010110101001100110000010111011111111100000010111100111110001011110100111"
5190 "110011111101000010101000111111110001011010101111010100100100111111000100100101101010000000100101101010100111111010110010"
5191 "111101110011101001011101000101100110111110101101111011101111100011001011011001011100100001111101011111010011100000110011"
5192 "101110011000101001001111110011111011110011110011001010010100100101001010111000001000010111000010111010110011000000111110"
5193 "101001100000000101111110011110101100010111111001100001011001111101100110100011011000101011000110010111100011101110001101"
5194 "101111001101000011101101011001101111100011011110100010010010110110100110100000101110101101010001011011000101000110100010"
5195 "101111101101111001011111001101101011111111011000010000111011100100011000110100111010111111111000110110000010111001001001"
5196 "101101011011111100001100001100010001101010110100011100111010110100011111101001001111100011001000101010111001000111011010"
5197 "111111110101011001111111101110111011111111100111101010011001110110111000110100011100010111010111101111111110110110000111"
5198 "101011100110111110101100111100001001111010101110100101010110101110110111111000101101101011000110100010000010011010010100"
5199 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5200 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5201 "111011011111101010111000100000001111001111010101011110011101110110000110110110111101001111011001100111110101100111101011"
5202 "100010010110011010001101110011001110001010011100011010011000111101111011000011101000111001111111011011000010001101110010"
5203 "110110010011011110111101111011111111100111110110111001100111100101010110111100011100000011001101010111001100001000001001"
5204 "111111000011000001101100110100110100100011001100101001100100101111111101101000001101001000101110001010011111111101110100"
5205 "110101111011100101111011111100001000100111001010100110100111110101110000111010011011011010110110011110000001011000000011"
5206 "101011001111001001001010111000100111110010100000100111110010111110010001110101101111011110011100100011011001001111000110"
5207 "111010001001000010111110111101101101001110111010011001011011101010011100000001111010000101111010011110101100100011001101"
5208 "110001011101110010101000011110011010101011010100011010110000101000001011100000001010000111101101001010101110010111001100"
5209 "111011011110101001011101011001011111011111000001101111101011100010101011100001111001011010011100011111000011110010010111"
5210 "100111001010101001001101111010000100000011000001000100001100100101111011101110101001101110110001011010101111000001100010"
5211 "110110110101000101111110010000010000001111100110010101100111101001001101101001111000100011011101101110111000110011010011"
5212 "100100110001000011001100011111000100011010000111000100011010110011111100011100101000100101111010110010100111001010111000"
5213 "101011011001111001111001101000101100111110011000110111011011110101001001000010111110000111100101010111101111111010010111"
5214 "101010111011111101001010100110110100110010010110111000110000110110010000100010101001000101001101101010011110000000101000"
5215 "100100100101011011111101010011110110100111100010101100100101110110110010011100111100100000011110000110111000000011101001"
5216 "100010100110110011101100110111010000000011110111010011101110111001100000010111001110101011000100000010101111001001100010"
5217 "101011011111101001011110100010010001011110100101000011001001101001010100111110111000000110011010100111110000000100000001"
5218 "101110010110010100101110000011000100111010000100010100001110111111011010111101001001001111100010001011010011101100010000"
5219 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5220 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5221 "111110010011111100111000011001000111110110000000000001110101111001001011110101011111111110100100010111010000100001010011"
5222 "101111000001101010101111010100011101111011011011111001111110111011101101010010101100000011100100110011011000010110101010"
5223 "100101111011101011111111011100010011110111000111011100101011110100011100110110011110011100011101100110110100011100100111"
5224 "101011000010101101101100110010011110011010010010100101111110111001101101000111101100110011100101001011000010110011110010"
5225 "111010001011011111111111110001001001111111011000100010100001101111100111101011011000101110110100100110101010001110101101"
5226 "110001000010000101001010001011011111011010001011000010100100110110111000000100101011010010110000100010000000010111110000"
5227 "111011101000001111011111000111101110111110100000110110111011111001110010101111111010001011001100111111001100011011110001"
5228 "100101010100000111001100110101101101110011000111111101001110100100000011011100001100011000100111111010001001111100111010"
5229 "110100001100100110111100010011011100010111011010110000011111111000010011100111111101011001010000010111001011110101010111"
5230 "100100010100111100101111111110001111110010101010100000101100110000101001000001101000100101101011110010001000010111101100"
5231 "101111110110111101111101001010101011111110100011101000010001111011111101010101011100100101111010111110001100001010001001"
5232 "111001011110111110001001011111110000011011101010011000010100111010101000001010101110001001101101000010100011011010011010"
5233 "111010011101001011111111100000111000010111011100111100101001101100111100001110011010100100111101101111011110101000010001"
5234 "110011110000101101001101111010001110110010000001111001111100110101011111011100101101011011000011010010001011010000000010"
5235 "111001101010101011011011011000000000110111011110100100111011110111110111101000011110100011010010100111110011000110100001"
5236 "110000010101100111101111011011001101110010001010011010000000111001011110011110001111010000010000101010010111110110100000"
5237 "111011111110101110111010100011001101100111110010011001001011111110111101011101011010010111111011000110110100001011011011"
5238 "100101110101110001001111111010101000000010110011011101000010101010011100100101101101011100100110001010000010100000111110"
5239 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5240 },
5241 /*178*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 144, 144, 1, "144 x 144 default (de facto) format", 0,
5242 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5243 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111"
5244 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110"
5245 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111"
5246 "100111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111010"
5247 "100111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111"
5248 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110"
5249 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011111"
5250 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001100"
5251 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110111"
5252 "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110"
5253 "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111"
5254 "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110"
5255 "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111"
5256 "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010"
5257 "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111011"
5258 "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111010"
5259 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101001"
5260 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100"
5261 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101"
5262 "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000"
5263 "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111"
5264 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110"
5265 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5266 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5267 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011101"
5268 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001110"
5269 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110111"
5270 "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110"
5271 "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111"
5272 "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110"
5273 "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111"
5274 "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010"
5275 "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111011"
5276 "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111010"
5277 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101110001"
5278 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000100000"
5279 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001011011111111110001011011111111100001"
5280 "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111110001011011110111110001011011110011000"
5281 "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111111110001011011111111110001011100001101"
5282 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110110111111110001010110111111110001111111110"
5283 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100010110111111110001110110111111100011100101"
5284 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111100010110111111110100010110111111111100110"
5285 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111111100010110111111111100010110011001000111"
5286 "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101101111111100010110110111111100011101101101110"
5287 "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100101101111111100010111101111111001011000101011"
5288 "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110111000101101111111100010101101111111111000110110"
5289 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5290 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5291 "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111111111000101101111111101100101100110010111100111"
5292 "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101100111111111000101101111110111000111011011010001100"
5293 "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000101111011111111000101101111111110010110010001011011"
5294 "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111000101011011111111000101100111111111110001001010010"
5295 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111110001011011111111000101111001100101110101110001"
5296 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110111110001011011111111000101110000110000011010100"
5297 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011011111111110001011011111111101101001111000111110001"
5298 "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001010110111111110001011011110110011101100110100101000"
5299 "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110001110110111111110001011011111100010010111011001001"
5300 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110100010110111111110001100111010010111011000110010"
5301 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111111100010110111111110101100101011111111010101101"
5302 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110111111100010110111100010101010010010001001111110"
5303 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111101111111100010111100101111101101110110011010111"
5304 "111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010101101111111100011011100101101001000001101101010"
5305 "111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111101100101101111111001110111110111011110101101101011"
5306 "111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111110111000101101111110111100100111001010010111101110"
5307 "111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101111111111000101100011010101111000001100101101011101"
5308 "111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100111111111000101111010100111110000011111010101010"
5309 "111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101111011111110001001110111111001001011011010010011"
5310 "101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000101011011111101111000110110010010101111001010010"
5311 "101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111110001011000110100011001100000011010110101000001"
5312 "101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110111110001011110101101110100011111111110011011000"
5313 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5314 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5315 "100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011011111111100010011001111001100111110000100000110001"
5316 "110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001010110111111011110010110010110001011011000001000100"
5317 "110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110001110110001101011110000001111010110101000001101001"
5318 "100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110100010111101010011100110110011101001000110001100"
5319 "111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111111010100011110010011111100001111011001100110101"
5320 "111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110111101101101010000101110100010010001001001100110"
5321 "110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111101000011000010101111111111110101110000110011111"
5322 "111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010100011111100110101100110111001011100000011010010"
5323 "111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111001100101100111110110010111100111001110111000010011"
5324 "111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111110110101010001011011100010110000100101010010100010"
5325 "111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101100101100100010110011111110111111011101000100111100101"
5326 "111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000110000111011001011111000010000110111001001101100111100"
5327 "111100011110111101110001111110111101110001111011111101110001011011111111110001011011111110100001110001110001100100000111110011101111100100100011"
5328 "101111011110111000111100111110111000111101111010111000111110001011011110111110001011011111001110111100001110111101110000101001100001001010100010"
5329 "101111011100011110111101111100011110111101110001111110111111110001011011111111110001011110110111100101110111111011111011111000010010011001111001"
5330 "101110001111011110111000101111011110111000111100111110110111111110001010110111111110001100010000110011110110000000010110110010100110110000110100"
5331 "100111101111011100011111101111011100011110111101111100010110111111110001110110111111101110010001111101000001000001110011111011011111110000000101"
5332 "110111101110001111011110101110001111011110111000101111100010110111111110100010110111110011111100100011000111011100011000111011111101111000011000"
5333 "110111000111101111011101100111101111011100011111101111111100010110111111111100010111101101111101111100010010100110101001100110100101101100100011"
5334 "100011110111101110001110110111101110001111011110101101111111100010110110111111100011000100010110111101000000011000110010101011001010000001100010"
5335 "111011110111000111101111110111000111101111011101100101101111111100010111101111111011100101101001110100100001100101111011110110000110100001010101"
5336 "111011100011110111101110100011110111101110001110111000101101111111100010101101111100111111010010110000110110110000011010111111001110100101001110"
5337 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5338 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5339 "110001111011110111000111111011110111000111101111111111000101101111111101100101111011011000001101111010101000001010000111101011110111001010100111"
5340 "111101111011100011110110111011100011110111101100111111111000101101111110111000110000000000111100100000000101100100101010110100100100010000010110"
5341 "111101110001111011110111110001111011110111000101111011111111000101101111111110011011000100010101110001000111000010110111100110011000011001111011"
5342 "111000111101111011100010111101111011100011111000101011011111111000101100111110000001011000110010111000000000001010111110111011111001110111001110"
5343 "111110111101110001111011111101110001111011111111110001011011111111000101111101110100000111010101110111101001010001101011110001110010011010101001"
5344 "111110111000111101111010111000111101111011011110111110001011011111111000101000001010111001010110111111001011111001110100101001000100010110000100"
5345 "111100011110111101110001111110111101110001011011111111110001011011111111101010000101110011011001111011111110001100100111100110000110010100101011"
5346 "101111011110111000111100111110111000111110001010110111111110001011011110111100101001001100110000110011001000011100011010111110001101111111110010"
5347 "101111011100011110111101111100011110111111110001110110111111110001011011100000000100110101010011111000010110111010110001111100010110100010001001"
5348 "101110001111011110111000101111011110110111111110100010110111111110001000100010101110111101100010110010111000010101001000110000000101110001001100"
5349 "100111101111011100011111101111011100010110111111111100010110111111110011100001011111110110011011111111101011110001100111101010100100011011110101"
5350 "110111101110001111011110101110001111100010110110111111100010110111111100100000011100101101000010110010000010111110111110111111011010011101101000"
5351 "110111000111101111011101100111101111111100010111101111111100010110111101100001000101010100111001100100000110100100100111100001100100010000100011"
5352 "100011110111101110001110110111101101111111100010101101111111100010110000100011010111011001110010101110100100000110101010110001001011011001101000"
5353 "111011110111000111101111110111000101101111111101100101101111111100010001110111011001100110111111111010010000100101101001111111100101111010111101"
5354 "111011100011110111101110100011111000101101111110111000101101111111000000100111101110010000110110100000101100110001011100111011011010100101101110"
5355 "110001111011110111000111111011111111000101101111111111000101101111000101110001000010001010001111100001011000110011101101110001010001101010101111"
5356 "111101111011100011110110111011011111111000101100111111111000101100000000100101100010011110110000101001001001000000011000111010101011101010010010"
5357 "111101110001111011110111110001011011111111000101111011111111000100000111110110100101111010101011100100000111001011001101111001001111001111011011"
5358 "111000111101111011100010111110001011011111111000101011011111110000001010111010110100000111101000101011001011101111100100110110101001011010010010"
5359 "111110111101110001111011111111110001011011111111110001011011110000110001110110000010010101000001110110110000111011011001110101011010101011101101"
5360 "111110111000111101111010110111111110001011011110111110001011000000100100111101000111001000101000110010001111000110000010101010011010100011011000"
5361 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5362 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5363 "111100011110111101110001110110111111110001011011111111110001010001000111111101111100110000100101100000010010110011111001110111110011101011100011"
5364 "101111011110111000111110100010110111111110001010110111111101001001101010111010111111000110011010110010110111111001110110101000010110100100100010"
5365 "101111011100011110111111111100010110111111110001110110111101101110110101111100000111110001000111101001001110110101010101110110101010111101010001"
5366 "101110001111011110110110111111100010110111111110100010110101101110101000110100101001100011010010100011110001100011011010100110111000110100100000"
5367 "100111101111011100010111101111111100010110111111111100010010101110111111111011100010011100010001100100110100111010100111101100101010110001110101"
5368 "110111101110001111100010101101111111100010110110111111101110010101011000101000100011000110000010101101111010011010101000101001011001000010111000"
5369 "110111000111101111111101100101101111111100010111101111010011110111011101111001111101011010001001110010010101010110010011100000101111010001010011"
5370 "100011110111101101111110111000101101111111100010101101010011011000010100110010011001011100000010111100001000100010100100110010001101001101001000"
5371 "111011110111000101101111111111000101101111111101100110001011001111111101111000100101110100000101101100101111100001100111101110101100001111010101"
5372 "111011100011111000101100111111111000101101111110111001100100110110001000101000110010111010101100111110100111011110011010111100010000101100000110"
5373 "110001111011111111000101111011111111000101101111111110111110010111000001111111010000101000010011110000010110011101100111100001110101011101111111"
5374 "111101111011011111111000101011011111111000101100111100110000000101010010100110000001000010100000100100001100001100100100101101010011000000110110"
5375 "111101110001011011111111110001011011111111000111100010111101111111011001101001000101001000111011111111000101110101010001100111000011110101011111"
5376 "111000111110001011011110111110001011011111111000111001000101010010001010101100100110100001111000100111010100011100101100111110001011000001001010"
5377 "111110111111110001011011111111110001011011111111100111100101110001111111100100001010100001100001100111110001101110011011101110110111011011011001"
5378 "111110110111111110001010110111111110001011011100111000000010010101110010110000010001000000110110111011001101000101001010110110110000001011111010"
5379 "111100010110111111110001110110111111110001100001100011001111110000001101110001010001001100101101110001011101000100010001110010111101000101101011"
5380 "101111100010110111111110100010110111111110011100100001011000100111101010101001101000000100000000111101011011001011001100101000110000001010111010"
5381 "101111111100010110111111111100010110111111101101101001010000000111000101100010101001101000000111111100001011100111011111111101110111011110001001"
5382 "101101111111100010110110111111100010110111011100100001000101001010110000100100010101011101000100110010001001010010111110110100000011111110110100"
5383 "100101110111111010010111110111111010010101011111110011101101010001001001110101000000001011101101110110001001000100010001101111001101001010101101"
5384 "110100111101111011100010111101111011100101110100110011101011110111101110101011110100001110100110110111001110110111011100101110100111011110111000"
5385 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5386 },
5387 /*179*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, DM_ISO_144, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 144, 144, 0, "144 x 144 ISO format; BWIPP not implemented yet TODO: implement", 0,
5388 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5389 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111"
5390 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110"
5391 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111"
5392 "100111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111010"
5393 "100111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111"
5394 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110"
5395 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011111"
5396 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001100"
5397 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110111"
5398 "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110"
5399 "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111"
5400 "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110"
5401 "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111"
5402 "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010"
5403 "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111011"
5404 "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111010"
5405 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101001"
5406 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100"
5407 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101"
5408 "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000"
5409 "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111"
5410 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110"
5411 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5412 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5413 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011101"
5414 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001110"
5415 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110111"
5416 "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110"
5417 "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111"
5418 "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110"
5419 "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111"
5420 "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010"
5421 "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111011"
5422 "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111010"
5423 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101111001"
5424 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000110000"
5425 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001011011111111110001011011111111010001"
5426 "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111110001011011110111110001011011111101100"
5427 "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111111110001011011111111110001011011110101"
5428 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110110111111110001010110111111110001101110110"
5429 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100010110111111110001110110111111110100100101"
5430 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111100010110111111110100010110111100011100110"
5431 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111111100010110111111111100010111000101000111"
5432 "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101101111111100010110110111111100011111101101110"
5433 "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100101101111111100010111101111111000111000101011"
5434 "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110111000101101111111100010101101111111111000110110"
5435 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5436 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5437 "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111111111000101101111111101100101100110010001100111"
5438 "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101100111111111000101101111110111000111000011011001100"
5439 "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000101111011111111000101101111111110010100101010011011"
5440 "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111000101011011111111000101100111111111110101111010010"
5441 "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111110001011011111111000101111001100011111011100001"
5442 "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110111110001011011111111000101110100000101101101100"
5443 "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011011111111110001011011111111100101000000010000011101"
5444 "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001010110111111110001011011110111110000010101001000100"
5445 "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110001110110111111110001011001111001111110010101101101"
5446 "100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110100010110111111110001110101100110000101101110110"
5447 "111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111111100010110111111101101110111110001111100110101"
5448 "111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110111111100010110111110010111101001100101001011110"
5449 "110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111101111111100010110111101110100100000110010110111"
5450 "111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010101101111111100010001100110101111000001111101010"
5451 "111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111101100101101111111000010111110111100110101101101011"
5452 "111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111110111000101101111111111100100111001010010111100110"
5453 "111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101111111111000101111100010101111000001100101101010101"
5454 "111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100111111111000110111010100111110000011111010101100"
5455 "111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101111011111110011101110111111001101011011010010011"
5456 "101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000101011011111101111000110110010100101111000110010"
5457 "101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111110001011000110101011001100011001011010101100001"
5458 "101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110111110001011110101011110100000001110100110111000"
5459 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5460 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5461 "100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011011111111100010001101111001110010000110101100110001"
5462 "110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001010110111111011110001000010100110001110000101000100"
5463 "110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110001110110001100000110010001100110001101111001101001"
5464 "100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110100010111010011011010100101100111101110110001100"
5465 "111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111111000100101111111110011101011101000101100100101"
5466 "111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110111110011011010010000010101110110010010011001110"
5467 "110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111100011010000001110001011110000001110011010111111"
5468 "111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010101101101000101001110000110101011101100000010010"
5469 "111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111011101001011100000111100001111111001011000000010011"
5470 "111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111100111111110100111011110110100100100010000110101010"
5471 "111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101110001100110000111011111101111101011110001001111100111"
5472 "111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000100000110001001111011000000000110111011010011100000010"
5473 "111100011110111101110001111110111101110001111011111101110001011011111111110001011011111110101001110001110101100100000111110010001101100100010011"
5474 "101111011110111000111100111110111000111101111010111000111110001011011110111110001011011111111110111100001100111101110000111000011111101011001010"
5475 "101111011100011110111101111100011110111101110001111110111111110001011011111111110001011000000111100101110111111011111011101010111011111010110001"
5476 "101110001111011110111000101111011110111000111100111110110111111110001010110111111110001100010000110011110110000000010010110010101101001010100000"
5477 "100111101111011100011111101111011100011110111101111100010110111111110001110110111111101000010001111101011001000001110001111011011001001010101001"
5478 "110111101110001111011110101110001111011110111000101111100010110111111110100010110111110011111100100011001111011100000000111011111010111011110100"
5479 "110111000111101111011101100111101111011100011111101111111100010110111111111100010111101101100101111101111110111110000001100110100110011110001011"
5480 "100011110111101110001110110111101110001111011110101101111111100010110110111111100011000000010010111101100000000110000010101011001110010101000000"
5481 "111011110111000111101111110111000111101111011101100101101111111100010111101111111011101100011101110000010100011100011011110110111101100001100101"
5482 "111011100011110111101110100011110111101110001110111000101101111111100010101101111100100101000010110001100001000000111010111110111111100111011110"
5483 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5484 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5485 "110001111011110111000111111011110111000111101111111111000101101111111101100101111011011111011101100100111001100100000111101000110111001001100111"
5486 "111101111011100011110110111011100011110111101100111111111000101101111110111000110011111101110100100001111110101110100110110001100100010001010110"
5487 "111101110001111011110111110001111011110111000101111011111111000101101111111110111001100010110011100101111001111110110011100111011000011001111011"
5488 "111000111101111011100010111101111011100011111000101011011111111000101100111111000001001001011010110000100100100110010000110011111001110111001110"
5489 "111110111101110001111011111101110001111011111111110001011011111111000101111110110000110010011001100010010101000001100011111101110010011000101001"
5490 "111110111000111101111010111000111101111011011110111110001011011111111000101100001010101011100010100011001011101001101100101001000100010101000100"
5491 "111100011110111101110001111110111101110001011011111111110001011011111111100110000001001111010001111000111110101111100111100110000110011110101011"
5492 "101111011110111000111100111110111000111110001010110111111110001011011110100000000110110010110100100000001000101001011010111110011101110001110010"
5493 "101111011100011110111101111100011110111111110001110110111111110001011011111100000001010101010011111010010000011010110011100100100110101001010001"
5494 "101110001111011110111000101111011110110111111110100010110111111110001000100000001101011101100110110010111011010001000010101001000101100101111100"
5495 "100111101111011100011111101111011100010110111111111100010110111111110011100001011101110110011011111111111100000001100001100001111011001111010101"
5496 "110111101110001111011110101110001111100010110110111111100010110111111100100000011110101101000010110110000110110110111000100010101010100010010100"
5497 "110111000111101111011101100111101111111100010111101111111100010110111101100001000101010100111001101111111001101100101001100100110110111011001011"
5498 "100011110111101110001110110111101101111111100010101101111111100010110000100011010111011001110000100000000100110000000000101000100010000101101000"
5499 "111011110111000111101111110111000101101111111101100101101111111100010001110111011101100110111101111010110000011000110011100101000000100110111101"
5500 "111011100011110111101110100011111000101101111110111000101101111111000000100111101011010000110000100000101101101110111010100010101010111001101110"
5501 "110001111011110111000111111011111111000101101111111111000101101111000001110001010101001110001011100001011001000011100001111001000100000110101111"
5502 "111101111011100011110110111011011111111000101100111111111000101100000010110101110100011100100100101001001001111100111000100010101000011010010010"
5503 "111101110001111011110111110001011011111111000101111011111111000101010111110110011011101111000011100100001001001010011111111001011110101110010011"
5504 "111000111101111011100010111110001011011111111000101011011111110000100110101011101011101100011000101011000011011111100110110110100001011011110010"
5505 "111110111101110001111011111111110001011011111111110001011011110101010011110100100110100011000001110110100000111011010001110101011010101010110101"
5506 "111110111000111101111010110111111110001011011110111110001011001010001010101010111111100110001000110011001111000110001010101010011011100011010010"
5507 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5508 "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
5509 "111100011110111101110001110110111111110001011011111111110001000001110011101111011000101000100101110001000010110011111001110111110010110001000011"
5510 "101111011110111000111110100010110111111110001010110111111110101100001100111000010111001100001100100010110111111001110110101000011101100100001010"
5511 "101111011100011110111111111100010110111111110001110110111101001100110111110001100111110000011011101100001110110100010101110110101100111001000001"
5512 "101110001111011110110110111111100010110111111110100010110101011101111100110101001001100010010100100011110001100010101010100110010100110100101000"
5513 "100111101111011100010111101111111100010110111111111100011000011100111101111101010010001001110001100100101100111110010111111100011010110001000001"
5514 "110111101110001111100010101101111111100010110110111111100110010011011000101001110011000111111010101101111110011101111000100111101001000010010000"
5515 "110111000111101111111101100101101111111100010111101111111011101001011101100001111101010010101001110011101101010101110111101010001111010001000111"
5516 "100011110111101101111110111000101101111111100010101101110011000000010100110010011000000100000010100000010000110111110110100100101101001111000010"
5517 "111011110111000101101111111111000101101111111101100110001011110111111101111000100001100100000101111101001101101001101101100000101100001110010101"
5518 "111011100011111000101100111111111000101101111110111001100100010110001000101010110110011010100000110110011100101010101010101100011000100100000110"
5519 "110001111011111111000101111011111111000101101111111110111110010111000001111110010101101010010011101101010010110000000001111011111010010001111111"
5520 "111101111011011111111000101011011111111000101100111100110000000101010010101111010101000000000000101110011011111010110100101011011011010000110110"
5521 "111101110001011011111111110001011011111111000111100010111101111111011001101011011101000001110101100111011101110000100001101011100011110101011111"
5522 "111000111110001011011110111110001011011111111000111001000101100010001010111010100110101000010110110001010101101110101100100100110011000001001010"
5523 "111110111111110001011011111111110001011011111111101111100101110000011101110100001010000110110111110111100100111011011001111111010111011111011001"
5524 "111110110111111110001010110111111110001011011100101100000001010100101000101000010000100101100100100101001000101001001100111110010000001101111010"
5525 "111100010110111111110001110110111111110001010011101111011111110110000101110001010110000000111111101001011001010100000111110000111100110111101011"
5526 "101111100010110111111110100010110111111101010000111001010110101010101110101001101010000000001110100101011101001011011110101100111110010001111010"
5527 "101111111100010110111111111100010110111101100111111000111100011111000101100010110101101000001001111100001011100110111011100101110110110110100001"
5528 "101101111111100010110110111111100010110101111010101100110100111110001000100000010001011101001010110010001001100010010110111100101010111001101000"
5529 "100101110111111010010111110111111010010011000011101011001011000001001001110001000000001011101101110110001001011101000111101111000101011110111101"
5530 "110100111101111011100010111101111011101111110100110011101001110100001110100011110100001110100110110111001110111111011110101110101111011000111000"
5531 "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
5532 },
5533 };
5534 const int data_size = ARRAY_SIZE(data);
5535 int i, length, ret;
5536 struct zint_symbol *symbol = NULL;
5537
5538 char escaped[8192];
5539 char cmp_buf[32768];
5540 char cmp_msg[1024];
5541
5542 int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */
5543 int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); /* Only do ZXing-C++ test if asked, too slow otherwise */
5544
5545 testStartSymbol("test_encode", &symbol);
5546
5547 for (i = 0; i < data_size; i++) {
5548
5549 if (testContinue(p_ctx, i)) continue;
5550
5551 symbol = ZBarcode_Create();
5552 assert_nonnull(symbol, "Symbol not created\n");
5553
5554 length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, data[i].eci,
5555 -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options,
5556 data[i].data, data[i].length, debug);
5557
5558 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
5559 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d\n", i, ret, data[i].ret);
5560
5561 if (p_ctx->generate) {
5562 printf(" /*%3d*/ { %s, %s, %d, %s, %d, %s, \"%s\", %d, %s, %d, %d, %d, \"%s\", %d,\n",
5563 i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].eci,
5564 testUtilOutputOptionsName(data[i].output_options),
5565 data[i].option_2, testUtilOption3Name(data[i].symbology, data[i].option_3),
5566 testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), data[i].length,
5567 testUtilErrorName(data[i].ret), symbol->rows, symbol->width, data[i].bwipp_cmp, data[i].comment,
5568 data[i].expected_diff);
5569 testUtilModulesPrint(symbol, " ", "\n");
5570 printf(" },\n");
5571 } else {
5572 if (ret < ZINT_ERROR) {
5573 int width, row;
5574
5575 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
5576 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
5577
5578 ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
5579 assert_zero(ret, "i:%d testUtilModulesCmp ret %d != 0 width %d row %d (%s)\n", i, ret, width, row, data[i].data);
5580
5581 if (do_bwipp && testUtilCanBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, debug)) {
5582 if (!data[i].bwipp_cmp) {
5583 if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
5584 } else {
5585 ret = testUtilBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, data[i].data, length, NULL, cmp_buf, sizeof(cmp_buf), NULL);
5586 assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
5587
5588 ret = testUtilBwippCmp(symbol, cmp_msg, cmp_buf, data[i].expected);
5589 assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n",
5590 i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, data[i].expected);
5591 }
5592 }
5593 if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
5594 int cmp_len, ret_len;
5595 char modules_dump[144 * 144 + 1];
5596 assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
5597 ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
5598 assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
5599
5600 ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
5601 assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
5602 i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
5603 }
5604
5605 #ifdef ZINT_TEST_ENCODING
5606 if (i && (data[i].input_mode & 0x07) == (data[i - 1].input_mode & 0x07) && !(data[i].input_mode & FAST_MODE) && (data[i - 1].input_mode & FAST_MODE)
5607 && data[i].eci == data[i - 1].eci && data[i].option_2 == data[i - 1].option_2
5608 && data[i].option_3 == data[i - 1].option_3 && data[i].output_options == data[i - 1].output_options
5609 && strcmp(data[i].data, data[i - 1].data) == 0) {
5610 unsigned char binary[2][2200];
5611 int gs1;
5612 int binlen;
5613 int binlens[2] = {0};
5614
5615 assert_equal(data[i].expected_rows * data[i].expected_width <= data[i - 1].expected_rows * data[i - 1].expected_width, 1,
5616 "i:%d data[i].expected_rows * data[i].expected_width %d > data[i - 1].expected_rows * data[i - 1].expected_width %d\n", i,
5617 data[i].expected_rows * data[i].expected_width, data[i - 1].expected_rows * data[i - 1].expected_width);
5618
5619 binlen = 0;
5620 symbol->input_mode = data[i - 1].input_mode;
5621 gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
5622 ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[0], &binlen);
5623 assert_zero(ret, "i:%d dm_encode() FAST_MODE ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
5624
5625 binlens[0] = binlen;
5626
5627 binlen = 0;
5628 symbol->input_mode = data[i].input_mode;
5629 gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
5630 ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[1], &binlen);
5631 assert_zero(ret, "i:%d dm_encode() minimal ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
5632
5633 binlens[1] = binlen;
5634
5635 assert_equal(binlens[1] <= binlens[0], 1, "i:%d binlens[1] %d > binlens[0] %d\n", i, binlens[1], binlens[0]);
5636 assert_equal(binlens[0], binlens[1] + data[i].expected_diff, "i:%d binlens[0] %d != %d binlens[1] (%d) + expected_diff (%d)\n",
5637 i, binlens[0], binlens[1] + data[i].expected_diff, binlens[1], data[i].expected_diff);
5638 }
5639 #endif
5640 }
5641 }
5642
5643 ZBarcode_Delete(symbol);
5644 }
5645
5646 testFinish();
5647 }
5648
5649 static void test_encode_segs(const testCtx *const p_ctx) {
5650 int debug = p_ctx->debug;
5651
5652 struct item {
5653 int symbology;
5654 int input_mode;
5655 int output_options;
5656 int option_2;
5657 int option_3;
5658 struct zint_structapp structapp;
5659 struct zint_seg segs[3];
5660 int ret;
5661
5662 int expected_rows;
5663 int expected_width;
5664 int bwipp_cmp;
5665 char *comment;
5666 char *expected;
5667 };
5668 static const struct item data[] = {
5669 /* 0*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 7 }, { TU(""), 0, 0 } }, 0, 14, 14, 1, "ISO 16022:2006 11.6 example",
5670 "10101010101010"
5671 "10000100111111"
5672 "11101100000000"
5673 "11111010010001"
5674 "11000110001000"
5675 "11110110011111"
5676 "10111101000000"
5677 "10010010000111"
5678 "10100110111100"
5679 "11011111011011"
5680 "10101001101110"
5681 "10001001101001"
5682 "10011111100000"
5683 "11111111111111"
5684 },
5685 /* 1*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 14, 14, 1, "ISO 16022:2006 11.6 example auto-ECI",
5686 "10101010101010"
5687 "10000100111111"
5688 "11101100000000"
5689 "11111010010001"
5690 "11000110001000"
5691 "11110110011111"
5692 "10111101000000"
5693 "10010010000111"
5694 "10100110111100"
5695 "11011111011011"
5696 "10101001101110"
5697 "10001001101001"
5698 "10011111100000"
5699 "11111111111111"
5700 },
5701 /* 2*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("Ж"), -1, 7 }, { TU("¶"), -1, 0 }, { TU(""), 0, 0 } }, 0, 14, 14, 1, "ISO 16022:2006 11.6 example auto-ECI inverted",
5702 "10101010101010"
5703 "10001111001101"
5704 "10011111110110"
5705 "10001100000111"
5706 "10000011111010"
5707 "11000001100101"
5708 "11100001111110"
5709 "10101101000111"
5710 "11101101001110"
5711 "11100001000001"
5712 "11110100111010"
5713 "10010111100111"
5714 "10011001010000"
5715 "11111111111111"
5716 },
5717 /* 3*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("Ж"), -1, 0 }, { TU("¶"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 14, 14, 1, "ISO 16022:2006 11.6 example inverted auto-ECI",
5718 "10101010101010"
5719 "10001111001101"
5720 "10011111110110"
5721 "10001100000111"
5722 "10000011111010"
5723 "11000001100101"
5724 "11100001111110"
5725 "10101101000111"
5726 "11101101001110"
5727 "11100001000001"
5728 "11110100111010"
5729 "10010111100111"
5730 "10011001010000"
5731 "11111111111111"
5732 },
5733 /* 4*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("product:Google Pixel 4a - 128 GB of Storage - Black;price:$439.97"), -1, 3 }, { TU("品名:Google 谷歌 Pixel 4a -128 GB的存储空间-黑色;零售价:¥3149.79"), -1, 29 }, { TU("Produkt:Google Pixel 4a - 128 GB Speicher - Schwarz;Preis:444,90 €"), -1, 17 } }, 0, 52, 52, 0, "AIM ITS/04-023:2022 Annex A example **NOT SAME** example corrupt??; BWIPP different encodation",
5734 "1010101010101010101010101010101010101010101010101010"
5735 "1001111110000011100010110111011001110111111001111011"
5736 "1000000101110101100111011011101110011001111001000100"
5737 "1100110100101001111110011111001110000110000111101111"
5738 "1001101110101111110111110010111100011101001000010110"
5739 "1110110010010101001110011111001001011001010001001001"
5740 "1011111001110110111110111010011000101100110010000110"
5741 "1000010111011001010111101110001100011011110011000011"
5742 "1010010110001000100110010010011001000110001111101100"
5743 "1011011010010000111001000111010000010101010000010111"
5744 "1111001000010000010000010011101110011011010011011100"
5745 "1000110001001000001100000111110000001111010011110111"
5746 "1100100011001001011000011011010010110010100000101000"
5747 "1011000000001101110101001110111010000100000100111111"
5748 "1010001011100101001100110011110011100111001010100000"
5749 "1010001110111001100001100111100110001111011001011101"
5750 "1001110101011110011000011010110101111101000110000000"
5751 "1001010111111011101111111111001000100011111111011001"
5752 "1100000100000111010100111010110101110011010011100000"
5753 "1000011000010011111011011110111111100101010110011001"
5754 "1000001000101000011010100011000110110100000100011100"
5755 "1000110110011010111111001111101001001001110000000101"
5756 "1100011111101110000011100010100101111110100101100010"
5757 "1110100000110111110110010111010101111110111110111001"
5758 "1101100110011001001101000011110110101011001001101110"
5759 "1111111111111111111111111111111111111111111111111111"
5760 "1010101010101010101010101010101010101010101010101010"
5761 "1010001100010001001111010111111001010101000110010101"
5762 "1000110000010111111000011011110010101010101000011100"
5763 "1001110110101100101110010111101010011011011011110111"
5764 "1010110000000100101010010010111000010101100001001000"
5765 "1111100001101000011110000111000100111111010100001101"
5766 "1001110010010010000000010011010110010001101101111110"
5767 "1011010010011010100000000111110110010101000100100001"
5768 "1011000111011001111010110010101101100100010010100000"
5769 "1110100011100110001001101111110010111100010010001101"
5770 "1111111010100111111010111010000011100111111010111110"
5771 "1101000000010110010000000110000001010011000001000011"
5772 "1101100101110111000011111011100101000100110001101000"
5773 "1011110111000000000110111111000110000011001101110111"
5774 "1100011000010001101101011011010011100011000010001100"
5775 "1011001111111111110011100111001000001000101001000111"
5776 "1011000101011101100001111010011101011000000000100110"
5777 "1000010011100100111000010110010110010111100010100011"
5778 "1000010111101101110100000010001110000111110010111000"
5779 "1010111010111001011110010111000010010001010111101011"
5780 "1101011010010010011000011010110111000101111000011100"
5781 "1111111000111101110111011111011110101111100100010011"
5782 "1100110000000100110000111011100110101110101011011000"
5783 "1101101101001110001100100111011110110000000010010101"
5784 "1101011000011011100011100010001001010110110010101110"
5785 "1111111111111111111111111111111111111111111111111111"
5786 },
5787 /* 5*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("price:$439.97"), -1, 3 }, { TU("零售价:¥3149.79"), -1, 29 }, { TU("Preis:444,90 €"), -1, 17 } }, 0, 16, 48, 1, "AIM ITS/04-023:2022 Annex A example price only",
5788 "101010101010101010101010101010101010101010101010"
5789 "100001110110010111001111101001001000110101101111"
5790 "100001011100111101001110111101110011001101011100"
5791 "110010100011100110010101100101101010001101110111"
5792 "100101010111111010110010111000011000011000001110"
5793 "111000011111100110110101110110010001000000001001"
5794 "111001110100011100001100111010100000001100101100"
5795 "100100100000111101000111100000111111000101110111"
5796 "110101111100000101011100100010011101010101001110"
5797 "100101111010010100101111110011010011011010100001"
5798 "110001110001010011101100100000100001010111000000"
5799 "110111110100110011000001110000000100010011100011"
5800 "100001001001011101011100110101010101100000100010"
5801 "101000111110011010011101111110111000001110011011"
5802 "110011100111011000101110100011101100000110010010"
5803 "111111111111111111111111111111111111111111111111"
5804 },
5805 /* 6*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("\266"), 1, 0 }, { TU("\266"), 1, 7 }, { TU("\266"), 1, 0 } }, 0, 8, 32, 1, "Standard example + extra seg, data mode",
5806 "10101010101010101010101010101010"
5807 "10000100100011111101000010000011"
5808 "11101100000000101110100001010100"
5809 "11111011110010011011000100011111"
5810 "11000111100111101101010111010110"
5811 "11110110010001111100110110010101"
5812 "11111110000111001100101011000000"
5813 "11111111111111111111111111111111"
5814 },
5815 /* 7*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 1, 2, "001001" }, { { TU("A"), -1, 3 }, { TU("B"), -1, 4 }, { TU("C"), -1, 5 } }, 0, 12, 26, 1, "",
5816 "10101010101010101010101010"
5817 "10000100011110000011000101"
5818 "10011100111010100100011000"
5819 "11111100100100001110011111"
5820 "11000010000100110011010100"
5821 "11000000110100010011001001"
5822 "11100000111111010111000000"
5823 "10011101101010000100011101"
5824 "11011000101010010101011000"
5825 "10000100000010000011010001"
5826 "10000011000001110111011000"
5827 "11111111111111111111111111"
5828 },
5829 };
5830 const int data_size = ARRAY_SIZE(data);
5831 int i, j, seg_count, ret;
5832 struct zint_symbol *symbol = NULL;
5833
5834 char escaped[8192];
5835 char cmp_buf[32768];
5836 char cmp_msg[1024];
5837
5838 int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */
5839 int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); /* Only do ZXing-C++ test if asked, too slow otherwise */
5840
5841 testStartSymbol("test_encode_segs", &symbol);
5842
5843 for (i = 0; i < data_size; i++) {
5844
5845 if (testContinue(p_ctx, i)) continue;
5846
5847 symbol = ZBarcode_Create();
5848 assert_nonnull(symbol, "Symbol not created\n");
5849
5850 testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/,
5851 -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options,
5852 NULL, 0, debug);
5853 if (data[i].structapp.count) {
5854 symbol->structapp = data[i].structapp;
5855 }
5856 for (j = 0, seg_count = 0; j < 3 && data[i].segs[j].length; j++, seg_count++);
5857
5858 ret = ZBarcode_Encode_Segs(symbol, data[i].segs, seg_count);
5859 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode_Segs ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
5860
5861 if (p_ctx->generate) {
5862 char escaped1[4096];
5863 char escaped2[4096];
5864 int length = data[i].segs[0].length == -1 ? (int) ustrlen(data[i].segs[0].source) : data[i].segs[0].length;
5865 int length1 = data[i].segs[1].length == -1 ? (int) ustrlen(data[i].segs[1].source) : data[i].segs[1].length;
5866 int length2 = data[i].segs[2].length == -1 ? (int) ustrlen(data[i].segs[2].source) : data[i].segs[2].length;
5867 printf(" /*%3d*/ { %s, %s, %s, %d, %s, { %d, %d, \"%s\" }, { { TU(\"%s\"), %d, %d }, { TU(\"%s\"), %d, %d }, { TU(\"%s\"), %d, %d } }, %s, %d, %d, %d, \"%s\",\n",
5868 i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode),
5869 testUtilOutputOptionsName(data[i].output_options),
5870 data[i].option_2, testUtilOption3Name(data[i].symbology, data[i].option_3),
5871 data[i].structapp.index, data[i].structapp.count, data[i].structapp.id,
5872 testUtilEscape((const char *) data[i].segs[0].source, length, escaped, sizeof(escaped)), data[i].segs[0].length, data[i].segs[0].eci,
5873 testUtilEscape((const char *) data[i].segs[1].source, length1, escaped1, sizeof(escaped1)), data[i].segs[1].length, data[i].segs[1].eci,
5874 testUtilEscape((const char *) data[i].segs[2].source, length2, escaped2, sizeof(escaped2)), data[i].segs[2].length, data[i].segs[2].eci,
5875 testUtilErrorName(data[i].ret), symbol->rows, symbol->width, data[i].bwipp_cmp, data[i].comment);
5876 testUtilModulesPrint(symbol, " ", "\n");
5877 printf(" },\n");
5878 } else {
5879 if (ret < ZINT_ERROR) {
5880 int width, row;
5881
5882 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
5883 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
5884
5885 ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
5886 assert_zero(ret, "i:%d testUtilModulesCmp ret %d != 0 width %d row %d\n", i, ret, width, row);
5887
5888 if (do_bwipp && testUtilCanBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, debug)) {
5889 if (!data[i].bwipp_cmp) {
5890 if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
5891 } else {
5892 ret = testUtilBwippSegs(i, symbol, -1, data[i].option_2, -1, data[i].segs, seg_count, NULL, cmp_buf, sizeof(cmp_buf));
5893 assert_zero(ret, "i:%d %s testUtilBwippSegs ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
5894
5895 ret = testUtilBwippCmp(symbol, cmp_msg, cmp_buf, data[i].expected);
5896 assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n",
5897 i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, data[i].expected);
5898 }
5899 }
5900 if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, (const char *) data[i].segs[0].source, data[i].segs[0].length, debug)) {
5901 if (data[i].input_mode == DATA_MODE) {
5902 if (debug & ZINT_DEBUG_TEST_PRINT) {
5903 printf("i:%d multiple segments in DATA_MODE not currently supported for ZXing-C++ testing (%s)\n",
5904 i, testUtilBarcodeName(symbol->symbology));
5905 }
5906 } else {
5907 int cmp_len, ret_len;
5908 char modules_dump[144 * 144 + 1];
5909 assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
5910 ret = testUtilZXingCPP(i, symbol, (const char *) data[i].segs[0].source, data[i].segs[0].length,
5911 modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
5912 assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
5913
5914 ret = testUtilZXingCPPCmpSegs(symbol, cmp_msg, cmp_buf, cmp_len, data[i].segs, seg_count,
5915 NULL /*primary*/, escaped, &ret_len);
5916 assert_zero(ret, "i:%d %s testUtilZXingCPPCmpSegs %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
5917 i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
5918 }
5919 }
5920 }
5921 }
5922
5923 ZBarcode_Delete(symbol);
5924 }
5925
5926 testFinish();
5927 }
5928
5929 #ifdef ZINT_TEST_ENCODING
5930 static void test_minimalenc(const testCtx *const p_ctx) {
5931 int debug = p_ctx->debug;
5932
5933 struct item {
5934 int symbology;
5935 int input_mode;
5936 int output_options;
5937 int option_2;
5938 char *data;
5939 int length;
5940 int ret;
5941
5942 int expected_diff; /* Difference between default minimal encodation and ISO encodation (FAST_MODE) */
5943 char *comment;
5944 };
5945 /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
5946 static const struct item data[] = {
5947 /* 0*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A", -1, 0, 0, "ASC" },
5948 /* 1*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA", -1, 0, 0, "ASC" },
5949 /* 2*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA", -1, 0, 0, "ASC" },
5950 /* 3*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA", -1, 0, 0, "ASC" },
5951 /* 4*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA", -1, 0, 0, "ASC" },
5952 /* 5*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA", -1, 0, 0, "" },
5953 /* 6*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA", -1, 0, 0, "" },
5954 /* 7*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA", -1, 0, 1, "C40; EEEEEEEE" },
5955 /* 8*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA", -1, 0, 0, "" },
5956 /* 9*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA", -1, 0, 0, "" },
5957 /* 10*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA", -1, 0, 0, "" },
5958 /* 11*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA", -1, 0, 0, "" },
5959 /* 12*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA", -1, 0, 0, "" },
5960 /* 13*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA", -1, 0, 0, "" },
5961 /* 14*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA", -1, 0, 0, "" },
5962 /* 15*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAA", -1, 0, 0, "" },
5963 /* 16*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAAAAA", -1, 0, 0, "" },
5964 /* 17*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001A", -1, 0, 0, "ASC" },
5965 /* 18*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AA", -1, 0, 0, "ASC" },
5966 /* 19*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAA", -1, 0, 0, "ASC" },
5967 /* 20*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAA", -1, 0, 0, "ASC" },
5968 /* 21*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAA", -1, 0, 0, "ASC" },
5969 /* 22*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAA", -1, 0, 0, "" },
5970 /* 23*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAA", -1, 0, 0, "" },
5971 /* 24*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAA", -1, 0, 0, "" },
5972 /* 25*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAA", -1, 0, 2, "C40; ACCCCCCCCC" },
5973 /* 26*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAA", -1, 0, 0, "" },
5974 /* 27*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAAA", -1, 0, 0, "" },
5975 /* 28*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAAAA", -1, 0, 2, "C40; ACCCCCCCCCCCC" },
5976 /* 29*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAAAAA", -1, 0, 0, "" },
5977 /* 30*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001A", -1, 0, 0, "" },
5978 /* 31*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AA", -1, 0, 0, "" },
5979 /* 32*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAA", -1, 0, 0, "" },
5980 /* 33*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAA", -1, 0, 0, "" },
5981 /* 34*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAA", -1, 0, 0, "" },
5982 /* 35*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAA", -1, 0, 0, "" },
5983 /* 36*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAA", -1, 0, 0, "" },
5984 /* 37*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAA", -1, 0, 1, "C40; AAEEEEEEEE" },
5985 /* 38*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAA", -1, 0, 0, "" },
5986 /* 39*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAA", -1, 0, 0, "" },
5987 /* 40*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAAA", -1, 0, 0, "" },
5988 /* 41*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAAAA", -1, 0, 0, "" },
5989 /* 42*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
5990 /* 43*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001A", -1, 0, 0, "" },
5991 /* 44*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AA", -1, 0, 0, "" },
5992 /* 45*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAA", -1, 0, 0, "" },
5993 /* 46*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAA", -1, 0, 0, "" },
5994 /* 47*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAA", -1, 0, 0, "" },
5995 /* 48*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAA", -1, 0, 0, "" },
5996 /* 49*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAA", -1, 0, 0, "" },
5997 /* 50*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAA", -1, 0, 0, "" },
5998 /* 51*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAA", -1, 0, 2, "C40; AAACCCCCCCCC" },
5999 /* 52*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAA", -1, 0, 0, "" },
6000 /* 53*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAAA", -1, 0, 0, "" },
6001 /* 54*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAAAA", -1, 0, 2, "C40; AAACCCCCCCCCCCC" },
6002 /* 55*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
6003 /* 56*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001A", -1, 0, 0, "" },
6004 /* 57*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AA", -1, 0, 0, "" },
6005 /* 58*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAA", -1, 0, 0, "" },
6006 /* 59*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAA", -1, 0, 0, "" },
6007 /* 60*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAA", -1, 0, 0, "" },
6008 /* 61*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAA", -1, 0, 0, "" },
6009 /* 62*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAA", -1, 0, 0, "" },
6010 /* 63*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAA", -1, 0, 1, "C40; AAAAEEEEEEEE" },
6011 /* 64*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAA", -1, 0, 0, "" },
6012 /* 65*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAA", -1, 0, 0, "" },
6013 /* 66*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAAA", -1, 0, 0, "" },
6014 /* 67*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAAAA", -1, 0, 1, "C40; AAAACCCCCCCCCCCC" },
6015 /* 68*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
6016 /* 69*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001A", -1, 0, 0, "" },
6017 /* 70*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AA", -1, 0, 0, "" },
6018 /* 71*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAA", -1, 0, 0, "" },
6019 /* 72*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAA", -1, 0, 0, "" },
6020 /* 73*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAA", -1, 0, 0, "" },
6021 /* 74*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAA", -1, 0, 0, "" },
6022 /* 75*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAA", -1, 0, 0, "" },
6023 /* 76*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAA", -1, 0, 0, "" },
6024 /* 77*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAA", -1, 0, 2, "C40; AAAAACCCCCCCCC" },
6025 /* 78*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAA", -1, 0, 0, "" },
6026 /* 79*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAAA", -1, 0, 0, "" },
6027 /* 80*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAAAA", -1, 0, 1, "C40; AAAAACCCCCCCCCCCC" },
6028 /* 81*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
6029 /* 82*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200A", -1, 0, 0, "" },
6030 /* 83*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AA", -1, 0, 0, "" },
6031 /* 84*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAA", -1, 0, 0, "" },
6032 /* 85*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAA", -1, 0, 0, "" },
6033 /* 86*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAA", -1, 0, 0, "" },
6034 /* 87*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAA", -1, 0, 0, "" },
6035 /* 88*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAA", -1, 0, 0, "" },
6036 /* 89*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAA", -1, 0, 1, "" },
6037 /* 90*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAA", -1, 0, 0, "" },
6038 /* 91*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAA", -1, 0, 2, "" },
6039 /* 92*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAAA", -1, 0, 0, "" },
6040 /* 93*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAAAA", -1, 0, 0, "" },
6041 /* 94*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAAAAA", -1, 0, 2, "" },
6042 /* 95*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200A", -1, 0, 0, "" },
6043 /* 96*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AA", -1, 0, 0, "" },
6044 /* 97*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAA", -1, 0, 0, "" },
6045 /* 98*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAA", -1, 0, 0, "" },
6046 /* 99*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAA", -1, 0, 0, "" },
6047 /*100*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAA", -1, 0, 0, "" },
6048 /*101*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAA", -1, 0, 0, "" },
6049 /*102*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAA", -1, 0, 1, "" },
6050 /*103*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAA", -1, 0, 0, "" },
6051 /*104*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAA", -1, 0, 0, "" },
6052 /*105*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAAA", -1, 0, 0, "" },
6053 /*106*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAAAA", -1, 0, 0, "" },
6054 /*107*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAAAAA", -1, 0, 0, "" },
6055 /*108*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200A", -1, 0, 0, "ASC last 1" },
6056 /*109*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AA", -1, 0, 0, "ASC 2" },
6057 /*110*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAA", -1, 0, 0, "ASC 3" },
6058 /*111*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAA", -1, 0, 0, "ASC 4" },
6059 /*112*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAA", -1, 0, 0, "ASC 5" },
6060 /*113*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAA", -1, 0, 0, "C40 6" },
6061 /*114*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAA", -1, 0, 0, "C40" },
6062 /*115*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAA", -1, 0, 0, "C40" },
6063 /*116*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAA", -1, 0, 0, "C40" },
6064 /*117*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAA", -1, 0, 0, "C40 except last ASC" },
6065 /*118*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAA", -1, 0, 0, "C40 except last 2 ASC" },
6066 /*119*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAA", -1, 0, 0, "C40 except last ASC" },
6067 /*120*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAAA", -1, 0, 0, "C40 except last 2 ASC" },
6068 /*121*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9", -1, 0, 0, "" },
6069 /*122*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99", -1, 0, 0, "" },
6070 /*123*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999", -1, 0, 0, "" },
6071 /*124*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999", -1, 0, 0, "" },
6072 /*125*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999", -1, 0, 0, "" },
6073 /*126*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999", -1, 0, 0, "" },
6074 /*127*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999", -1, 0, 0, "" },
6075 /*128*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999", -1, 0, 0, "" },
6076 /*129*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999", -1, 0, 0, "" },
6077 /*130*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999", -1, 0, 0, "" },
6078 /*131*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999", -1, 0, 0, "" },
6079 /*132*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999", -1, 0, 0, "" },
6080 /*133*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999", -1, 0, 0, "" },
6081 /*134*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999", -1, 0, 0, "" },
6082 /*135*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999", -1, 0, 0, "" },
6083 /*136*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999", -1, 0, 0, "" },
6084 /*137*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999", -1, 0, 0, "" },
6085 /*138*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999999", -1, 0, 0, "" },
6086 /*139*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999999", -1, 0, 0, "" },
6087 /*140*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999999", -1, 0, 0, "" },
6088 /*141*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999999999", -1, 0, 0, "" },
6089 /*142*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999999999", -1, 0, 0, "" },
6090 /*143*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999999999", -1, 0, 0, "" },
6091 /*144*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999999999999", -1, 0, 0, "" },
6092 /*145*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999999999999", -1, 0, 0, "" },
6093 /*146*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999999999999", -1, 0, 0, "" },
6094 /*147*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019", -1, 0, 0, "" },
6095 /*148*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199", -1, 0, 0, "" },
6096 /*149*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999", -1, 0, 0, "" },
6097 /*150*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999", -1, 0, 0, "" },
6098 /*151*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999", -1, 0, 0, "" },
6099 /*152*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999", -1, 0, 0, "" },
6100 /*153*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999", -1, 0, 0, "" },
6101 /*154*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999", -1, 0, 0, "" },
6102 /*155*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999", -1, 0, 0, "" },
6103 /*156*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999", -1, 0, 0, "" },
6104 /*157*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999", -1, 0, 0, "" },
6105 /*158*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999", -1, 0, 0, "" },
6106 /*159*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999", -1, 0, 0, "" },
6107 /*160*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999", -1, 0, 0, "" },
6108 /*161*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999", -1, 0, 0, "" },
6109 /*162*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999", -1, 0, 0, "" },
6110 /*163*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999", -1, 0, 0, "" },
6111 /*164*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999999", -1, 0, 0, "" },
6112 /*165*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999999", -1, 0, 0, "" },
6113 /*166*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999999", -1, 0, 0, "" },
6114 /*167*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999999999", -1, 0, 0, "" },
6115 /*168*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999999999", -1, 0, 0, "" },
6116 /*169*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999999999", -1, 0, 0, "" },
6117 /*170*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999999999999", -1, 0, 0, "" },
6118 /*171*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999999999999", -1, 0, 0, "" },
6119 /*172*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999999999999", -1, 0, 0, "" },
6120 /*173*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019", -1, 0, 0, "" },
6121 /*174*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199", -1, 0, 0, "" },
6122 /*175*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999", -1, 0, 0, "" },
6123 /*176*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999", -1, 0, 0, "" },
6124 /*177*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999", -1, 0, 0, "" },
6125 /*178*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999", -1, 0, 0, "" },
6126 /*179*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999", -1, 0, 0, "" },
6127 /*180*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999", -1, 0, 0, "" },
6128 /*181*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999", -1, 0, 0, "" },
6129 /*182*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999", -1, 0, 0, "" },
6130 /*183*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999", -1, 0, 0, "" },
6131 /*184*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999", -1, 0, 0, "" },
6132 /*185*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999", -1, 0, 0, "" },
6133 /*186*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999", -1, 0, 0, "" },
6134 /*187*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999", -1, 0, 0, "" },
6135 /*188*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999", -1, 0, 0, "" },
6136 /*189*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999", -1, 0, 0, "" },
6137 /*190*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999999", -1, 0, 0, "" },
6138 /*191*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999999", -1, 0, 0, "" },
6139 /*192*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999999", -1, 0, 0, "" },
6140 /*193*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999999999", -1, 0, 0, "" },
6141 /*194*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999999999", -1, 0, 0, "" },
6142 /*195*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999999999", -1, 0, 0, "" },
6143 /*196*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999999999999", -1, 0, 0, "" },
6144 /*197*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999999999999", -1, 0, 0, "" },
6145 /*198*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999999999999", -1, 0, 0, "" },
6146 /*199*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019", -1, 0, 0, "" },
6147 /*200*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199", -1, 0, 0, "" },
6148 /*201*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999", -1, 0, 0, "" },
6149 /*202*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999", -1, 0, 0, "" },
6150 /*203*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999", -1, 0, 0, "" },
6151 /*204*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999", -1, 0, 0, "" },
6152 /*205*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999", -1, 0, 0, "" },
6153 /*206*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999", -1, 0, 0, "" },
6154 /*207*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999", -1, 0, 0, "" },
6155 /*208*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999", -1, 0, 0, "" },
6156 /*209*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999", -1, 0, 0, "" },
6157 /*210*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999", -1, 0, 0, "" },
6158 /*211*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999", -1, 0, 0, "" },
6159 /*212*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999", -1, 0, 0, "" },
6160 /*213*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999", -1, 0, 0, "" },
6161 /*214*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999", -1, 0, 0, "" },
6162 /*215*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999", -1, 0, 0, "" },
6163 /*216*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999999", -1, 0, 0, "" },
6164 /*217*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999999", -1, 0, 0, "" },
6165 /*218*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999999", -1, 0, 0, "" },
6166 /*219*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999999999", -1, 0, 0, "" },
6167 /*220*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999999999", -1, 0, 0, "" },
6168 /*221*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999999999", -1, 0, 0, "" },
6169 /*222*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999999999999", -1, 0, 0, "" },
6170 /*223*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999999999999", -1, 0, 0, "" },
6171 /*224*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999999999999", -1, 0, 0, "" },
6172 /*225*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019", -1, 0, 0, "" },
6173 /*226*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199", -1, 0, 0, "" },
6174 /*227*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999", -1, 0, 0, "" },
6175 /*228*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999", -1, 0, 0, "" },
6176 /*229*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999", -1, 0, 0, "" },
6177 /*230*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999", -1, 0, 0, "" },
6178 /*231*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999", -1, 0, 0, "" },
6179 /*232*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999", -1, 0, 0, "" },
6180 /*233*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999", -1, 0, 0, "" },
6181 /*234*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999", -1, 0, 0, "" },
6182 /*235*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999", -1, 0, 0, "" },
6183 /*236*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999", -1, 0, 0, "" },
6184 /*237*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999", -1, 0, 0, "" },
6185 /*238*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999", -1, 0, 0, "" },
6186 /*239*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999", -1, 0, 0, "" },
6187 /*240*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999", -1, 0, 0, "" },
6188 /*241*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999", -1, 0, 0, "" },
6189 /*242*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999999", -1, 0, 0, "" },
6190 /*243*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999999", -1, 0, 0, "" },
6191 /*244*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999999", -1, 0, 0, "" },
6192 /*245*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999999999", -1, 0, 0, "" },
6193 /*246*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999999999", -1, 0, 0, "" },
6194 /*247*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999999999", -1, 0, 0, "" },
6195 /*248*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999999999999", -1, 0, 0, "" },
6196 /*249*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999999999999", -1, 0, 0, "" },
6197 /*250*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999999999999", -1, 0, 0, "" },
6198 /*251*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019", -1, 0, 0, "" },
6199 /*252*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199", -1, 0, 0, "" },
6200 /*253*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999", -1, 0, 0, "" },
6201 /*254*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999", -1, 0, 0, "" },
6202 /*255*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999", -1, 0, 0, "" },
6203 /*256*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999", -1, 0, 0, "" },
6204 /*257*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999", -1, 0, 0, "" },
6205 /*258*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999", -1, 0, 0, "" },
6206 /*259*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999", -1, 0, 0, "" },
6207 /*260*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999", -1, 0, 0, "" },
6208 /*261*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999", -1, 0, 0, "" },
6209 /*262*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999", -1, 0, 0, "" },
6210 /*263*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999", -1, 0, 0, "" },
6211 /*264*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999", -1, 0, 0, "" },
6212 /*265*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999", -1, 0, 0, "" },
6213 /*266*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999", -1, 0, 0, "" },
6214 /*267*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999", -1, 0, 0, "" },
6215 /*268*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999999", -1, 0, 0, "" },
6216 /*269*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999999", -1, 0, 0, "" },
6217 /*270*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999999", -1, 0, 0, "" },
6218 /*271*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999999999", -1, 0, 0, "" },
6219 /*272*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999999999", -1, 0, 0, "" },
6220 /*273*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999999999", -1, 0, 0, "" },
6221 /*274*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999999999999", -1, 0, 0, "" },
6222 /*275*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999999999999", -1, 0, 0, "" },
6223 /*276*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999999999999", -1, 0, 0, "" },
6224 /*277*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009", -1, 0, 0, "" },
6225 /*278*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099", -1, 0, 0, "" },
6226 /*279*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999", -1, 0, 0, "" },
6227 /*280*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999", -1, 0, 0, "" },
6228 /*281*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999", -1, 0, 0, "" },
6229 /*282*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999", -1, 0, 0, "" },
6230 /*283*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999", -1, 0, 0, "" },
6231 /*284*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999", -1, 0, 0, "" },
6232 /*285*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999", -1, 0, 0, "" },
6233 /*286*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999", -1, 0, 0, "" },
6234 /*287*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999", -1, 0, 0, "" },
6235 /*288*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999", -1, 0, 0, "" },
6236 /*289*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999", -1, 0, 0, "" },
6237 /*290*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999", -1, 0, 0, "" },
6238 /*291*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999", -1, 0, 0, "" },
6239 /*292*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999", -1, 0, 0, "" },
6240 /*293*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999999", -1, 0, 0, "" },
6241 /*294*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999999", -1, 0, 0, "" },
6242 /*295*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999999", -1, 0, 0, "" },
6243 /*296*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999999999", -1, 0, 0, "" },
6244 /*297*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999999999", -1, 0, 0, "" },
6245 /*298*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999999999", -1, 0, 0, "" },
6246 /*299*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999999999999", -1, 0, 0, "" },
6247 /*300*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999999999999", -1, 0, 0, "" },
6248 /*301*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999999999999", -1, 0, 0, "" },
6249 /*302*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009", -1, 0, 0, "" },
6250 /*303*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099", -1, 0, 1, "BAS FN4 ASC; AAAA" },
6251 /*304*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999", -1, 0, 0, "" },
6252 /*305*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999", -1, 0, 0, "" },
6253 /*306*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999", -1, 0, 0, "" },
6254 /*307*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999", -1, 0, 0, "" },
6255 /*308*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999", -1, 0, 0, "" },
6256 /*309*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999", -1, 0, 0, "" },
6257 /*310*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999", -1, 0, 0, "" },
6258 /*311*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999", -1, 0, 0, "" },
6259 /*312*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999", -1, 0, 0, "" },
6260 /*313*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999", -1, 0, 0, "" },
6261 /*314*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999", -1, 0, 0, "" },
6262 /*315*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999", -1, 0, 0, "" },
6263 /*316*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999", -1, 0, 0, "" },
6264 /*317*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999", -1, 0, 0, "" },
6265 /*318*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999999", -1, 0, 0, "" },
6266 /*319*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999999", -1, 0, 0, "" },
6267 /*320*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999999", -1, 0, 0, "" },
6268 /*321*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999999999", -1, 0, 0, "" },
6269 /*322*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999999999", -1, 0, 0, "" },
6270 /*323*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999999999", -1, 0, 0, "" },
6271 /*324*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999999999999", -1, 0, 0, "" },
6272 /*325*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999999999999", -1, 0, 0, "" },
6273 /*326*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999999999999", -1, 0, 0, "" },
6274 /*327*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009", -1, 0, 0, "ASC last 1" },
6275 /*328*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099", -1, 0, 1, "BBBAA" },
6276 /*329*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999", -1, 0, 0, "" },
6277 /*330*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999", -1, 0, 0, "" },
6278 /*331*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999", -1, 0, 0, "" },
6279 /*332*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999", -1, 0, 0, "" },
6280 /*333*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999", -1, 0, 0, "" },
6281 /*334*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999", -1, 0, 0, "" },
6282 /*335*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999", -1, 0, 0, "" },
6283 /*336*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999", -1, 0, 0, "" },
6284 /*337*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999", -1, 0, 0, "" },
6285 /*338*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999", -1, 0, 0, "" },
6286 /*339*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999", -1, 0, 0, "" },
6287 /*340*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999", -1, 0, 0, "" },
6288 /*341*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999", -1, 0, 0, "" },
6289 /*342*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999", -1, 0, 0, "" },
6290 /*343*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999999", -1, 0, 0, "" },
6291 /*344*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999999", -1, 0, 0, "" },
6292 /*345*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999999", -1, 0, 0, "" },
6293 /*346*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999999999", -1, 0, 0, "" },
6294 /*347*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999999999", -1, 0, 0, "" },
6295 /*348*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999999999", -1, 0, 0, "" },
6296 /*349*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999999999999", -1, 0, 0, "" },
6297 /*350*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999999999999", -1, 0, 0, "" },
6298 /*351*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999999999999", -1, 0, 0, "" },
6299 /*352*/ { BARCODE_DATAMATRIX, -1, -1, -1, "a", -1, 0, 0, "ASC" },
6300 /*353*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aa", -1, 0, 0, "ASC" },
6301 /*354*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaa", -1, 0, 0, "ASC" },
6302 /*355*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaa", -1, 0, 0, "ASC" },
6303 /*356*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaa", -1, 0, 0, "ASC" },
6304 /*357*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaa", -1, 0, 0, "" },
6305 /*358*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaa", -1, 0, 0, "" },
6306 /*359*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaa", -1, 0, 0, "ASC" },
6307 /*360*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaa", -1, 0, 0, "TEX" },
6308 /*361*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaa", -1, 0, 0, "" },
6309 /*362*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaaa", -1, 0, 0, "" },
6310 /*363*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaaaa", -1, 0, 0, "" },
6311 /*364*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaaaaa", -1, 0, 0, "" },
6312 /*365*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001a", -1, 0, 0, "ASC" },
6313 /*366*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aa", -1, 0, 0, "ASC" },
6314 /*367*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaa", -1, 0, 0, "ASC" },
6315 /*368*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaa", -1, 0, 0, "ASC" },
6316 /*369*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaa", -1, 0, 0, "ASC" },
6317 /*370*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaa", -1, 0, 0, "" },
6318 /*371*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaa", -1, 0, 0, "" },
6319 /*372*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaa", -1, 0, 0, "" },
6320 /*373*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaa", -1, 0, 2, "TEX; ATTTTTTTTT" },
6321 /*374*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaa", -1, 0, 0, "" },
6322 /*375*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaaa", -1, 0, 0, "" },
6323 /*376*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaaaa", -1, 0, 2, "TEX; ATTTTTTTTTTTT" },
6324 /*377*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaaaaa", -1, 0, 0, "" },
6325 /*378*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001a", -1, 0, 0, "" },
6326 /*379*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aa", -1, 0, 0, "" },
6327 /*380*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaa", -1, 0, 0, "" },
6328 /*381*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaa", -1, 0, 0, "" },
6329 /*382*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaa", -1, 0, 0, "" },
6330 /*383*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaa", -1, 0, 0, "" },
6331 /*384*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaa", -1, 0, 0, "" },
6332 /*385*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaa", -1, 0, 0, "" },
6333 /*386*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaa", -1, 0, 0, "" },
6334 /*387*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaa", -1, 0, 0, "" },
6335 /*388*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaaa", -1, 0, 0, "" },
6336 /*389*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaaaa", -1, 0, 0, "" },
6337 /*390*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaaaaa", -1, 0, 0, "" },
6338 /*391*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200a", -1, 0, 0, "ASC last 1" },
6339 /*392*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aa", -1, 0, 0, "ASC 2" },
6340 /*393*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaa", -1, 0, 0, "ASC 3" },
6341 /*394*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaa", -1, 0, 0, "ASC 4" },
6342 /*395*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaa", -1, 0, 0, "ASC 5" },
6343 /*396*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaa", -1, 0, 0, "TEX 6" },
6344 /*397*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa", -1, 0, 0, "TEX" },
6345 /*398*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaa", -1, 0, 0, "TEX" },
6346 /*399*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaa", -1, 0, 0, "TEX" },
6347 /*400*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaa", -1, 0, 0, "TEX except last ASC" },
6348 /*401*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaa", -1, 0, 0, "TEX except last 2 ASC" },
6349 /*402*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaa", -1, 0, 0, "TEX" },
6350 /*403*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaa", -1, 0, 0, "TEX except last ASC" },
6351 /*404*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">", -1, 0, 0, "" },
6352 /*405*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>", -1, 0, 0, "" },
6353 /*406*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>", -1, 0, 0, "" },
6354 /*407*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>", -1, 0, 0, "" },
6355 /*408*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>", -1, 0, 0, "" },
6356 /*409*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>", -1, 0, 0, "" },
6357 /*410*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>", -1, 0, 0, "" },
6358 /*411*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>", -1, 0, 0, "" },
6359 /*412*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>", -1, 0, 0, "" },
6360 /*413*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>", -1, 0, 0, "" },
6361 /*414*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>", -1, 0, 0, "" },
6362 /*415*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>", -1, 0, 0, "" },
6363 /*416*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>", -1, 0, 0, "" },
6364 /*417*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>>>>", -1, 0, 0, "" },
6365 /*418*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>", -1, 0, 0, "" },
6366 /*419*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>", -1, 0, 0, "" },
6367 /*420*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>", -1, 0, 0, "" },
6368 /*421*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>", -1, 0, 0, "" },
6369 /*422*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>", -1, 0, 0, "" },
6370 /*423*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>", -1, 0, 0, "" },
6371 /*424*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>", -1, 0, 0, "" },
6372 /*425*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>", -1, 0, 0, "" },
6373 /*426*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>", -1, 0, 0, "" },
6374 /*427*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>", -1, 0, 0, "" },
6375 /*428*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>>", -1, 0, 1, "X12; AAAXXXXXXXXX" },
6376 /*429*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>>>", -1, 0, 0, "" },
6377 /*430*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>>>>", -1, 0, 0, "" },
6378 /*431*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>", -1, 0, 0, "" },
6379 /*432*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>", -1, 0, 0, "" },
6380 /*433*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>", -1, 0, 0, "" },
6381 /*434*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>", -1, 0, 0, "" },
6382 /*435*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>", -1, 0, 0, "" },
6383 /*436*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>", -1, 0, 0, "" },
6384 /*437*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>", -1, 0, 0, "" },
6385 /*438*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>", -1, 0, 0, "" },
6386 /*439*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>", -1, 0, 0, "" },
6387 /*440*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>", -1, 0, 0, "" },
6388 /*441*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>>", -1, 0, 0, "" },
6389 /*442*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
6390 /*443*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
6391 /*444*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>", -1, 0, 0, "" },
6392 /*445*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>", -1, 0, 0, "" },
6393 /*446*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>", -1, 0, 0, "" },
6394 /*447*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>", -1, 0, 0, "" },
6395 /*448*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>", -1, 0, 0, "" },
6396 /*449*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>", -1, 0, 0, "" },
6397 /*450*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>", -1, 0, 0, "" },
6398 /*451*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>", -1, 0, 0, "" },
6399 /*452*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>", -1, 0, 0, "" },
6400 /*453*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>", -1, 0, 0, "" },
6401 /*454*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>>", -1, 0, 1, "X12; AAAAAXXXXXXXXX" },
6402 /*455*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
6403 /*456*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
6404 /*457*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>", -1, 0, 0, "" },
6405 /*458*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>", -1, 0, 0, "" },
6406 /*459*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>", -1, 0, 0, "" },
6407 /*460*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>", -1, 0, 0, "" },
6408 /*461*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>", -1, 0, 0, "" },
6409 /*462*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>", -1, 0, 0, "" },
6410 /*463*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>", -1, 0, 0, "" },
6411 /*464*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>", -1, 0, 0, "" },
6412 /*465*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>", -1, 0, 0, "" },
6413 /*466*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>", -1, 0, 0, "" },
6414 /*467*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>>", -1, 0, 0, "" },
6415 /*468*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
6416 /*469*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
6417 /*470*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>", -1, 0, 0, "" },
6418 /*471*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>", -1, 0, 0, "" },
6419 /*472*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>", -1, 0, 0, "" },
6420 /*473*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>", -1, 0, 0, "" },
6421 /*474*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>", -1, 0, 0, "" },
6422 /*475*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>", -1, 0, 0, "" },
6423 /*476*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>", -1, 0, 0, "" },
6424 /*477*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>", -1, 0, 0, "" },
6425 /*478*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>", -1, 0, 0, "" },
6426 /*479*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>", -1, 0, 0, "" },
6427 /*480*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>>", -1, 0, 0, "" },
6428 /*481*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
6429 /*482*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
6430 /*483*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>", -1, 0, 0, "" },
6431 /*484*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>", -1, 0, 0, "" },
6432 /*485*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>", -1, 0, 1, "BAS ASC; AAAA" },
6433 /*486*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>", -1, 0, 1, "BAS ASC; AAAAA" },
6434 /*487*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>", -1, 0, 1, "BAS ASC; AAEEEE" },
6435 /*488*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>", -1, 0, 0, "BAS X12; AAEEEEA" },
6436 /*489*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>", -1, 0, 2, "BAS X12; AAXXXXXX" },
6437 /*490*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>", -1, 0, 1, "BAS EDI; AEEEEEEEE" },
6438 /*491*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>", -1, 0, 0, "" },
6439 /*492*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>", -1, 0, 2, "BAS X12; AAXXXXXXXXX" },
6440 /*493*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>>", -1, 0, 1, "BAS X12;2; AEEEEEEEEEEE" },
6441 /*494*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>>>", -1, 0, 0, "" },
6442 /*495*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>>>>", -1, 0, 2, "BAS; AAXXXXXXXXXXXX" },
6443 /*496*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>", -1, 0, 0, "" },
6444 /*497*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>", -1, 0, 0, "" },
6445 /*498*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>", -1, 0, 0, "" },
6446 /*499*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>", -1, 0, 0, "" },
6447 /*500*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>", -1, 0, 0, "" },
6448 /*501*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>", -1, 0, 0, "" },
6449 /*502*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>", -1, 0, 0, "" },
6450 /*503*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>", -1, 0, 0, "" },
6451 /*504*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>", -1, 0, 0, "" },
6452 /*505*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>", -1, 0, 0, "" },
6453 /*506*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>>", -1, 0, 0, "" },
6454 /*507*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>>>", -1, 0, 0, "" },
6455 /*508*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>>>>", -1, 0, 0, "" },
6456 /*509*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>", -1, 0, 0, "ASC last 1" },
6457 /*510*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>", -1, 0, 0, "ASC 2" },
6458 /*511*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>", -1, 0, 0, "ASC 3" },
6459 /*512*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>", -1, 0, 0, "ASC 4" },
6460 /*513*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>", -1, 0, 0, "ASC 5" },
6461 /*514*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>", -1, 0, 0, "X12 6" },
6462 /*515*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>", -1, 0, 0, "X12 except last 2 ASC" },
6463 /*516*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>", -1, 0, 0, "X12" },
6464 /*517*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>", -1, 0, 0, "X12" },
6465 /*518*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>", -1, 0, 0, "X12 except last 2 ASC" },
6466 /*519*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>", -1, 0, 0, "X12 except last 3 ASC" },
6467 /*520*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>", -1, 0, 0, "X12" },
6468 /*521*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>", -1, 0, 0, "X12 except last ASC" },
6469 /*522*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".", -1, 0, 0, "" },
6470 /*523*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..", -1, 0, 0, "" },
6471 /*524*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...", -1, 0, 0, "" },
6472 /*525*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....", -1, 0, 0, "" },
6473 /*526*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....", -1, 0, 0, "" },
6474 /*527*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......", -1, 0, 0, "" },
6475 /*528*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......", -1, 0, 0, "" },
6476 /*529*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........", -1, 0, 0, "" },
6477 /*530*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........", -1, 0, 0, "" },
6478 /*531*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........", -1, 0, 1, "EDI; AAEEEEEEEE" },
6479 /*532*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........", -1, 0, 0, "" },
6480 /*533*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............", -1, 0, 0, "" },
6481 /*534*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............", -1, 0, 0, "" },
6482 /*535*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.", -1, 0, 0, "" },
6483 /*536*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001..", -1, 0, 0, "" },
6484 /*537*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001...", -1, 0, 0, "" },
6485 /*538*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001....", -1, 0, 0, "" },
6486 /*539*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.....", -1, 0, 0, "" },
6487 /*540*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001......", -1, 0, 0, "" },
6488 /*541*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.......", -1, 0, 0, "" },
6489 /*542*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001........", -1, 0, 0, "" },
6490 /*543*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.........", -1, 0, 0, "" },
6491 /*544*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001..........", -1, 0, 0, "" },
6492 /*545*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001...........", -1, 0, 0, "" },
6493 /*546*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001............", -1, 0, 0, "" },
6494 /*547*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.............", -1, 0, 0, "" },
6495 /*548*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.", -1, 0, 0, "" },
6496 /*549*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001..", -1, 0, 0, "" },
6497 /*550*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001...", -1, 0, 0, "" },
6498 /*551*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001....", -1, 0, 0, "" },
6499 /*552*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.....", -1, 0, 0, "" },
6500 /*553*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001......", -1, 0, 0, "" },
6501 /*554*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.......", -1, 0, 0, "" },
6502 /*555*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001........", -1, 0, 0, "" },
6503 /*556*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.........", -1, 0, 0, "" },
6504 /*557*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001..........", -1, 0, 1, "EDI; AAAAEEEEEEEE" },
6505 /*558*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001...........", -1, 0, 0, "" },
6506 /*559*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001............", -1, 0, 0, "" },
6507 /*560*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.............", -1, 0, 0, "" },
6508 /*561*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.", -1, 0, 0, "" },
6509 /*562*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001..", -1, 0, 0, "" },
6510 /*563*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001...", -1, 0, 0, "" },
6511 /*564*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001....", -1, 0, 0, "" },
6512 /*565*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.....", -1, 0, 0, "" },
6513 /*566*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001......", -1, 0, 0, "" },
6514 /*567*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.......", -1, 0, 0, "" },
6515 /*568*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001........", -1, 0, 0, "" },
6516 /*569*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.........", -1, 0, 0, "" },
6517 /*570*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001..........", -1, 0, 0, "" },
6518 /*571*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001...........", -1, 0, 0, "" },
6519 /*572*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001............", -1, 0, 0, "" },
6520 /*573*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.............", -1, 0, 1, "EDI; AAAAEEEEEEEEEEEE" },
6521 /*574*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.", -1, 0, 0, "" },
6522 /*575*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001..", -1, 0, 0, "" },
6523 /*576*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001...", -1, 0, 0, "" },
6524 /*577*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001....", -1, 0, 0, "" },
6525 /*578*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.....", -1, 0, 0, "" },
6526 /*579*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001......", -1, 0, 0, "" },
6527 /*580*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.......", -1, 0, 0, "" },
6528 /*581*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001........", -1, 0, 0, "" },
6529 /*582*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.........", -1, 0, 0, "" },
6530 /*583*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001..........", -1, 0, 0, "" },
6531 /*584*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001...........", -1, 0, 0, "" },
6532 /*585*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001............", -1, 0, 0, "" },
6533 /*586*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.............", -1, 0, 0, "" },
6534 /*587*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.", -1, 0, 0, "" },
6535 /*588*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001..", -1, 0, 0, "" },
6536 /*589*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001...", -1, 0, 0, "" },
6537 /*590*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001....", -1, 0, 0, "" },
6538 /*591*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.....", -1, 0, 0, "" },
6539 /*592*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001......", -1, 0, 0, "" },
6540 /*593*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.......", -1, 0, 0, "" },
6541 /*594*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001........", -1, 0, 0, "" },
6542 /*595*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.........", -1, 0, 0, "" },
6543 /*596*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001..........", -1, 0, 1, "" },
6544 /*597*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001...........", -1, 0, 0, "" },
6545 /*598*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001............", -1, 0, 0, "" },
6546 /*599*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.............", -1, 0, 0, "" },
6547 /*600*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.", -1, 0, 0, "" },
6548 /*601*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200..", -1, 0, 0, "" },
6549 /*602*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200...", -1, 0, 1, "" },
6550 /*603*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200....", -1, 0, 1, "" },
6551 /*604*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.....", -1, 0, 1, "" },
6552 /*605*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200......", -1, 0, 1, "" },
6553 /*606*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.......", -1, 0, 1, "" },
6554 /*607*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200........", -1, 0, 1, "" },
6555 /*608*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.........", -1, 0, 1, "" },
6556 /*609*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200..........", -1, 0, 1, "" },
6557 /*610*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200...........", -1, 0, 1, "" },
6558 /*611*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200............", -1, 0, 2, "" },
6559 /*612*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.............", -1, 0, 1, "" },
6560 /*613*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.", -1, 0, 0, "" },
6561 /*614*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200..", -1, 0, 0, "" },
6562 /*615*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200...", -1, 0, 0, "" },
6563 /*616*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200....", -1, 0, 0, "" },
6564 /*617*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.....", -1, 0, 0, "" },
6565 /*618*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200......", -1, 0, 0, "" },
6566 /*619*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.......", -1, 0, 0, "" },
6567 /*620*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200........", -1, 0, 0, "" },
6568 /*621*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.........", -1, 0, 0, "" },
6569 /*622*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200..........", -1, 0, 0, "" },
6570 /*623*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200...........", -1, 0, 0, "" },
6571 /*624*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200............", -1, 0, 0, "" },
6572 /*625*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.............", -1, 0, 0, "" },
6573 /*626*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.", -1, 0, 0, "ASC last 1" },
6574 /*627*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200..", -1, 0, 0, "ASC 2" },
6575 /*628*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200...", -1, 0, 0, "ASC 3" },
6576 /*629*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200....", -1, 0, 0, "ASC 4" },
6577 /*630*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.....", -1, 0, 0, "ASC 5" },
6578 /*631*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200......", -1, 0, 0, "ASC 6" },
6579 /*632*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.......", -1, 0, 0, "ASC 7" },
6580 /*633*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200........", -1, 0, 0, "EDI 8" },
6581 /*634*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.........", -1, 0, 0, "EDI" },
6582 /*635*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200..........", -1, 0, 1, "BBBAAEEEEEEEE" },
6583 /*636*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200...........", -1, 0, 0, "EDI" },
6584 /*637*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200............", -1, 0, 0, "EDI" },
6585 /*638*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.............", -1, 0, 0, "EDI except last ASC" },
6586 /*639*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200A\200\200\200", -1, 0, 0, "BAS" },
6587 /*640*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AA\200\200\200", -1, 0, 0, "BAS" },
6588 /*641*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAA\200\200\200", -1, 0, 0, "BAS" },
6589 /*642*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAA\200\200\200", -1, 0, 0, "BAS" },
6590 /*643*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAA\200\200\200", -1, 0, 0, "BAS" },
6591 /*644*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAA\200\200\200", -1, 0, 0, "BAS" },
6592 /*645*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAA\200\200\200", -1, 0, 0, "BAS 7 As, no switch as C40 & X12 cancel each other out" },
6593 /*646*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAA\200\200\200", -1, 0, 0, "BAS 8 As, no switch as C40 & X12 cancel each other out" },
6594 /*647*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAA\200\200\200", -1, 0, 0, "BAS 9 As, no switch as C40 & X12 cancel each other out" },
6595 /*648*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 10 As, no switch as C40 & X12 cancel each other out" },
6596 /*649*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 11 As, no switch as C40 & X12 cancel each other out" },
6597 /*650*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 12 As, no switch as C40 & X12 cancel each other out" },
6598 /*651*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 13 As, no switch as C40 & X12 cancel each other out" },
6599 /*652*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009\200\200\200", -1, 0, 0, "BAS" },
6600 /*653*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099\200\200\200", -1, 0, 0, "BAS" },
6601 /*654*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999\200\200\200", -1, 0, 0, "BAS" },
6602 /*655*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999\200\200\200", -1, 0, 0, "ASC 4" },
6603 /*656*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999\200\200\200", -1, 0, 0, "ASC 4" },
6604 /*657*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999\200\200\200", -1, 0, 0, "ASC 6" },
6605 /*658*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999\200\200\200", -1, 0, 0, "ASC 6" },
6606 /*659*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999\200\200\200", -1, 0, 0, "ASC 8" },
6607 /*660*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999\200\200\200", -1, 0, 0, "ASC 8" },
6608 /*661*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999\200\200\200", -1, 0, 0, "ASC 10" },
6609 /*662*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999\200\200\200", -1, 0, 0, "ASC 10" },
6610 /*663*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999\200\200\200", -1, 0, 0, "ASC 12" },
6611 /*664*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999\200\200\200", -1, 0, 0, "ASC 12" },
6612 /*665*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200a\200\200\200", -1, 0, 0, "BAS" },
6613 /*666*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aa\200\200\200", -1, 0, 0, "BAS" },
6614 /*667*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaa\200\200\200", -1, 0, 0, "BAS" },
6615 /*668*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaa\200\200\200", -1, 0, 0, "BAS" },
6616 /*669*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaa\200\200\200", -1, 0, 0, "BAS" },
6617 /*670*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaa\200\200\200", -1, 0, 0, "BAS" },
6618 /*671*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200\200", -1, 0, 0, "7 a's, was worse before dm_text_sp_cnt()" },
6619 /*672*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200", -1, 0, 0, "7 a's end 2 extended, was worse before dm_text_sp_cnt()" },
6620 /*673*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200", -1, 0, 0, "7 a's end 1 extended, was worse before dm_text_sp_cnt()" },
6621 /*674*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa", -1, 0, 0, "7 a's end 0 extended, switches to TEX but same codeword count" },
6622 /*675*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200\200aaaaaaa\200\200", -1, 0, 0, "7 a's, was worse before dm_text_sp_cnt()" },
6623 /*676*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200\200\200aaaaaaa\200\200", -1, 0, 0, "7 a's, was worse before dm_text_sp_cnt()" },
6624 /*677*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200\200\200", -1, 0, 0, "7 a's end 4 extended, was worse before dm_text_sp_cnt()" },
6625 /*678*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200\200\200\200", -1, 0, 0, "7 a's end 5 extended, was worse before dm_text_sp_cnt()" },
6626 /*679*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaa\200\200", -1, 0, 0, "8 a's end 2 extended, was worse before dm_text_sp_cnt()" },
6627 /*680*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaa\200\200\200", -1, 0, 0, "8 a's, was worse before dm_text_sp_cnt()" },
6628 /*681*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaa\200\200\200", -1, 0, 0, "9 a's, was worse before dm_text_sp_cnt()" },
6629 /*682*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaa\200\200\200", -1, 0, 0, "10 a's, was worse before dm_text_sp_cnt()" },
6630 /*683*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaa\200\200\200", -1, 0, 0, "11 a's, was worse before dm_text_sp_cnt()" },
6631 /*684*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaa\200\200\200", -1, 0, 0, "12 a's, switches to TEX but same codeword count" },
6632 /*685*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaa\200\200\200", -1, 0, 0, "13 a's, switches to TEX but same codeword count" },
6633 /*686*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "14 a's, switches to TEX but same codeword count" },
6634 /*687*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "15 a's, switches to TEX, better" },
6635 /*688*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "16 a's, switches to TEX, better" },
6636 /*689*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "17 a's, switches to TEX, better" },
6637 /*690*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "18 a's, switches to TEX, better" },
6638 /*691*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "19 a's, switches to TEX, better" },
6639 /*692*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "20 a's, switches to TEX, better" },
6640 /*693*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "21 a's, switches to TEX, better" },
6641 /*694*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200Aaaaaaa\200\200\200", -1, 0, 0, "" },
6642 /*695*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaAaaa\200\200\200", -1, 0, 0, "" },
6643 /*696*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaA\200\200\200", -1, 0, 0, "" },
6644 /*697*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200Aaaaaaaa\200\200\200", -1, 0, 0, "" },
6645 /*698*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaAaaa\200\200\200", -1, 0, 0, "" },
6646 /*699*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaAa\200\200\200", -1, 0, 0, "" },
6647 /*700*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaA\200\200\200", -1, 0, 0, "Was worse before dm_text_sp_cnt()" },
6648 /*701*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaAa\200\200\200", -1, 0, 0, "Was worse before dm_text_sp_cnt()" },
6649 /*702*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>\200\200\200", -1, 0, 0, "BAS" },
6650 /*703*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>\200\200\200", -1, 0, 0, "BAS" },
6651 /*704*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>\200\200\200", -1, 0, 0, "BAS" },
6652 /*705*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>\200\200\200", -1, 0, 0, "BAS" },
6653 /*706*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>\200\200\200", -1, 0, 0, "BAS" },
6654 /*707*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6655 /*708*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6656 /*709*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6657 /*710*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6658 /*711*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6659 /*712*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6660 /*713*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
6661 /*714*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 12" },
6662 /*715*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 12" },
6663 /*716*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>\200\200\200", -1, 0, 1, "X12 12" },
6664 /*717*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 15" },
6665 /*718*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 15" },
6666 /*719*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 1, "X12 15" },
6667 /*720*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 18" },
6668 /*721*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 18" },
6669 /*722*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 1, "X12 18" },
6670 /*723*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 21" },
6671 /*724*/ { BARCODE_DATAMATRIX, -1, -1, -1, "Aa", -1, 0, 0, "" },
6672 /*725*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAa", -1, 0, 0, "" },
6673 /*726*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAa", -1, 0, 0, "" },
6674 /*727*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAa", -1, 0, 0, "" },
6675 /*728*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAa", -1, 0, 0, "" },
6676 /*729*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAa", -1, 0, 0, "" },
6677 /*730*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAa", -1, 0, 0, "" },
6678 /*731*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAa", -1, 0, 1, "" },
6679 /*732*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAa", -1, 0, 0, "" },
6680 /*733*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAa", -1, 0, 0, "" },
6681 /*734*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAa", -1, 0, 1, "" },
6682 /*735*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAa", -1, 0, 0, "" },
6683 /*736*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAa", -1, 0, 0, "" },
6684 /*737*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAa", -1, 0, 1, "" },
6685 /*738*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAa", -1, 0, 0, "" },
6686 /*739*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A12", -1, 0, 0, "" },
6687 /*740*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA12", -1, 0, 0, "" },
6688 /*741*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA12", -1, 0, 0, "" },
6689 /*742*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA12", -1, 0, 0, "" },
6690 /*743*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA12", -1, 0, 0, "" },
6691 /*744*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA12", -1, 0, 0, "" },
6692 /*745*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA12", -1, 0, 0, "" },
6693 /*746*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA12", -1, 0, 0, "" },
6694 /*747*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA12", -1, 0, 0, "" },
6695 /*748*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA12", -1, 0, 0, "" },
6696 /*749*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA12", -1, 0, 0, "" },
6697 /*750*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA12", -1, 0, 0, "" },
6698 /*751*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA12", -1, 0, 0, "" },
6699 /*752*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA12", -1, 0, 0, "" },
6700 /*753*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA12", -1, 0, 0, "" },
6701 /*754*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A12a", -1, 0, 0, "" },
6702 /*755*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA12a", -1, 0, 0, "" },
6703 /*756*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA12a", -1, 0, 0, "" },
6704 /*757*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA12a", -1, 0, 0, "" },
6705 /*758*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA12a", -1, 0, 0, "" },
6706 /*759*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA12a", -1, 0, 0, "" },
6707 /*760*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA12a", -1, 0, 0, "" },
6708 /*761*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA12a", -1, 0, 0, "" },
6709 /*762*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA12a", -1, 0, 0, "" },
6710 /*763*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA12a", -1, 0, 0, "" },
6711 /*764*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA12a", -1, 0, 0, "" },
6712 /*765*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA12a", -1, 0, 0, "" },
6713 /*766*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA12a", -1, 0, 0, "" },
6714 /*767*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA12a", -1, 0, 0, "" },
6715 /*768*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA12a", -1, 0, 0, "" },
6716 /*769*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A1212", -1, 0, 0, "" },
6717 /*770*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA1212", -1, 0, 0, "" },
6718 /*771*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA1212", -1, 0, 0, "" },
6719 /*772*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA1212", -1, 0, 0, "" },
6720 /*773*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA1212", -1, 0, 0, "" },
6721 /*774*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA1212", -1, 0, 0, "" },
6722 /*775*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA1212", -1, 0, 0, "" },
6723 /*776*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA1212", -1, 0, 0, "" },
6724 /*777*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA1212", -1, 0, 0, "" },
6725 /*778*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA1212", -1, 0, 0, "" },
6726 /*779*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA1212", -1, 0, 0, "" },
6727 /*780*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA1212", -1, 0, 0, "" },
6728 /*781*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA1212", -1, 0, 0, "" },
6729 /*782*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA1212", -1, 0, 0, "" },
6730 /*783*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA1212", -1, 0, 0, "" },
6731 /*784*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".a", -1, 0, 0, "" },
6732 /*785*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..a", -1, 0, 0, "" },
6733 /*786*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...a", -1, 0, 0, "" },
6734 /*787*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....a", -1, 0, 0, "" },
6735 /*788*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....a", -1, 0, 0, "" },
6736 /*789*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......a", -1, 0, 0, "" },
6737 /*790*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......a", -1, 0, 0, "" },
6738 /*791*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........a", -1, 0, 1, "" },
6739 /*792*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........a", -1, 0, 1, "" },
6740 /*793*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........a", -1, 0, 1, "" },
6741 /*794*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........a", -1, 0, 0, "" },
6742 /*795*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............a", -1, 0, 1, "" },
6743 /*796*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............a", -1, 0, 1, "" },
6744 /*797*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............a", -1, 0, 0, "" },
6745 /*798*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............a", -1, 0, 0, "" },
6746 /*799*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".12", -1, 0, 0, "" },
6747 /*800*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..12", -1, 0, 0, "" },
6748 /*801*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...12", -1, 0, 0, "" },
6749 /*802*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....12", -1, 0, 0, "" },
6750 /*803*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....12", -1, 0, 0, "" },
6751 /*804*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......12", -1, 0, 0, "" },
6752 /*805*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......12", -1, 0, 0, "" },
6753 /*806*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........12", -1, 0, 1, "" },
6754 /*807*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........12", -1, 0, 1, "" },
6755 /*808*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........12", -1, 0, 0, "" },
6756 /*809*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........12", -1, 0, 0, "" },
6757 /*810*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............12", -1, 0, 1, "" },
6758 /*811*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............12", -1, 0, 1, "" },
6759 /*812*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............12", -1, 0, 0, "" },
6760 /*813*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............12", -1, 0, 0, "" },
6761 /*814*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".\200", -1, 0, 0, "" },
6762 /*815*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..\200", -1, 0, 0, "" },
6763 /*816*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...\200", -1, 0, 1, "" },
6764 /*817*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....\200", -1, 0, 1, "" },
6765 /*818*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....\200", -1, 0, 1, "" },
6766 /*819*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......\200", -1, 0, 1, "" },
6767 /*820*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......\200", -1, 0, 1, "" },
6768 /*821*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........\200", -1, 0, 1, "" },
6769 /*822*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........\200", -1, 0, 0, "" },
6770 /*823*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........\200", -1, 0, 1, "" },
6771 /*824*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........\200", -1, 0, 0, "" },
6772 /*825*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............\200", -1, 0, 0, "" },
6773 /*826*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............\200", -1, 0, 0, "" },
6774 /*827*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............\200", -1, 0, 1, "" },
6775 /*828*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............\200", -1, 0, 0, "" },
6776 /*829*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".aa", -1, 0, 0, "" },
6777 /*830*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..aa", -1, 0, 0, "" },
6778 /*831*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...aa", -1, 0, 0, "" },
6779 /*832*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....aa", -1, 0, 0, "" },
6780 /*833*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....aa", -1, 0, 0, "" },
6781 /*834*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......aa", -1, 0, 0, "" },
6782 /*835*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......aa", -1, 0, 0, "" },
6783 /*836*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........aa", -1, 0, 0, "" },
6784 /*837*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........aa", -1, 0, 1, "" },
6785 /*838*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........aa", -1, 0, 0, "" },
6786 /*839*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........aa", -1, 0, 0, "" },
6787 /*840*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............aa", -1, 0, 1, "" },
6788 /*841*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............aa", -1, 0, 0, "" },
6789 /*842*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............aa", -1, 0, 0, "" },
6790 /*843*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............aa", -1, 0, 0, "" },
6791 /*844*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".12a", -1, 0, 0, "" },
6792 /*845*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..12a", -1, 0, 0, "" },
6793 /*846*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...12a", -1, 0, 0, "" },
6794 /*847*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....12a", -1, 0, 0, "" },
6795 /*848*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....12a", -1, 0, 0, "" },
6796 /*849*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......12a", -1, 0, 0, "" },
6797 /*850*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......12a", -1, 0, 0, "" },
6798 /*851*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........12a", -1, 0, 0, "" },
6799 /*852*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........12a", -1, 0, 1, "" },
6800 /*853*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........12a", -1, 0, 1, "" },
6801 /*854*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........12a", -1, 0, 0, "" },
6802 /*855*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............12a", -1, 0, 1, "" },
6803 /*856*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............12a", -1, 0, 0, "" },
6804 /*857*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............12a", -1, 0, 0, "" },
6805 /*858*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............12a", -1, 0, 0, "" },
6806 /*859*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".a12", -1, 0, 0, "" },
6807 /*860*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..a12", -1, 0, 0, "" },
6808 /*861*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...a12", -1, 0, 0, "" },
6809 /*862*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....a12", -1, 0, 0, "" },
6810 /*863*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....a12", -1, 0, 0, "" },
6811 /*864*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......a12", -1, 0, 0, "" },
6812 /*865*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......a12", -1, 0, 0, "" },
6813 /*866*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........a12", -1, 0, 0, "" },
6814 /*867*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........a12", -1, 0, 1, "" },
6815 /*868*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........a12", -1, 0, 0, "" },
6816 /*869*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........a12", -1, 0, 0, "" },
6817 /*870*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............a12", -1, 0, 1, "" },
6818 /*871*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............a12", -1, 0, 0, "" },
6819 /*872*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............a12", -1, 0, 0, "" },
6820 /*873*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............a12", -1, 0, 0, "" },
6821 /*874*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".1212", -1, 0, 0, "" },
6822 /*875*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..1212", -1, 0, 0, "" },
6823 /*876*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...1212", -1, 0, 0, "" },
6824 /*877*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....1212", -1, 0, 0, "" },
6825 /*878*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....1212", -1, 0, 0, "" },
6826 /*879*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......1212", -1, 0, 0, "" },
6827 /*880*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......1212", -1, 0, 0, "" },
6828 /*881*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........1212", -1, 0, 0, "" },
6829 /*882*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........1212", -1, 0, 1, "" },
6830 /*883*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........1212", -1, 0, 1, "" },
6831 /*884*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........1212", -1, 0, 0, "" },
6832 /*885*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............1212", -1, 0, 1, "" },
6833 /*886*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............1212", -1, 0, 0, "" },
6834 /*887*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............1212", -1, 0, 0, "" },
6835 /*888*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............1212", -1, 0, 0, "" },
6836 /*889*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">a", -1, 0, 0, "" },
6837 /*890*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>a", -1, 0, 0, "" },
6838 /*891*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>a", -1, 0, 0, "" },
6839 /*892*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>a", -1, 0, 0, "" },
6840 /*893*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>a", -1, 0, 0, "" },
6841 /*894*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>a", -1, 0, 0, "" },
6842 /*895*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>a", -1, 0, 0, "" },
6843 /*896*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>a", -1, 0, 1, "" },
6844 /*897*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>a", -1, 0, 1, "" },
6845 /*898*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>a", -1, 0, 1, "" },
6846 /*899*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>a", -1, 0, 1, "" },
6847 /*900*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>a", -1, 0, 2, "" },
6848 /*901*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>a", -1, 0, 0, "" },
6849 /*902*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>a", -1, 0, 0, "" },
6850 /*903*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>a", -1, 0, 1, "" },
6851 /*904*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">12", -1, 0, 0, "" },
6852 /*905*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>12", -1, 0, 0, "" },
6853 /*906*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>12", -1, 0, 0, "" },
6854 /*907*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>12", -1, 0, 0, "" },
6855 /*908*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>12", -1, 0, 0, "" },
6856 /*909*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>12", -1, 0, 0, "" },
6857 /*910*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>12", -1, 0, 0, "" },
6858 /*911*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>12", -1, 0, 0, "" },
6859 /*912*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>12", -1, 0, 0, "" },
6860 /*913*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>12", -1, 0, 0, "" },
6861 /*914*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>12", -1, 0, 0, "" },
6862 /*915*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>12", -1, 0, 0, "" },
6863 /*916*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>12", -1, 0, 0, "" },
6864 /*917*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>12", -1, 0, 0, "" },
6865 /*918*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>12", -1, 0, 0, "" },
6866 /*919*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">\200", -1, 0, 0, "" },
6867 /*920*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>\200", -1, 0, 0, "" },
6868 /*921*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>\200", -1, 0, 1, "" },
6869 /*922*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>\200", -1, 0, 1, "" },
6870 /*923*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>\200", -1, 0, 1, "" },
6871 /*924*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>\200", -1, 0, 1, "" },
6872 /*925*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>\200", -1, 0, 1, "" },
6873 /*926*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>\200", -1, 0, 1, "" },
6874 /*927*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>\200", -1, 0, 1, "" },
6875 /*928*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>\200", -1, 0, 2, "" },
6876 /*929*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>\200", -1, 0, 2, "" },
6877 /*930*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>\200", -1, 0, 2, "" },
6878 /*931*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>\200", -1, 0, 0, "" },
6879 /*932*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>\200", -1, 0, 0, "" },
6880 /*933*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>\200", -1, 0, 1, "" },
6881 /*934*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">aa", -1, 0, 0, "" },
6882 /*935*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>aa", -1, 0, 0, "" },
6883 /*936*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>aa", -1, 0, 0, "" },
6884 /*937*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>aa", -1, 0, 0, "" },
6885 /*938*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>aa", -1, 0, 0, "" },
6886 /*939*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>aa", -1, 0, 0, "" },
6887 /*940*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>aa", -1, 0, 0, "" },
6888 /*941*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>aa", -1, 0, 0, "" },
6889 /*942*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>aa", -1, 0, 1, "" },
6890 /*943*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>aa", -1, 0, 1, "" },
6891 /*944*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>aa", -1, 0, 1, "" },
6892 /*945*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>aa", -1, 0, 2, "" },
6893 /*946*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>aa", -1, 0, 0, "" },
6894 /*947*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>aa", -1, 0, 0, "XXXXXXXXXXXXAAAA" },
6895 /*948*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>aa", -1, 0, 0, "EEEEEEEEEEEEEEEAA" },
6896 /*949*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">12a", -1, 0, 0, "" },
6897 /*950*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>12a", -1, 0, 0, "" },
6898 /*951*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>12a", -1, 0, 0, "" },
6899 /*952*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>12a", -1, 0, 0, "" },
6900 /*953*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>12a", -1, 0, 0, "" },
6901 /*954*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>12a", -1, 0, 0, "" },
6902 /*955*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>12a", -1, 0, 0, "" },
6903 /*956*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>12a", -1, 0, 0, "" },
6904 /*957*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>12a", -1, 0, 1, "" },
6905 /*958*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>12a", -1, 0, 1, "" },
6906 /*959*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>12a", -1, 0, 0, "" },
6907 /*960*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>12a", -1, 0, 0, "" },
6908 /*961*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>12a", -1, 0, 0, "" },
6909 /*962*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>12a", -1, 0, 0, "" },
6910 /*963*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>12a", -1, 0, 0, "" },
6911 /*964*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">a12", -1, 0, 0, "" },
6912 /*965*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>a12", -1, 0, 0, "" },
6913 /*966*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>a12", -1, 0, 0, "" },
6914 /*967*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>a12", -1, 0, 0, "" },
6915 /*968*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>a12", -1, 0, 0, "" },
6916 /*969*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>a12", -1, 0, 0, "" },
6917 /*970*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>a12", -1, 0, 0, "" },
6918 /*971*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>a12", -1, 0, 0, "" },
6919 /*972*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>a12", -1, 0, 1, "" },
6920 /*973*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>a12", -1, 0, 1, "" },
6921 /*974*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>a12", -1, 0, 1, "" },
6922 /*975*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>a12", -1, 0, 2, "" },
6923 /*976*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>a12", -1, 0, 0, "" },
6924 /*977*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>a12", -1, 0, 0, "" },
6925 /*978*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>a12", -1, 0, 1, "" },
6926 /*979*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">1212", -1, 0, 0, "" },
6927 /*980*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>1212", -1, 0, 0, "" },
6928 /*981*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>1212", -1, 0, 0, "" },
6929 /*982*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>1212", -1, 0, 0, "" },
6930 /*983*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>1212", -1, 0, 0, "" },
6931 /*984*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>1212", -1, 0, 0, "" },
6932 /*985*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>1212", -1, 0, 0, "" },
6933 /*986*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>1212", -1, 0, 0, "" },
6934 /*987*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>1212", -1, 0, 0, "" },
6935 /*988*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>1212", -1, 0, 0, "" },
6936 /*989*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>1212", -1, 0, 0, "" },
6937 /*990*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>1212", -1, 0, 0, "EEEEEEEEEEEEAAAA" },
6938 /*991*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>1212", -1, 0, 0, "XXXXXXXXXXXXAAAAA" },
6939 /*992*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>1212", -1, 0, 0, "XXXXXXXXXXXXAAAAAA" },
6940 /*993*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>1212", -1, 0, 0, "" },
6941 /*994*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200|||||||||||||", -1, 0, 0, "Variant 1 last 3 ASC" },
6942 /*995*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA|||||||||||AAAAAAAAAAAAAAA", -1, 0, 1, "" },
6943 /*996*/ { BARCODE_DATAMATRIX, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM" "NOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJK" "LMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFG" "HIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567" "890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcde" "fghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO", -1, 0, 10, "960 chars, text/numeric" },
6944 /*997*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\000\004\a\b\t\n\v\f\r\033\035\036\201\\", 14, 0, 1, "From test_library escape_char_process 0, variant 1 later switch to B256 and changes to ASC for last 2 chars" },
6945 /*998*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA*+*0**AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 2, "" },
6946 /*999*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 0, "" },
6947 /*1000*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177", 128, 0, 0, "" },
6948 /*1001*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, "\200\200\200\035\200\200\035\200\200", -1, 0, 1, "Can't have extended ASCII in GS1 mode so these will never happen" },
6949 /*1002*/ { BARCODE_DATAMATRIX, GS1_MODE, GS1_GS_SEPARATOR, -1, "\200\200\200\035\200\200\035\200\200", -1, 0, 0, "" },
6950 /*1003*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, "\200\200\200\200\035\200\200\200\035\200\200", -1, 0, 1, "Stays in ASC after 1st FNC1" },
6951 /*1004*/ { BARCODE_DATAMATRIX, GS1_MODE, GS1_GS_SEPARATOR, -1, "\200\200\200\200\035\200\200\200\035\200\200", -1, 0, 0, "" },
6952 /*1005*/ { BARCODE_DATAMATRIX, -1, -1, -1, "https://example.com/01/09506000134369", -1, 0, 0, "" },
6953 /*1006*/ { BARCODE_DATAMATRIX, -1, -1, -1, "abcdefghi1234FGHIJKLMNabc@@@@@@@@@é", -1, 0, 0, "" },
6954 /*1007*/ { BARCODE_DATAMATRIX, -1, -1, -1, "ABCDEF", -1, 0, 0, "" },
6955 /*1008*/ { BARCODE_DATAMATRIX, -1, -1, -1, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", -1, 0, 0, "" },
6956 /*1009*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200@A1^B2?C", -1, 0, 0, "" },
6957 /*1010*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^\200\200\200", -1, 0, 0, "" },
6958 /*1011*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@\200\200\200", -1, 0, 0, "" },
6959 /*1012*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@D\200\200\200", -1, 0, 0, "" },
6960 /*1013*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@D4\200\200\200", -1, 0, 0, "" },
6961 /*1014*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@D4@\200\200\200", -1, 0, 0, "" },
6962 /*1015*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200@A1^B2?C\200\200\200", -1, 0, 0, "" },
6963 /*1016*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@@@@@@@@@_", -1, 0, 1, "" },
6964 };
6965 const int data_size = ARRAY_SIZE(data);
6966 int i, length, ret;
6967 struct zint_symbol *symbol = NULL;
6968
6969 unsigned char binary[2][2200];
6970 int gs1;
6971 int binlen;
6972 int binlens[2] = {0};
6973
6974 testStartSymbol("test_minimalenc", &symbol);
6975
6976 for (i = 0; i < data_size; i++) {
6977
6978 if (testContinue(p_ctx, i)) continue;
6979
6980 symbol = ZBarcode_Create();
6981 assert_nonnull(symbol, "Symbol not created\n");
6982
6983 length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, data[i].output_options, data[i].data, data[i].length, debug);
6984
6985 binlen = 0;
6986 symbol->input_mode |= FAST_MODE;
6987 gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
6988 ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[0], &binlen);
6989 assert_equal(ret, data[i].ret, "i:%d dm_encode() FAST_MODE ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
6990
6991 binlens[0] = binlen;
6992
6993 binlen = 0;
6994 symbol->input_mode &= ~FAST_MODE;
6995 gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
6996 ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[1], &binlen);
6997 assert_equal(ret, data[i].ret, "i:%d dm_encode() minimal ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
6998
6999 binlens[1] = binlen;
7000
7001 fflush(stdout);
7002 assert_equal(binlens[0], binlens[1] + data[i].expected_diff, "i:%d binlens[0] %d != %d binlens[1] (%d) + expected_diff (%d)\n",
7003 i, binlens[0], binlens[1] + data[i].expected_diff, binlens[1], data[i].expected_diff);
7004
7005 if (debug & ZINT_DEBUG_TEST_PRINT) {
7006 if (data[i].expected_diff == 0) {
7007 if (memcmp(binary[0], binary[1], binlen) != 0) {
7008 printf("i:%d binaries differ\n", i);
7009 }
7010 } else {
7011 printf("i:%d diff %d%s\n", i, data[i].expected_diff, data[i].expected_diff < 0 ? " ***worse***" : "");
7012 }
7013 }
7014
7015 ZBarcode_Delete(symbol);
7016 }
7017
7018 testFinish();
7019 }
7020 #endif
7021
7022 #include <time.h>
7023
7024 #if 1
7025 #define TEST_PERF_ITER_MILLES 5
7026 #define TEST_PERF_ITERATIONS (TEST_PERF_ITER_MILLES * 1000)
7027 #else
7028 #define TEST_PERF_ITERATIONS 100 /* For valgrind */
7029 #endif
7030 #define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
7031
7032 /* Not a real test, just performance indicator */
7033 static void test_perf(const testCtx *const p_ctx) {
7034 int debug = p_ctx->debug;
7035
7036 struct item {
7037 int symbology;
7038 int input_mode;
7039 int option_2;
7040 int option_3;
7041 char *data;
7042 int ret;
7043
7044 int expected_rows;
7045 int expected_width;
7046 char *comment;
7047 };
7048 static const struct item data[] = {
7049 /* 0*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1,
7050 "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"
7051 "NOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJK"
7052 "LMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFG"
7053 "HIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567"
7054 "890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcde"
7055 "fghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO",
7056 0, 96, 96, "960 chars, text/numeric" },
7057 /* 1*/ { BARCODE_DATAMATRIX, -1, -1, -1,
7058 "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"
7059 "NOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJK"
7060 "LMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFG"
7061 "HIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567"
7062 "890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcde"
7063 "fghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO",
7064 0, 96, 96, "960 chars, text/numeric" },
7065 /* 2*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1,
7066 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7067 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7068 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7069 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7070 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7071 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7072 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7073 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7074 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7075 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7076 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7077 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7078 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7079 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7080 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7081 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7082 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7083 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7084 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7085 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7086 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7087 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7088 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7089 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240",
7090 0, 120, 120, "960 chars, byte" },
7091 /* 3*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1,
7092 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7093 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7094 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7095 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7096 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7097 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7098 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7099 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7100 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7101 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7102 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7103 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7104 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7105 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7106 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7107 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7108 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7109 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7110 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7111 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7112 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7113 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7114 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
7115 "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240",
7116 0, 120, 120, "960 chars, byte" },
7117 /* 4*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, "https://example.com/01/09506000134369", 0, 22, 22, "37 chars, text/numeric" },
7118 /* 5*/ { BARCODE_DATAMATRIX, -1, -1, -1, "https://example.com/01/09506000134369", 0, 22, 22, "37 chars, text/numeric" },
7119 };
7120 const int data_size = ARRAY_SIZE(data);
7121 int i, length, ret;
7122 struct zint_symbol *symbol;
7123
7124 clock_t start;
7125 clock_t total_create = 0, total_encode = 0, total_buffer = 0, total_buf_inter = 0, total_print = 0;
7126 clock_t diff_create, diff_encode, diff_buffer, diff_buf_inter, diff_print;
7127 int comment_max = 0;
7128
7129 if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
7130 return;
7131 }
7132
7133 for (i = 0; i < data_size; i++) if ((int) strlen(data[i].comment) > comment_max) comment_max = (int) strlen(data[i].comment);
7134
7135 printf("Iterations %d\n", TEST_PERF_ITERATIONS);
7136
7137 for (i = 0; i < data_size; i++) {
7138 int j;
7139
7140 if (testContinue(p_ctx, i)) continue;
7141
7142 diff_create = diff_encode = diff_buffer = diff_buf_inter = diff_print = 0;
7143
7144 for (j = 0; j < TEST_PERF_ITERATIONS; j++) {
7145 start = clock();
7146 symbol = ZBarcode_Create();
7147 diff_create += clock() - start;
7148 assert_nonnull(symbol, "Symbol not created\n");
7149
7150 length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, data[i].option_3, -1 /*output_options*/, data[i].data, -1, debug);
7151
7152 start = clock();
7153 ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
7154 diff_encode += clock() - start;
7155 assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
7156
7157 assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
7158 assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
7159
7160 start = clock();
7161 ret = ZBarcode_Buffer(symbol, 0 /*rotate_angle*/);
7162 diff_buffer += clock() - start;
7163 assert_zero(ret, "i:%d ZBarcode_Buffer ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
7164
7165 symbol->output_options |= OUT_BUFFER_INTERMEDIATE;
7166 start = clock();
7167 ret = ZBarcode_Buffer(symbol, 0 /*rotate_angle*/);
7168 diff_buf_inter += clock() - start;
7169 assert_zero(ret, "i:%d ZBarcode_Buffer OUT_BUFFER_INTERMEDIATE ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
7170 symbol->output_options &= ~OUT_BUFFER_INTERMEDIATE; /* Undo */
7171
7172 start = clock();
7173 ret = ZBarcode_Print(symbol, 0 /*rotate_angle*/);
7174 diff_print += clock() - start;
7175 assert_zero(ret, "i:%d ZBarcode_Print ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
7176 assert_zero(testUtilRemove(symbol->outfile), "i:%d testUtilRemove(%s) != 0\n", i, symbol->outfile);
7177
7178 ZBarcode_Delete(symbol);
7179 }
7180
7181 printf("%*s: encode % 8gms, buffer % 8gms, buf_inter % 8gms, print % 8gms, create % 8gms\n", comment_max, data[i].comment,
7182 TEST_PERF_TIME(diff_encode), TEST_PERF_TIME(diff_buffer), TEST_PERF_TIME(diff_buf_inter), TEST_PERF_TIME(diff_print), TEST_PERF_TIME(diff_create));
7183
7184 total_create += diff_create;
7185 total_encode += diff_encode;
7186 total_buffer += diff_buffer;
7187 total_buf_inter += diff_buf_inter;
7188 total_print += diff_print;
7189 }
7190 if (p_ctx->index == -1) {
7191 printf("%*s: encode % 8gms, buffer % 8gms, buf_inter % 8gms, print % 8gms, create % 8gms\n", comment_max, "totals",
7192 TEST_PERF_TIME(total_encode), TEST_PERF_TIME(total_buffer), TEST_PERF_TIME(total_buf_inter), TEST_PERF_TIME(total_print), TEST_PERF_TIME(total_create));
7193 }
7194 }
7195
7196 int main(int argc, char *argv[]) {
7197
7198 testFunction funcs[] = { /* name, func */
7199 { "test_large", test_large },
7200 { "test_buffer", test_buffer },
7201 { "test_options", test_options },
7202 { "test_reader_init", test_reader_init },
7203 { "test_input", test_input },
7204 { "test_encode", test_encode },
7205 { "test_encode_segs", test_encode_segs },
7206 #ifdef ZINT_TEST_ENCODING
7207 { "test_minimalenc", test_minimalenc },
7208 #endif
7209 { "test_perf", test_perf },
7210 };
7211
7212 testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
7213
7214 testReport();
7215
7216 return 0;
7217 }
7218
7219 /* vim: set ts=4 sw=4 et : */