blob: 6e8d6cca393007e30856f9abe5a23430f293e310 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001
2/*
3 * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation. Sun designates this
9 * particular file as subject to the "Classpath" exception as provided
10 * by Sun in the LICENSE file that accompanied this code.
11 *
12 * This code is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * version 2 for more details (a copy is included in the LICENSE file that
16 * accompanied this code).
17 *
18 * You should have received a copy of the GNU General Public License version
19 * 2 along with this work; if not, write to the Free Software Foundation,
20 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21 *
22 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
23 * CA 95054 USA or visit www.sun.com if you need additional information or
24 * have any questions.
25 */
26
27package sun.nio.cs.ext;
28
29import java.nio.ByteBuffer;
30import java.nio.CharBuffer;
31import java.nio.charset.Charset;
32import java.nio.charset.CharsetDecoder;
33import java.nio.charset.CharsetEncoder;
34import java.nio.charset.CharacterCodingException;
35import java.nio.charset.MalformedInputException;
36import java.nio.charset.UnmappableCharacterException;
37import sun.nio.cs.StandardCharsets;
38import sun.nio.cs.SingleByteDecoder;
39import sun.nio.cs.SingleByteEncoder;
40import sun.nio.cs.HistoricallyNamedCharset;
41
42public class MS1258
43 extends Charset
44 implements HistoricallyNamedCharset
45{
46
47 public String historicalName() {
48 return "Cp1258";
49 }
50
51 public MS1258() {
52 super("windows-1258", ExtendedCharsets.aliasesFor("windows-1258"));
53 }
54
55 public boolean contains(Charset cs) {
56 return ((cs.name().equals("US-ASCII"))
57 || (cs instanceof MS1258));
58 }
59
60 public CharsetDecoder newDecoder() {
61 return new Decoder(this);
62 }
63
64 public CharsetEncoder newEncoder() {
65 return new Encoder(this);
66 }
67
68
69 /**
70 * These accessors are temporarily supplied while sun.io
71 * converters co-exist with the sun.nio.cs.{ext} charset coders
72 * These facilitate sharing of conversion tables between the
73 * two co-existing implementations. When sun.io converters
74 * are made extinct these will be unncessary and should be removed
75 */
76
77 public String getDecoderSingleByteMappings() {
78 return MS1258.Decoder.byteToCharTable;
79 }
80
81 public short[] getEncoderIndex1() {
82 return MS1258.Encoder.index1;
83 }
84
85 public String getEncoderIndex2() {
86 return MS1258.Encoder.index2;
87 }
88
89 private static class Decoder extends SingleByteDecoder {
90 public Decoder(Charset cs) {
91 super(cs, byteToCharTable);
92 }
93
94 private final static String byteToCharTable =
95
96 "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87
97 "\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F
98 "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97
99 "\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178" + // 0x98 - 0x9F
100 "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7
101 "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF
102 "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7
103 "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF
104 "\u00C0\u00C1\u00C2\u0102\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7
105 "\u00C8\u00C9\u00CA\u00CB\u0300\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF
106 "\u0110\u00D1\u0309\u00D3\u00D4\u01A0\u00D6\u00D7" + // 0xD0 - 0xD7
107 "\u00D8\u00D9\u00DA\u00DB\u00DC\u01AF\u0303\u00DF" + // 0xD8 - 0xDF
108 "\u00E0\u00E1\u00E2\u0103\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7
109 "\u00E8\u00E9\u00EA\u00EB\u0301\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF
110 "\u0111\u00F1\u0323\u00F3\u00F4\u01A1\u00F6\u00F7" + // 0xF0 - 0xF7
111 "\u00F8\u00F9\u00FA\u00FB\u00FC\u01B0\u20AB\u00FF" + // 0xF8 - 0xFF
112 "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07
113 "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F
114 "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17
115 "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F
116 "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27
117 "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F
118 "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37
119 "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F
120 "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47
121 "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F
122 "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57
123 "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F
124 "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67
125 "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F
126 "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77
127 "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F
128 }
129
130 private static class Encoder extends SingleByteEncoder {
131 public Encoder(Charset cs) {
132 super(cs, index1, index2, 0xFF00, 0x00FF, 8);
133 }
134
135 private final static String index2 =
136
137 "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" +
138 "\b\t\n\u000B\f\r\u000E\u000F" +
139 "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" +
140 "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" +
141 "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" +
142 "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" +
143 "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" +
144 "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" +
145 "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" +
146 "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" +
147 "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" +
148 "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" +
149 "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" +
150 "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" +
151 "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" +
152 "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" +
153 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
154 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
155 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
156 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
157 "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" +
158 "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" +
159 "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" +
160 "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" +
161 "\u00C0\u00C1\u00C2\u0000\u00C4\u00C5\u00C6\u00C7" +
162 "\u00C8\u00C9\u00CA\u00CB\u0000\u00CD\u00CE\u00CF" +
163 "\u0000\u00D1\u0000\u00D3\u00D4\u0000\u00D6\u00D7" +
164 "\u00D8\u00D9\u00DA\u00DB\u00DC\u0000\u0000\u00DF" +
165 "\u00E0\u00E1\u00E2\u0000\u00E4\u00E5\u00E6\u00E7" +
166 "\u00E8\u00E9\u00EA\u00EB\u0000\u00ED\u00EE\u00EF" +
167 "\u0000\u00F1\u0000\u00F3\u00F4\u0000\u00F6\u00F7" +
168 "\u00F8\u00F9\u00FA\u00FB\u00FC\u0000\u0000\u00FF" +
169 "\u0000\u0000\u00C3\u00E3\u0000\u0000\u0000\u0000" +
170 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
171 "\u00D0\u00F0\u0000\u0000\u0000\u0000\u0000\u0000" +
172 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
173 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
174 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
175 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
176 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
177 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
178 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
179 "\u0000\u0000\u008C\u009C\u0000\u0000\u0000\u0000" +
180 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
181 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
182 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
183 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
184 "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
185 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
186 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
187 "\u0000\u0000\u0083\u0000\u0000\u0000\u0000\u0000" +
188 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
189 "\u00D5\u00F5\u0000\u0000\u0000\u0000\u0000\u0000" +
190 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DD" +
191 "\u00FD\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
192 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
193 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
194 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
195 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
196 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
197 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
198 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
199 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
200 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
201 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
202 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
203 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
204 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
205 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
206 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
207 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
208 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
209 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
210 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
211 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
212 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
213 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
214 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
215 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
216 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
217 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
218 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
219 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
220 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
221 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
222 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
223 "\u0000\u0088\u0000\u0000\u0000\u0000\u0000\u0000" +
224 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
225 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0098" +
226 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
227 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
228 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
229 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
230 "\u0000\u0000\u0000\u00CC\u00EC\u0000\u00DE\u0000" +
231 "\u0000\u0000\u0000\u0000\u00D2\u0000\u0000\u0000" +
232 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
233 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
234 "\u0000\u0000\u0000\u0000\u0000\u0000\u00F2\u0000" +
235 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
236 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
237 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
238 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
239 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
240 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
241 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
242 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
243 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
244 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
245 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
246 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
247 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
248 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
249 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
250 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
251 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
252 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
253 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
254 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
255 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
256 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
257 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
258 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
259 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
260 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
261 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
262 "\u0000\u0000\u0000\u0096\u0097\u0000\u0000\u0000" +
263 "\u0091\u0092\u0082\u0000\u0093\u0094\u0084\u0000" +
264 "\u0086\u0087\u0095\u0000\u0000\u0000\u0085\u0000" +
265 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
266 "\u0089\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
267 "\u0000\u008B\u009B\u0000\u0000\u0000\u0000\u0000" +
268 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
269 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
270 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
271 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
272 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
273 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
274 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
275 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
276 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
277 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
278 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
279 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
280 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
281 "\u0000\u0000\u0000\u00FE\u0080\u0000\u0000\u0000" +
282 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
283 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
284 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
285 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
286 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
287 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
288 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
289 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
290 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
291 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
292 "\u0099\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
293 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
294 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
295 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
296 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
297 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
298 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
299 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
300 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
301 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
302 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
303 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
304 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
305 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
306 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
307 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
308 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
309 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
310 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
311 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
312 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
313 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
314 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
315 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
316 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
317 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
318 "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" +
319 "\u0000\u0000\u0000\u0000\u0000\u0000";
320
321 private final static short index1[] = {
322 0, 256, 491, 747, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
323 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
324 984, 1206, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
325 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
326 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
327 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
328 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
329 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
330 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
331 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
332 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
333 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
334 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
335 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
336 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
337 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
338 };
339 }
340}