rtoss - Blame information for rev 26

Subversion Repositories:
Rev:
<
Rev Author Line No. Line
14 roytam 1 /*
2  * libmad - MPEG audio decoder library
26 roytam 3  * Copyright (C) 2000-2004 Underbit Technologies, Inc.
14 roytam 4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  *
26 roytam 19  * $Id: huffman.c,v 1.10 2004/01/23 09:41:32 rob Exp $
14 roytam 20  */
21  
22 # ifdef HAVE_CONFIG_H
23 #  include "config.h"
24 # endif
25  
26 # include "global.h"
27  
28 # include "huffman.h"
29  
30 /*
31  * These are the Huffman code words for Layer III.
32  * The data for these tables are derived from Table B.7 of ISO/IEC 11172-3.
33  *
34  * These tables support decoding up to 4 Huffman code bits at a time.
35  */
36  
26 roytam 37 # if defined(__GNUC__) ||  \
38     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
39 #  define PTR(offs, bits)       { .ptr   = { 0, bits, offs       } }
40 #  define V(v, w, x, y, hlen)   { .value = { 1, hlen, v, w, x, y } }
14 roytam 41 # else
42 #  define PTR(offs, bits)       { { 0, bits, offs } }
26 roytam 43 #  if defined(WORDS_BIGENDIAN)
44 #   define V(v, w, x, y, hlen)  { { 1, hlen, (v << 11) | (w << 10) |  \
45                                              (x <<  9) | (y <<  8) } }
46 #  else
47 #   define V(v, w, x, y, hlen)  { { 1, hlen, (v <<  0) | (w <<  1) |  \
48                                              (x <<  2) | (y <<  3) } }
49 #  endif
14 roytam 50 # endif
51  
52 static
53 union huffquad const hufftabA[] = {
54   /* 0000 */ PTR(16, 2),
55   /* 0001 */ PTR(20, 2),
56   /* 0010 */ PTR(24, 1),
57   /* 0011 */ PTR(26, 1),
58   /* 0100 */ V(0, 0, 1, 0, 4),
59   /* 0101 */ V(0, 0, 0, 1, 4),
60   /* 0110 */ V(0, 1, 0, 0, 4),
61   /* 0111 */ V(1, 0, 0, 0, 4),
62   /* 1000 */ V(0, 0, 0, 0, 1),
63   /* 1001 */ V(0, 0, 0, 0, 1),
64   /* 1010 */ V(0, 0, 0, 0, 1),
65   /* 1011 */ V(0, 0, 0, 0, 1),
66   /* 1100 */ V(0, 0, 0, 0, 1),
67   /* 1101 */ V(0, 0, 0, 0, 1),
68   /* 1110 */ V(0, 0, 0, 0, 1),
69   /* 1111 */ V(0, 0, 0, 0, 1),
70  
71   /* 0000 ... */
72   /* 00   */ V(1, 0, 1, 1, 2),  /* 16 */
73   /* 01   */ V(1, 1, 1, 1, 2),
74   /* 10   */ V(1, 1, 0, 1, 2),
75   /* 11   */ V(1, 1, 1, 0, 2),
76  
77   /* 0001 ... */
78   /* 00   */ V(0, 1, 1, 1, 2),  /* 20 */
79   /* 01   */ V(0, 1, 0, 1, 2),
80   /* 10   */ V(1, 0, 0, 1, 1),
81   /* 11   */ V(1, 0, 0, 1, 1),
82  
83   /* 0010 ... */
84   /* 0    */ V(0, 1, 1, 0, 1),  /* 24 */
85   /* 1    */ V(0, 0, 1, 1, 1),
86  
87   /* 0011 ... */
88   /* 0    */ V(1, 0, 1, 0, 1),  /* 26 */
89   /* 1    */ V(1, 1, 0, 0, 1)
90 };
91  
92 static
93 union huffquad const hufftabB[] = {
94   /* 0000 */ V(1, 1, 1, 1, 4),
95   /* 0001 */ V(1, 1, 1, 0, 4),
96   /* 0010 */ V(1, 1, 0, 1, 4),
97   /* 0011 */ V(1, 1, 0, 0, 4),
98   /* 0100 */ V(1, 0, 1, 1, 4),
99   /* 0101 */ V(1, 0, 1, 0, 4),
100   /* 0110 */ V(1, 0, 0, 1, 4),
101   /* 0111 */ V(1, 0, 0, 0, 4),
102   /* 1000 */ V(0, 1, 1, 1, 4),
103   /* 1001 */ V(0, 1, 1, 0, 4),
104   /* 1010 */ V(0, 1, 0, 1, 4),
105   /* 1011 */ V(0, 1, 0, 0, 4),
106   /* 1100 */ V(0, 0, 1, 1, 4),
107   /* 1101 */ V(0, 0, 1, 0, 4),
108   /* 1110 */ V(0, 0, 0, 1, 4),
109   /* 1111 */ V(0, 0, 0, 0, 4)
110 };
111  
112 # undef V
113 # undef PTR
114  
26 roytam 115 # if defined(__GNUC__) ||  \
116     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901)
117 #  define PTR(offs, bits)       { .ptr   = { 0, bits, offs } }
118 #  define V(x, y, hlen)         { .value = { 1, hlen, x, y } }
14 roytam 119 # else
120 #  define PTR(offs, bits)       { { 0, bits, offs } }
26 roytam 121 #  if defined(WORDS_BIGENDIAN)
122 #   define V(x, y, hlen)        { { 1, hlen, (x << 8) | (y << 4) } }
123 #  else
124 #   define V(x, y, hlen)        { { 1, hlen, (x << 0) | (y << 4) } }
125 #  endif
14 roytam 126 # endif
127  
128 static
129 union huffpair const hufftab0[] = {
130   /*      */ V(0, 0, 0)
131 };
132  
133 static
134 union huffpair const hufftab1[] = {
135   /* 000  */ V(1, 1, 3),
136   /* 001  */ V(0, 1, 3),
137   /* 010  */ V(1, 0, 2),
138   /* 011  */ V(1, 0, 2),
139   /* 100  */ V(0, 0, 1),
140   /* 101  */ V(0, 0, 1),
141   /* 110  */ V(0, 0, 1),
142   /* 111  */ V(0, 0, 1)
143 };
144  
145 static
146 union huffpair const hufftab2[] = {
147   /* 000  */ PTR(8, 3),
148   /* 001  */ V(1, 1, 3),
149   /* 010  */ V(0, 1, 3),
150   /* 011  */ V(1, 0, 3),
151   /* 100  */ V(0, 0, 1),
152   /* 101  */ V(0, 0, 1),
153   /* 110  */ V(0, 0, 1),
154   /* 111  */ V(0, 0, 1),
155  
156   /* 000 ... */
157   /* 000  */ V(2, 2, 3),        /* 8 */
158   /* 001  */ V(0, 2, 3),
159   /* 010  */ V(1, 2, 2),
160   /* 011  */ V(1, 2, 2),
161   /* 100  */ V(2, 1, 2),
162   /* 101  */ V(2, 1, 2),
163   /* 110  */ V(2, 0, 2),
164   /* 111  */ V(2, 0, 2)
165 };
166  
167 static
168 union huffpair const hufftab3[] = {
169   /* 000  */ PTR(8, 3),
170   /* 001  */ V(1, 0, 3),
171   /* 010  */ V(1, 1, 2),
172   /* 011  */ V(1, 1, 2),
173   /* 100  */ V(0, 1, 2),
174   /* 101  */ V(0, 1, 2),
175   /* 110  */ V(0, 0, 2),
176   /* 111  */ V(0, 0, 2),
177  
178   /* 000 ... */
179   /* 000  */ V(2, 2, 3),        /* 8 */
180   /* 001  */ V(0, 2, 3),
181   /* 010  */ V(1, 2, 2),
182   /* 011  */ V(1, 2, 2),
183   /* 100  */ V(2, 1, 2),
184   /* 101  */ V(2, 1, 2),
185   /* 110  */ V(2, 0, 2),
186   /* 111  */ V(2, 0, 2)
187 };
188  
189 static
190 union huffpair const hufftab5[] = {
191   /* 000  */ PTR(8, 4),
192   /* 001  */ V(1, 1, 3),
193   /* 010  */ V(0, 1, 3),
194   /* 011  */ V(1, 0, 3),
195   /* 100  */ V(0, 0, 1),
196   /* 101  */ V(0, 0, 1),
197   /* 110  */ V(0, 0, 1),
198   /* 111  */ V(0, 0, 1),
199  
200   /* 000 ... */
201   /* 0000 */ PTR(24, 1),        /* 8 */
202   /* 0001 */ V(3, 2, 4),
203   /* 0010 */ V(3, 1, 3),
204   /* 0011 */ V(3, 1, 3),
205   /* 0100 */ V(1, 3, 4),
206   /* 0101 */ V(0, 3, 4),
207   /* 0110 */ V(3, 0, 4),
208   /* 0111 */ V(2, 2, 4),
209   /* 1000 */ V(1, 2, 3),
210   /* 1001 */ V(1, 2, 3),
211   /* 1010 */ V(2, 1, 3),
212   /* 1011 */ V(2, 1, 3),
213   /* 1100 */ V(0, 2, 3),
214   /* 1101 */ V(0, 2, 3),
215   /* 1110 */ V(2, 0, 3),
216   /* 1111 */ V(2, 0, 3),
217  
218   /* 000 0000 ... */
219   /* 0    */ V(3, 3, 1),        /* 24 */
220   /* 1    */ V(2, 3, 1)
221 };
222  
223 static
224 union huffpair const hufftab6[] = {
225   /* 0000 */ PTR(16, 3),
226   /* 0001 */ PTR(24, 1),
227   /* 0010 */ PTR(26, 1),
228   /* 0011 */ V(1, 2, 4),
229   /* 0100 */ V(2, 1, 4),
230   /* 0101 */ V(2, 0, 4),
231   /* 0110 */ V(0, 1, 3),
232   /* 0111 */ V(0, 1, 3),
233   /* 1000 */ V(1, 1, 2),
234   /* 1001 */ V(1, 1, 2),
235   /* 1010 */ V(1, 1, 2),
236   /* 1011 */ V(1, 1, 2),
237   /* 1100 */ V(1, 0, 3),
238   /* 1101 */ V(1, 0, 3),
239   /* 1110 */ V(0, 0, 3),
240   /* 1111 */ V(0, 0, 3),
241  
242   /* 0000 ... */
243   /* 000  */ V(3, 3, 3),        /* 16 */
244   /* 001  */ V(0, 3, 3),
245   /* 010  */ V(2, 3, 2),
246   /* 011  */ V(2, 3, 2),
247   /* 100  */ V(3, 2, 2),
248   /* 101  */ V(3, 2, 2),
249   /* 110  */ V(3, 0, 2),
250   /* 111  */ V(3, 0, 2),
251  
252   /* 0001 ... */
253   /* 0    */ V(1, 3, 1),        /* 24 */
254   /* 1    */ V(3, 1, 1),
255  
256   /* 0010 ... */
257   /* 0    */ V(2, 2, 1),        /* 26 */
258   /* 1    */ V(0, 2, 1)
259 };
260  
261 static
262 union huffpair const hufftab7[] = {
263   /* 0000 */ PTR(16, 4),
264   /* 0001 */ PTR(32, 4),
265   /* 0010 */ PTR(48, 2),
266   /* 0011 */ V(1, 1, 4),
267   /* 0100 */ V(0, 1, 3),
268   /* 0101 */ V(0, 1, 3),
269   /* 0110 */ V(1, 0, 3),
270   /* 0111 */ V(1, 0, 3),
271   /* 1000 */ V(0, 0, 1),
272   /* 1001 */ V(0, 0, 1),
273   /* 1010 */ V(0, 0, 1),
274   /* 1011 */ V(0, 0, 1),
275   /* 1100 */ V(0, 0, 1),
276   /* 1101 */ V(0, 0, 1),
277   /* 1110 */ V(0, 0, 1),
278   /* 1111 */ V(0, 0, 1),
279  
280   /* 0000 ... */
281   /* 0000 */ PTR(52, 2),        /* 16 */
282   /* 0001 */ PTR(56, 1),
283   /* 0010 */ PTR(58, 1),
284   /* 0011 */ V(1, 5, 4),
285   /* 0100 */ V(5, 1, 4),
286   /* 0101 */ PTR(60, 1),
287   /* 0110 */ V(5, 0, 4),
288   /* 0111 */ PTR(62, 1),
289   /* 1000 */ V(2, 4, 4),
290   /* 1001 */ V(4, 2, 4),
291   /* 1010 */ V(1, 4, 3),
292   /* 1011 */ V(1, 4, 3),
293   /* 1100 */ V(4, 1, 3),
294   /* 1101 */ V(4, 1, 3),
295   /* 1110 */ V(4, 0, 3),
296   /* 1111 */ V(4, 0, 3),
297  
298   /* 0001 ... */
299   /* 0000 */ V(0, 4, 4),        /* 32 */
300   /* 0001 */ V(2, 3, 4),
301   /* 0010 */ V(3, 2, 4),
302   /* 0011 */ V(0, 3, 4),
303   /* 0100 */ V(1, 3, 3),
304   /* 0101 */ V(1, 3, 3),
305   /* 0110 */ V(3, 1, 3),
306   /* 0111 */ V(3, 1, 3),
307   /* 1000 */ V(3, 0, 3),
308   /* 1001 */ V(3, 0, 3),
309   /* 1010 */ V(2, 2, 3),
310   /* 1011 */ V(2, 2, 3),
311   /* 1100 */ V(1, 2, 2),
312   /* 1101 */ V(1, 2, 2),
313   /* 1110 */ V(1, 2, 2),
314   /* 1111 */ V(1, 2, 2),
315  
316   /* 0010 ... */
317   /* 00   */ V(2, 1, 1),        /* 48 */
318   /* 01   */ V(2, 1, 1),
319   /* 10   */ V(0, 2, 2),
320   /* 11   */ V(2, 0, 2),
321  
322   /* 0000 0000 ... */
323   /* 00   */ V(5, 5, 2),        /* 52 */
324   /* 01   */ V(4, 5, 2),
325   /* 10   */ V(5, 4, 2),
326   /* 11   */ V(5, 3, 2),
327  
328   /* 0000 0001 ... */
329   /* 0    */ V(3, 5, 1),        /* 56 */
330   /* 1    */ V(4, 4, 1),
331  
332   /* 0000 0010 ... */
333   /* 0    */ V(2, 5, 1),        /* 58 */
334   /* 1    */ V(5, 2, 1),
335  
336   /* 0000 0101 ... */
337   /* 0    */ V(0, 5, 1),        /* 60 */
338   /* 1    */ V(3, 4, 1),
339  
340   /* 0000 0111 ... */
341   /* 0    */ V(4, 3, 1),        /* 62 */
342   /* 1    */ V(3, 3, 1)
343 };
344  
345 # if 0
346 /* this version saves 8 entries (16 bytes) at the expense of
347    an extra lookup in 4 out of 36 cases */
348 static
349 union huffpair const hufftab8[] = {
350   /* 0000 */ PTR(16, 4),
351   /* 0001 */ PTR(32, 2),
352   /* 0010 */ V(1, 2, 4),
353   /* 0011 */ V(2, 1, 4),
354   /* 0100 */ V(1, 1, 2),
355   /* 0101 */ V(1, 1, 2),
356   /* 0110 */ V(1, 1, 2),
357   /* 0111 */ V(1, 1, 2),
358   /* 1000 */ V(0, 1, 3),
359   /* 1001 */ V(0, 1, 3),
360   /* 1010 */ V(1, 0, 3),
361   /* 1011 */ V(1, 0, 3),
362   /* 1100 */ V(0, 0, 2),
363   /* 1101 */ V(0, 0, 2),
364   /* 1110 */ V(0, 0, 2),
365   /* 1111 */ V(0, 0, 2),
366  
367   /* 0000 ... */
368   /* 0000 */ PTR(36, 3),        /* 16 */
369   /* 0001 */ PTR(44, 2),
370   /* 0010 */ PTR(48, 1),
371   /* 0011 */ V(1, 5, 4),
372   /* 0100 */ V(5, 1, 4),
373   /* 0101 */ PTR(50, 1),
374   /* 0110 */ PTR(52, 1),
375   /* 0111 */ V(2, 4, 4),
376   /* 1000 */ V(4, 2, 4),
377   /* 1001 */ V(1, 4, 4),
378   /* 1010 */ V(4, 1, 3),
379   /* 1011 */ V(4, 1, 3),
380   /* 1100 */ V(0, 4, 4),
381   /* 1101 */ V(4, 0, 4),
382   /* 1110 */ V(2, 3, 4),
383   /* 1111 */ V(3, 2, 4),
384  
385   /* 0001 ... */
386   /* 00   */ PTR(54, 2),        /* 32 */
387   /* 01   */ V(2, 2, 2),
388   /* 10   */ V(0, 2, 2),
389   /* 11   */ V(2, 0, 2),
390  
391   /* 0000 0000 ... */
392   /* 000  */ V(5, 5, 3),        /* 36 */
393   /* 001  */ V(5, 4, 3),
394   /* 010  */ V(4, 5, 2),
395   /* 011  */ V(4, 5, 2),
396   /* 100  */ V(5, 3, 1),
397   /* 101  */ V(5, 3, 1),
398   /* 110  */ V(5, 3, 1),
399   /* 111  */ V(5, 3, 1),
400  
401   /* 0000 0001 ... */
402   /* 00   */ V(3, 5, 2),        /* 44 */
403   /* 01   */ V(4, 4, 2),
404   /* 10   */ V(2, 5, 1),
405   /* 11   */ V(2, 5, 1),
406  
407   /* 0000 0010 ... */
408   /* 0    */ V(5, 2, 1),        /* 48 */
409   /* 1    */ V(0, 5, 1),
410  
411   /* 0000 0101 ... */
412   /* 0    */ V(3, 4, 1),        /* 50 */
413   /* 1    */ V(4, 3, 1),
414  
415   /* 0000 0110 ... */
416   /* 0    */ V(5, 0, 1),        /* 52 */
417   /* 1    */ V(3, 3, 1),
418  
419   /* 0001 00 ... */
420   /* 00   */ V(1, 3, 2),        /* 54 */
421   /* 01   */ V(3, 1, 2),
422   /* 10   */ V(0, 3, 2),
423   /* 11   */ V(3, 0, 2),
424 };
425 # else
426 static
427 union huffpair const hufftab8[] = {
428   /* 0000 */ PTR(16, 4),
429   /* 0001 */ PTR(32, 4),
430   /* 0010 */ V(1, 2, 4),
431   /* 0011 */ V(2, 1, 4),
432   /* 0100 */ V(1, 1, 2),
433   /* 0101 */ V(1, 1, 2),
434   /* 0110 */ V(1, 1, 2),
435   /* 0111 */ V(1, 1, 2),
436   /* 1000 */ V(0, 1, 3),
437   /* 1001 */ V(0, 1, 3),
438   /* 1010 */ V(1, 0, 3),
439   /* 1011 */ V(1, 0, 3),
440   /* 1100 */ V(0, 0, 2),
441   /* 1101 */ V(0, 0, 2),
442   /* 1110 */ V(0, 0, 2),
443   /* 1111 */ V(0, 0, 2),
444  
445   /* 0000 ... */
446   /* 0000 */ PTR(48, 3),        /* 16 */
447   /* 0001 */ PTR(56, 2),
448   /* 0010 */ PTR(60, 1),
449   /* 0011 */ V(1, 5, 4),
450   /* 0100 */ V(5, 1, 4),
451   /* 0101 */ PTR(62, 1),
452   /* 0110 */ PTR(64, 1),
453   /* 0111 */ V(2, 4, 4),
454   /* 1000 */ V(4, 2, 4),
455   /* 1001 */ V(1, 4, 4),
456   /* 1010 */ V(4, 1, 3),
457   /* 1011 */ V(4, 1, 3),
458   /* 1100 */ V(0, 4, 4),
459   /* 1101 */ V(4, 0, 4),
460   /* 1110 */ V(2, 3, 4),
461   /* 1111 */ V(3, 2, 4),
462  
463   /* 0001 ... */
464   /* 0000 */ V(1, 3, 4),        /* 32 */
465   /* 0001 */ V(3, 1, 4),
466   /* 0010 */ V(0, 3, 4),
467   /* 0011 */ V(3, 0, 4),
468   /* 0100 */ V(2, 2, 2),
469   /* 0101 */ V(2, 2, 2),
470   /* 0110 */ V(2, 2, 2),
471   /* 0111 */ V(2, 2, 2),
472   /* 1000 */ V(0, 2, 2),
473   /* 1001 */ V(0, 2, 2),
474   /* 1010 */ V(0, 2, 2),
475   /* 1011 */ V(0, 2, 2),
476   /* 1100 */ V(2, 0, 2),
477   /* 1101 */ V(2, 0, 2),
478   /* 1110 */ V(2, 0, 2),
479   /* 1111 */ V(2, 0, 2),
480  
481   /* 0000 0000 ... */
482   /* 000  */ V(5, 5, 3),        /* 48 */
483   /* 001  */ V(5, 4, 3),
484   /* 010  */ V(4, 5, 2),
485   /* 011  */ V(4, 5, 2),
486   /* 100  */ V(5, 3, 1),
487   /* 101  */ V(5, 3, 1),
488   /* 110  */ V(5, 3, 1),
489   /* 111  */ V(5, 3, 1),
490  
491   /* 0000 0001 ... */
492   /* 00   */ V(3, 5, 2),        /* 56 */
493   /* 01   */ V(4, 4, 2),
494   /* 10   */ V(2, 5, 1),
495   /* 11   */ V(2, 5, 1),
496  
497   /* 0000 0010 ... */
498   /* 0    */ V(5, 2, 1),        /* 60 */
499   /* 1    */ V(0, 5, 1),
500  
501   /* 0000 0101 ... */
502   /* 0    */ V(3, 4, 1),        /* 62 */
503   /* 1    */ V(4, 3, 1),
504  
505   /* 0000 0110 ... */
506   /* 0    */ V(5, 0, 1),        /* 64 */
507   /* 1    */ V(3, 3, 1)
508 };
509 # endif
510  
511 static
512 union huffpair const hufftab9[] = {
513   /* 0000 */ PTR(16, 4),
514   /* 0001 */ PTR(32, 3),
515   /* 0010 */ PTR(40, 2),
516   /* 0011 */ PTR(44, 2),
517   /* 0100 */ PTR(48, 1),
518   /* 0101 */ V(1, 2, 4),
519   /* 0110 */ V(2, 1, 4),
520   /* 0111 */ V(2, 0, 4),
521   /* 1000 */ V(1, 1, 3),
522   /* 1001 */ V(1, 1, 3),
523   /* 1010 */ V(0, 1, 3),
524   /* 1011 */ V(0, 1, 3),
525   /* 1100 */ V(1, 0, 3),
526   /* 1101 */ V(1, 0, 3),
527   /* 1110 */ V(0, 0, 3),
528   /* 1111 */ V(0, 0, 3),
529  
530   /* 0000 ... */
531   /* 0000 */ PTR(50, 1),        /* 16 */
532   /* 0001 */ V(3, 5, 4),
533   /* 0010 */ V(5, 3, 4),
534   /* 0011 */ PTR(52, 1),
535   /* 0100 */ V(4, 4, 4),
536   /* 0101 */ V(2, 5, 4),
537   /* 0110 */ V(5, 2, 4),
538   /* 0111 */ V(1, 5, 4),
539   /* 1000 */ V(5, 1, 3),
540   /* 1001 */ V(5, 1, 3),
541   /* 1010 */ V(3, 4, 3),
542   /* 1011 */ V(3, 4, 3),
543   /* 1100 */ V(4, 3, 3),
544   /* 1101 */ V(4, 3, 3),
545   /* 1110 */ V(5, 0, 4),
546   /* 1111 */ V(0, 4, 4),
547  
548   /* 0001 ... */
549   /* 000  */ V(2, 4, 3),        /* 32 */
550   /* 001  */ V(4, 2, 3),
551   /* 010  */ V(3, 3, 3),
552   /* 011  */ V(4, 0, 3),
553   /* 100  */ V(1, 4, 2),
554   /* 101  */ V(1, 4, 2),
555   /* 110  */ V(4, 1, 2),
556   /* 111  */ V(4, 1, 2),
557  
558   /* 0010 ... */
559   /* 00   */ V(2, 3, 2),        /* 40 */
560   /* 01   */ V(3, 2, 2),
561   /* 10   */ V(1, 3, 1),
562   /* 11   */ V(1, 3, 1),
563  
564   /* 0011 ... */
565   /* 00   */ V(3, 1, 1),        /* 44 */
566   /* 01   */ V(3, 1, 1),
567   /* 10   */ V(0, 3, 2),
568   /* 11   */ V(3, 0, 2),
569  
570   /* 0100 ... */
571   /* 0    */ V(2, 2, 1),        /* 48 */
572   /* 1    */ V(0, 2, 1),
573  
574   /* 0000 0000 ... */
575   /* 0    */ V(5, 5, 1),        /* 50 */
576   /* 1    */ V(4, 5, 1),
577  
578   /* 0000 0011 ... */
579   /* 0    */ V(5, 4, 1),        /* 52 */
580   /* 1    */ V(0, 5, 1)
581 };
582  
583 static
584 union huffpair const hufftab10[] = {
585   /* 0000 */ PTR(16, 4),
586   /* 0001 */ PTR(32, 4),
587   /* 0010 */ PTR(48, 2),
588   /* 0011 */ V(1, 1, 4),
589   /* 0100 */ V(0, 1, 3),
590   /* 0101 */ V(0, 1, 3),
591   /* 0110 */ V(1, 0, 3),
592   /* 0111 */ V(1, 0, 3),
593   /* 1000 */ V(0, 0, 1),
594   /* 1001 */ V(0, 0, 1),
595   /* 1010 */ V(0, 0, 1),
596   /* 1011 */ V(0, 0, 1),
597   /* 1100 */ V(0, 0, 1),
598   /* 1101 */ V(0, 0, 1),
599   /* 1110 */ V(0, 0, 1),
600   /* 1111 */ V(0, 0, 1),
601  
602   /* 0000 ... */
603   /* 0000 */ PTR(52, 3),        /* 16 */
604   /* 0001 */ PTR(60, 2),
605   /* 0010 */ PTR(64, 3),
606   /* 0011 */ PTR(72, 1),
607   /* 0100 */ PTR(74, 2),
608   /* 0101 */ PTR(78, 2),
609   /* 0110 */ PTR(82, 2),
610   /* 0111 */ V(1, 7, 4),
611   /* 1000 */ V(7, 1, 4),
612   /* 1001 */ PTR(86, 1),
613   /* 1010 */ PTR(88, 2),
614   /* 1011 */ PTR(92, 2),
615   /* 1100 */ V(1, 6, 4),
616   /* 1101 */ V(6, 1, 4),
617   /* 1110 */ V(6, 0, 4),
618   /* 1111 */ PTR(96, 1),
619  
620   /* 0001 ... */
621   /* 0000 */ PTR(98, 1),        /* 32 */
622   /* 0001 */ PTR(100, 1),
623   /* 0010 */ V(1, 4, 4),
624   /* 0011 */ V(4, 1, 4),
625   /* 0100 */ V(4, 0, 4),
626   /* 0101 */ V(2, 3, 4),
627   /* 0110 */ V(3, 2, 4),
628   /* 0111 */ V(0, 3, 4),
629   /* 1000 */ V(1, 3, 3),
630   /* 1001 */ V(1, 3, 3),
631   /* 1010 */ V(3, 1, 3),
632   /* 1011 */ V(3, 1, 3),
633   /* 1100 */ V(3, 0, 3),
634   /* 1101 */ V(3, 0, 3),
635   /* 1110 */ V(2, 2, 3),
636   /* 1111 */ V(2, 2, 3),
637  
638   /* 0010 ... */
639   /* 00   */ V(1, 2, 2),        /* 48 */
640   /* 01   */ V(2, 1, 2),
641   /* 10   */ V(0, 2, 2),
642   /* 11   */ V(2, 0, 2),
643  
644   /* 0000 0000 ... */
645   /* 000  */ V(7, 7, 3),        /* 52 */
646   /* 001  */ V(6, 7, 3),
647   /* 010  */ V(7, 6, 3),
648   /* 011  */ V(5, 7, 3),
649   /* 100  */ V(7, 5, 3),
650   /* 101  */ V(6, 6, 3),
651   /* 110  */ V(4, 7, 2),
652   /* 111  */ V(4, 7, 2),
653  
654   /* 0000 0001 ... */
655   /* 00   */ V(7, 4, 2),        /* 60 */
656   /* 01   */ V(5, 6, 2),
657   /* 10   */ V(6, 5, 2),
658   /* 11   */ V(3, 7, 2),
659  
660   /* 0000 0010 ... */
661   /* 000  */ V(7, 3, 2),        /* 64 */
662   /* 001  */ V(7, 3, 2),
663   /* 010  */ V(4, 6, 2),
664   /* 011  */ V(4, 6, 2),
665   /* 100  */ V(5, 5, 3),
666   /* 101  */ V(5, 4, 3),
667   /* 110  */ V(6, 3, 2),
668   /* 111  */ V(6, 3, 2),
669  
670   /* 0000 0011 ... */
671   /* 0    */ V(2, 7, 1),        /* 72 */
672   /* 1    */ V(7, 2, 1),
673  
674   /* 0000 0100 ... */
675   /* 00   */ V(6, 4, 2),        /* 74 */
676   /* 01   */ V(0, 7, 2),
677   /* 10   */ V(7, 0, 1),
678   /* 11   */ V(7, 0, 1),
679  
680   /* 0000 0101 ... */
681   /* 00   */ V(6, 2, 1),        /* 78 */
682   /* 01   */ V(6, 2, 1),
683   /* 10   */ V(4, 5, 2),
684   /* 11   */ V(3, 5, 2),
685  
686   /* 0000 0110 ... */
687   /* 00   */ V(0, 6, 1),        /* 82 */
688   /* 01   */ V(0, 6, 1),
689   /* 10   */ V(5, 3, 2),
690   /* 11   */ V(4, 4, 2),
691  
692   /* 0000 1001 ... */
693   /* 0    */ V(3, 6, 1),        /* 86 */
694   /* 1    */ V(2, 6, 1),
695  
696   /* 0000 1010 ... */
697   /* 00   */ V(2, 5, 2),        /* 88 */
698   /* 01   */ V(5, 2, 2),
699   /* 10   */ V(1, 5, 1),
700   /* 11   */ V(1, 5, 1),
701  
702   /* 0000 1011 ... */
703   /* 00   */ V(5, 1, 1),        /* 92 */
704   /* 01   */ V(5, 1, 1),
705   /* 10   */ V(3, 4, 2),
706   /* 11   */ V(4, 3, 2),
707  
708   /* 0000 1111 ... */
709   /* 0    */ V(0, 5, 1),        /* 96 */
710   /* 1    */ V(5, 0, 1),
711  
712   /* 0001 0000 ... */
713   /* 0    */ V(2, 4, 1),        /* 98 */
714   /* 1    */ V(4, 2, 1),
715  
716   /* 0001 0001 ... */
717   /* 0    */ V(3, 3, 1),        /* 100 */
718   /* 1    */ V(0, 4, 1)
719 };
720  
721 static
722 union huffpair const hufftab11[] = {
723   /* 0000 */ PTR(16, 4),
724   /* 0001 */ PTR(32, 4),
725   /* 0010 */ PTR(48, 4),
726   /* 0011 */ PTR(64, 3),
727   /* 0100 */ V(1, 2, 4),
728   /* 0101 */ PTR(72, 1),
729   /* 0110 */ V(1, 1, 3),
730   /* 0111 */ V(1, 1, 3),
731   /* 1000 */ V(0, 1, 3),
732   /* 1001 */ V(0, 1, 3),
733   /* 1010 */ V(1, 0, 3),
734   /* 1011 */ V(1, 0, 3),
735   /* 1100 */ V(0, 0, 2),
736   /* 1101 */ V(0, 0, 2),
737   /* 1110 */ V(0, 0, 2),
738   /* 1111 */ V(0, 0, 2),
739  
740   /* 0000 ... */
741   /* 0000 */ PTR(74, 2),        /* 16 */
742   /* 0001 */ PTR(78, 3),
743   /* 0010 */ PTR(86, 2),
744   /* 0011 */ PTR(90, 1),
745   /* 0100 */ PTR(92, 2),
746   /* 0101 */ V(2, 7, 4),
747   /* 0110 */ V(7, 2, 4),
748   /* 0111 */ PTR(96, 1),
749   /* 1000 */ V(7, 1, 3),
750   /* 1001 */ V(7, 1, 3),
751   /* 1010 */ V(1, 7, 4),
752   /* 1011 */ V(7, 0, 4),
753   /* 1100 */ V(3, 6, 4),
754   /* 1101 */ V(6, 3, 4),
755   /* 1110 */ V(6, 0, 4),
756   /* 1111 */ PTR(98, 1),
757  
758   /* 0001 ... */
759   /* 0000 */ PTR(100, 1),       /* 32 */
760   /* 0001 */ V(1, 5, 4),
761   /* 0010 */ V(6, 2, 3),
762   /* 0011 */ V(6, 2, 3),
763   /* 0100 */ V(2, 6, 4),
764   /* 0101 */ V(0, 6, 4),
765   /* 0110 */ V(1, 6, 3),
766   /* 0111 */ V(1, 6, 3),
767   /* 1000 */ V(6, 1, 3),
768   /* 1001 */ V(6, 1, 3),
769   /* 1010 */ V(5, 1, 4),
770   /* 1011 */ V(3, 4, 4),
771   /* 1100 */ V(5, 0, 4),
772   /* 1101 */ PTR(102, 1),
773   /* 1110 */ V(2, 4, 4),
774   /* 1111 */ V(4, 2, 4),
775  
776   /* 0010 ... */
777   /* 0000 */ V(1, 4, 4),        /* 48 */
778   /* 0001 */ V(4, 1, 4),
779   /* 0010 */ V(0, 4, 4),
780   /* 0011 */ V(4, 0, 4),
781   /* 0100 */ V(2, 3, 3),
782   /* 0101 */ V(2, 3, 3),
783   /* 0110 */ V(3, 2, 3),
784   /* 0111 */ V(3, 2, 3),
785   /* 1000 */ V(1, 3, 2),
786   /* 1001 */ V(1, 3, 2),
787   /* 1010 */ V(1, 3, 2),
788   /* 1011 */ V(1, 3, 2),
789   /* 1100 */ V(3, 1, 2),
790   /* 1101 */ V(3, 1, 2),
791   /* 1110 */ V(3, 1, 2),
792   /* 1111 */ V(3, 1, 2),
793  
794   /* 0011 ... */
795   /* 000  */ V(0, 3, 3),        /* 64 */
796   /* 001  */ V(3, 0, 3),
797   /* 010  */ V(2, 2, 2),
798   /* 011  */ V(2, 2, 2),
799   /* 100  */ V(2, 1, 1),
800   /* 101  */ V(2, 1, 1),
801   /* 110  */ V(2, 1, 1),
802   /* 111  */ V(2, 1, 1),
803  
804   /* 0101 ... */
805   /* 0    */ V(0, 2, 1),        /* 72 */
806   /* 1    */ V(2, 0, 1),
807  
808   /* 0000 0000 ... */
809   /* 00   */ V(7, 7, 2),        /* 74 */
810   /* 01   */ V(6, 7, 2),
811   /* 10   */ V(7, 6, 2),
812   /* 11   */ V(7, 5, 2),
813  
814   /* 0000 0001 ... */
815   /* 000  */ V(6, 6, 2),        /* 78 */
816   /* 001  */ V(6, 6, 2),
817   /* 010  */ V(4, 7, 2),
818   /* 011  */ V(4, 7, 2),
819   /* 100  */ V(7, 4, 2),
820   /* 101  */ V(7, 4, 2),
821   /* 110  */ V(5, 7, 3),
822   /* 111  */ V(5, 5, 3),
823  
824   /* 0000 0010 ... */
825   /* 00   */ V(5, 6, 2),        /* 86 */
826   /* 01   */ V(6, 5, 2),
827   /* 10   */ V(3, 7, 1),
828   /* 11   */ V(3, 7, 1),
829  
830   /* 0000 0011 ... */
831   /* 0    */ V(7, 3, 1),        /* 90 */
832   /* 1    */ V(4, 6, 1),
833  
834   /* 0000 0100 ... */
835   /* 00   */ V(4, 5, 2),        /* 92 */
836   /* 01   */ V(5, 4, 2),
837   /* 10   */ V(3, 5, 2),
838   /* 11   */ V(5, 3, 2),
839  
840   /* 0000 0111 ... */
841   /* 0    */ V(6, 4, 1),        /* 96 */
842   /* 1    */ V(0, 7, 1),
843  
844   /* 0000 1111 ... */
845   /* 0    */ V(4, 4, 1),        /* 98 */
846   /* 1    */ V(2, 5, 1),
847  
848   /* 0001 0000 ... */
849   /* 0    */ V(5, 2, 1),        /* 100 */
850   /* 1    */ V(0, 5, 1),
851  
852   /* 0001 1101 ... */
853   /* 0    */ V(4, 3, 1),        /* 102 */
854   /* 1    */ V(3, 3, 1)
855 };
856  
857 static
858 union huffpair const hufftab12[] = {
859   /* 0000 */ PTR(16, 4),
860   /* 0001 */ PTR(32, 4),
861   /* 0010 */ PTR(48, 4),
862   /* 0011 */ PTR(64, 2),
863   /* 0100 */ PTR(68, 3),
864   /* 0101 */ PTR(76, 1),
865   /* 0110 */ V(1, 2, 4),
866   /* 0111 */ V(2, 1, 4),
867   /* 1000 */ PTR(78, 1),
868   /* 1001 */ V(0, 0, 4),
869   /* 1010 */ V(1, 1, 3),
870   /* 1011 */ V(1, 1, 3),
871   /* 1100 */ V(0, 1, 3),
872   /* 1101 */ V(0, 1, 3),
873   /* 1110 */ V(1, 0, 3),
874   /* 1111 */ V(1, 0, 3),
875  
876   /* 0000 ... */
877   /* 0000 */ PTR(80, 2),        /* 16 */
878   /* 0001 */ PTR(84, 1),
879   /* 0010 */ PTR(86, 1),
880   /* 0011 */ PTR(88, 1),
881   /* 0100 */ V(5, 6, 4),
882   /* 0101 */ V(3, 7, 4),
883   /* 0110 */ PTR(90, 1),
884   /* 0111 */ V(2, 7, 4),
885   /* 1000 */ V(7, 2, 4),
886   /* 1001 */ V(4, 6, 4),
887   /* 1010 */ V(6, 4, 4),
888   /* 1011 */ V(1, 7, 4),
889   /* 1100 */ V(7, 1, 4),
890   /* 1101 */ PTR(92, 1),
891   /* 1110 */ V(3, 6, 4),
892   /* 1111 */ V(6, 3, 4),
893  
894   /* 0001 ... */
895   /* 0000 */ V(4, 5, 4),        /* 32 */
896   /* 0001 */ V(5, 4, 4),
897   /* 0010 */ V(4, 4, 4),
898   /* 0011 */ PTR(94, 1),
899   /* 0100 */ V(2, 6, 3),
900   /* 0101 */ V(2, 6, 3),
901   /* 0110 */ V(6, 2, 3),
902   /* 0111 */ V(6, 2, 3),
903   /* 1000 */ V(6, 1, 3),
904   /* 1001 */ V(6, 1, 3),
905   /* 1010 */ V(1, 6, 4),
906   /* 1011 */ V(6, 0, 4),
907   /* 1100 */ V(3, 5, 4),
908   /* 1101 */ V(5, 3, 4),
909   /* 1110 */ V(2, 5, 4),
910   /* 1111 */ V(5, 2, 4),
911  
912   /* 0010 ... */
913   /* 0000 */ V(1, 5, 3),        /* 48 */
914   /* 0001 */ V(1, 5, 3),
915   /* 0010 */ V(5, 1, 3),
916   /* 0011 */ V(5, 1, 3),
917   /* 0100 */ V(3, 4, 3),
918   /* 0101 */ V(3, 4, 3),
919   /* 0110 */ V(4, 3, 3),
920   /* 0111 */ V(4, 3, 3),
921   /* 1000 */ V(5, 0, 4),
922   /* 1001 */ V(0, 4, 4),
923   /* 1010 */ V(2, 4, 3),
924   /* 1011 */ V(2, 4, 3),
925   /* 1100 */ V(4, 2, 3),
926   /* 1101 */ V(4, 2, 3),
927   /* 1110 */ V(1, 4, 3),
928   /* 1111 */ V(1, 4, 3),
929  
930   /* 0011 ... */
931   /* 00   */ V(3, 3, 2),        /* 64 */
932   /* 01   */ V(4, 1, 2),
933   /* 10   */ V(2, 3, 2),
934   /* 11   */ V(3, 2, 2),
935  
936   /* 0100 ... */
937   /* 000  */ V(4, 0, 3),        /* 68 */
938   /* 001  */ V(0, 3, 3),
939   /* 010  */ V(3, 0, 2),
940   /* 011  */ V(3, 0, 2),
941   /* 100  */ V(1, 3, 1),
942   /* 101  */ V(1, 3, 1),
943   /* 110  */ V(1, 3, 1),
944   /* 111  */ V(1, 3, 1),
945  
946   /* 0101 ... */
947   /* 0    */ V(3, 1, 1),        /* 76 */
948   /* 1    */ V(2, 2, 1),
949  
950   /* 1000 ... */
951   /* 0    */ V(0, 2, 1),        /* 78 */
952   /* 1    */ V(2, 0, 1),
953  
954   /* 0000 0000 ... */
955   /* 00   */ V(7, 7, 2),        /* 80 */
956   /* 01   */ V(6, 7, 2),
957   /* 10   */ V(7, 6, 1),
958   /* 11   */ V(7, 6, 1),
959  
960   /* 0000 0001 ... */
961   /* 0    */ V(5, 7, 1),        /* 84 */
962   /* 1    */ V(7, 5, 1),
963  
964   /* 0000 0010 ... */
965   /* 0    */ V(6, 6, 1),        /* 86 */
966   /* 1    */ V(4, 7, 1),
967  
968   /* 0000 0011 ... */
969   /* 0    */ V(7, 4, 1),        /* 88 */
970   /* 1    */ V(6, 5, 1),
971  
972   /* 0000 0110 ... */
973   /* 0    */ V(7, 3, 1),        /* 90 */
974   /* 1    */ V(5, 5, 1),
975  
976   /* 0000 1101 ... */
977   /* 0    */ V(0, 7, 1),        /* 92 */
978   /* 1    */ V(7, 0, 1),
979  
980   /* 0001 0011 ... */
981   /* 0    */ V(0, 6, 1),        /* 94 */
982   /* 1    */ V(0, 5, 1)
983 };
984  
985 static
986 union huffpair const hufftab13[] = {
987   /* 0000 */ PTR(16, 4),
988   /* 0001 */ PTR(32, 4),
989   /* 0010 */ PTR(48, 4),
990   /* 0011 */ PTR(64, 2),
991   /* 0100 */ V(1, 1, 4),
992   /* 0101 */ V(0, 1, 4),
993   /* 0110 */ V(1, 0, 3),
994   /* 0111 */ V(1, 0, 3),
995   /* 1000 */ V(0, 0, 1),
996   /* 1001 */ V(0, 0, 1),
997   /* 1010 */ V(0, 0, 1),
998   /* 1011 */ V(0, 0, 1),
999   /* 1100 */ V(0, 0, 1),
1000   /* 1101 */ V(0, 0, 1),
1001   /* 1110 */ V(0, 0, 1),
1002   /* 1111 */ V(0, 0, 1),
1003  
1004   /* 0000 ... */
1005   /* 0000 */ PTR(68, 4),        /* 16 */
1006   /* 0001 */ PTR(84, 4),
1007   /* 0010 */ PTR(100, 4),
1008   /* 0011 */ PTR(116, 4),
1009   /* 0100 */ PTR(132, 4),
1010   /* 0101 */ PTR(148, 4),
1011   /* 0110 */ PTR(164, 3),
1012   /* 0111 */ PTR(172, 3),
1013   /* 1000 */ PTR(180, 3),
1014   /* 1001 */ PTR(188, 3),
1015   /* 1010 */ PTR(196, 3),
1016   /* 1011 */ PTR(204, 3),
1017   /* 1100 */ PTR(212, 1),
1018   /* 1101 */ PTR(214, 2),
1019   /* 1110 */ PTR(218, 3),
1020   /* 1111 */ PTR(226, 1),
1021  
1022   /* 0001 ... */
1023   /* 0000 */ PTR(228, 2),       /* 32 */
1024   /* 0001 */ PTR(232, 2),
1025   /* 0010 */ PTR(236, 2),
1026   /* 0011 */ PTR(240, 2),
1027   /* 0100 */ V(8, 1, 4),
1028   /* 0101 */ PTR(244, 1),
1029   /* 0110 */ PTR(246, 1),
1030   /* 0111 */ PTR(248, 1),
1031   /* 1000 */ PTR(250, 2),
1032   /* 1001 */ PTR(254, 1),
1033   /* 1010 */ V(1, 5, 4),
1034   /* 1011 */ V(5, 1, 4),
1035   /* 1100 */ PTR(256, 1),
1036   /* 1101 */ PTR(258, 1),
1037   /* 1110 */ PTR(260, 1),
1038   /* 1111 */ V(1, 4, 4),
1039  
1040   /* 0010 ... */
1041   /* 0000 */ V(4, 1, 3),        /* 48 */
1042   /* 0001 */ V(4, 1, 3),
1043   /* 0010 */ V(0, 4, 4),
1044   /* 0011 */ V(4, 0, 4),
1045   /* 0100 */ V(2, 3, 4),
1046   /* 0101 */ V(3, 2, 4),
1047   /* 0110 */ V(1, 3, 3),
1048   /* 0111 */ V(1, 3, 3),
1049   /* 1000 */ V(3, 1, 3),
1050   /* 1001 */ V(3, 1, 3),
1051   /* 1010 */ V(0, 3, 3),
1052   /* 1011 */ V(0, 3, 3),
1053   /* 1100 */ V(3, 0, 3),
1054   /* 1101 */ V(3, 0, 3),
1055   /* 1110 */ V(2, 2, 3),
1056   /* 1111 */ V(2, 2, 3),
1057  
1058   /* 0011 ... */
1059   /* 00   */ V(1, 2, 2),        /* 64 */
1060   /* 01   */ V(2, 1, 2),
1061   /* 10   */ V(0, 2, 2),
1062   /* 11   */ V(2, 0, 2),
1063  
1064   /* 0000 0000 ... */
1065   /* 0000 */ PTR(262, 4),       /* 68 */
1066   /* 0001 */ PTR(278, 4),
1067   /* 0010 */ PTR(294, 4),
1068   /* 0011 */ PTR(310, 3),
1069   /* 0100 */ PTR(318, 2),
1070   /* 0101 */ PTR(322, 2),
1071   /* 0110 */ PTR(326, 3),
1072   /* 0111 */ PTR(334, 2),
1073   /* 1000 */ PTR(338, 1),
1074   /* 1001 */ PTR(340, 2),
1075   /* 1010 */ PTR(344, 2),
1076   /* 1011 */ PTR(348, 2),
1077   /* 1100 */ PTR(352, 2),
1078   /* 1101 */ PTR(356, 2),
1079   /* 1110 */ V(1, 15, 4),
1080   /* 1111 */ V(15, 1, 4),
1081  
1082   /* 0000 0001 ... */
1083   /* 0000 */ V(15, 0, 4),       /* 84 */
1084   /* 0001 */ PTR(360, 1),
1085   /* 0010 */ PTR(362, 1),
1086   /* 0011 */ PTR(364, 1),
1087   /* 0100 */ V(14, 2, 4),
1088   /* 0101 */ PTR(366, 1),
1089   /* 0110 */ V(1, 14, 4),
1090   /* 0111 */ V(14, 1, 4),
1091   /* 1000 */ PTR(368, 1),
1092   /* 1001 */ PTR(370, 1),
1093   /* 1010 */ PTR(372, 1),
1094   /* 1011 */ PTR(374, 1),
1095   /* 1100 */ PTR(376, 1),
1096   /* 1101 */ PTR(378, 1),
1097   /* 1110 */ V(12, 6, 4),
1098   /* 1111 */ V(3, 13, 4),
1099  
1100   /* 0000 0010 ... */
1101   /* 0000 */ PTR(380, 1),       /* 100 */
1102   /* 0001 */ V(2, 13, 4),
1103   /* 0010 */ V(13, 2, 4),
1104   /* 0011 */ V(1, 13, 4),
1105   /* 0100 */ V(11, 7, 4),
1106   /* 0101 */ PTR(382, 1),
1107   /* 0110 */ PTR(384, 1),
1108   /* 0111 */ V(12, 3, 4),
1109   /* 1000 */ PTR(386, 1),
1110   /* 1001 */ V(4, 11, 4),
1111   /* 1010 */ V(13, 1, 3),
1112   /* 1011 */ V(13, 1, 3),
1113   /* 1100 */ V(0, 13, 4),
1114   /* 1101 */ V(13, 0, 4),
1115   /* 1110 */ V(8, 10, 4),
1116   /* 1111 */ V(10, 8, 4),
1117  
1118   /* 0000 0011 ... */
1119   /* 0000 */ V(4, 12, 4),       /* 116 */
1120   /* 0001 */ V(12, 4, 4),
1121   /* 0010 */ V(6, 11, 4),
1122   /* 0011 */ V(11, 6, 4),
1123   /* 0100 */ V(3, 12, 3),
1124   /* 0101 */ V(3, 12, 3),
1125   /* 0110 */ V(2, 12, 3),
1126   /* 0111 */ V(2, 12, 3),
1127   /* 1000 */ V(12, 2, 3),
1128   /* 1001 */ V(12, 2, 3),
1129   /* 1010 */ V(5, 11, 3),
1130   /* 1011 */ V(5, 11, 3),
1131   /* 1100 */ V(11, 5, 4),
1132   /* 1101 */ V(8, 9, 4),
1133   /* 1110 */ V(1, 12, 3),
1134   /* 1111 */ V(1, 12, 3),
1135  
1136   /* 0000 0100 ... */
1137   /* 0000 */ V(12, 1, 3),       /* 132 */
1138   /* 0001 */ V(12, 1, 3),
1139   /* 0010 */ V(9, 8, 4),
1140   /* 0011 */ V(0, 12, 4),
1141   /* 0100 */ V(12, 0, 3),
1142   /* 0101 */ V(12, 0, 3),
1143   /* 0110 */ V(11, 4, 4),
1144   /* 0111 */ V(6, 10, 4),
1145   /* 1000 */ V(10, 6, 4),
1146   /* 1001 */ V(7, 9, 4),
1147   /* 1010 */ V(3, 11, 3),
1148   /* 1011 */ V(3, 11, 3),
1149   /* 1100 */ V(11, 3, 3),
1150   /* 1101 */ V(11, 3, 3),
1151   /* 1110 */ V(8, 8, 4),
1152   /* 1111 */ V(5, 10, 4),
1153  
1154   /* 0000 0101 ... */
1155   /* 0000 */ V(2, 11, 3),       /* 148 */
1156   /* 0001 */ V(2, 11, 3),
1157   /* 0010 */ V(10, 5, 4),
1158   /* 0011 */ V(6, 9, 4),
1159   /* 0100 */ V(10, 4, 3),
1160   /* 0101 */ V(10, 4, 3),
1161   /* 0110 */ V(7, 8, 4),
1162   /* 0111 */ V(8, 7, 4),
1163   /* 1000 */ V(9, 4, 3),
1164   /* 1001 */ V(9, 4, 3),
1165   /* 1010 */ V(7, 7, 4),
1166   /* 1011 */ V(7, 6, 4),
1167   /* 1100 */ V(11, 2, 2),
1168   /* 1101 */ V(11, 2, 2),
1169   /* 1110 */ V(11, 2, 2),
1170   /* 1111 */ V(11, 2, 2),
1171  
1172   /* 0000 0110 ... */
1173   /* 000  */ V(1, 11, 2),       /* 164 */
1174   /* 001  */ V(1, 11, 2),
1175   /* 010  */ V(11, 1, 2),
1176   /* 011  */ V(11, 1, 2),
1177   /* 100  */ V(0, 11, 3),
1178   /* 101  */ V(11, 0, 3),
1179   /* 110  */ V(9, 6, 3),
1180   /* 111  */ V(4, 10, 3),
1181  
1182   /* 0000 0111 ... */
1183   /* 000  */ V(3, 10, 3),       /* 172 */
1184   /* 001  */ V(10, 3, 3),
1185   /* 010  */ V(5, 9, 3),
1186   /* 011  */ V(9, 5, 3),
1187   /* 100  */ V(2, 10, 2),
1188   /* 101  */ V(2, 10, 2),
1189   /* 110  */ V(10, 2, 2),
1190   /* 111  */ V(10, 2, 2),
1191  
1192   /* 0000 1000 ... */
1193   /* 000  */ V(1, 10, 2),       /* 180 */
1194   /* 001  */ V(1, 10, 2),
1195   /* 010  */ V(10, 1, 2),
1196   /* 011  */ V(10, 1, 2),
1197   /* 100  */ V(0, 10, 3),
1198   /* 101  */ V(6, 8, 3),
1199   /* 110  */ V(10, 0, 2),
1200   /* 111  */ V(10, 0, 2),
1201  
1202   /* 0000 1001 ... */
1203   /* 000  */ V(8, 6, 3),        /* 188 */
1204   /* 001  */ V(4, 9, 3),
1205   /* 010  */ V(9, 3, 2),
1206   /* 011  */ V(9, 3, 2),
1207   /* 100  */ V(3, 9, 3),
1208   /* 101  */ V(5, 8, 3),
1209   /* 110  */ V(8, 5, 3),
1210   /* 111  */ V(6, 7, 3),
1211  
1212   /* 0000 1010 ... */
1213   /* 000  */ V(2, 9, 2),        /* 196 */
1214   /* 001  */ V(2, 9, 2),
1215   /* 010  */ V(9, 2, 2),
1216   /* 011  */ V(9, 2, 2),
1217   /* 100  */ V(5, 7, 3),
1218   /* 101  */ V(7, 5, 3),
1219   /* 110  */ V(3, 8, 2),
1220   /* 111  */ V(3, 8, 2),
1221  
1222   /* 0000 1011 ... */
1223   /* 000  */ V(8, 3, 2),        /* 204 */
1224   /* 001  */ V(8, 3, 2),
1225   /* 010  */ V(6, 6, 3),
1226   /* 011  */ V(4, 7, 3),
1227   /* 100  */ V(7, 4, 3),
1228   /* 101  */ V(5, 6, 3),
1229   /* 110  */ V(6, 5, 3),
1230   /* 111  */ V(7, 3, 3),
1231  
1232   /* 0000 1100 ... */
1233   /* 0    */ V(1, 9, 1),        /* 212 */
1234   /* 1    */ V(9, 1, 1),
1235  
1236   /* 0000 1101 ... */
1237   /* 00   */ V(0, 9, 2),        /* 214 */
1238   /* 01   */ V(9, 0, 2),
1239   /* 10   */ V(4, 8, 2),
1240   /* 11   */ V(8, 4, 2),
1241  
1242   /* 0000 1110 ... */
1243   /* 000  */ V(7, 2, 2),        /* 218 */
1244   /* 001  */ V(7, 2, 2),
1245   /* 010  */ V(4, 6, 3),
1246   /* 011  */ V(6, 4, 3),
1247   /* 100  */ V(2, 8, 1),
1248   /* 101  */ V(2, 8, 1),
1249   /* 110  */ V(2, 8, 1),
1250   /* 111  */ V(2, 8, 1),
1251  
1252   /* 0000 1111 ... */
1253   /* 0    */ V(8, 2, 1),        /* 226 */
1254   /* 1    */ V(1, 8, 1),
1255  
1256   /* 0001 0000 ... */
1257   /* 00   */ V(3, 7, 2),        /* 228 */
1258   /* 01   */ V(2, 7, 2),
1259   /* 10   */ V(1, 7, 1),
1260   /* 11   */ V(1, 7, 1),
1261  
1262   /* 0001 0001 ... */
1263   /* 00   */ V(7, 1, 1),        /* 232 */
1264   /* 01   */ V(7, 1, 1),
1265   /* 10   */ V(5, 5, 2),
1266   /* 11   */ V(0, 7, 2),
1267  
1268   /* 0001 0010 ... */
1269   /* 00   */ V(7, 0, 2),        /* 236 */
1270   /* 01   */ V(3, 6, 2),
1271   /* 10   */ V(6, 3, 2),
1272   /* 11   */ V(4, 5, 2),
1273  
1274   /* 0001 0011 ... */
1275   /* 00   */ V(5, 4, 2),        /* 240 */
1276   /* 01   */ V(2, 6, 2),
1277   /* 10   */ V(6, 2, 2),
1278   /* 11   */ V(3, 5, 2),
1279  
1280   /* 0001 0101 ... */
1281   /* 0    */ V(0, 8, 1),        /* 244 */
1282   /* 1    */ V(8, 0, 1),
1283  
1284   /* 0001 0110 ... */
1285   /* 0    */ V(1, 6, 1),        /* 246 */
1286   /* 1    */ V(6, 1, 1),
1287  
1288   /* 0001 0111 ... */
1289   /* 0    */ V(0, 6, 1),        /* 248 */
1290   /* 1    */ V(6, 0, 1),
1291  
1292   /* 0001 1000 ... */
1293   /* 00   */ V(5, 3, 2),        /* 250 */
1294   /* 01   */ V(4, 4, 2),
1295   /* 10   */ V(2, 5, 1),
1296   /* 11   */ V(2, 5, 1),
1297  
1298   /* 0001 1001 ... */
1299   /* 0    */ V(5, 2, 1),        /* 254 */
1300   /* 1    */ V(0, 5, 1),
1301  
1302   /* 0001 1100 ... */
1303   /* 0    */ V(3, 4, 1),        /* 256 */
1304   /* 1    */ V(4, 3, 1),
1305  
1306   /* 0001 1101 ... */
1307   /* 0    */ V(5, 0, 1),        /* 258 */
1308   /* 1    */ V(2, 4, 1),
1309  
1310   /* 0001 1110 ... */
1311   /* 0    */ V(4, 2, 1),        /* 260 */
1312   /* 1    */ V(3, 3, 1),
1313  
1314   /* 0000 0000 0000 ... */
1315   /* 0000 */ PTR(388, 3),       /* 262 */
1316   /* 0001 */ V(15, 15, 4),
1317   /* 0010 */ V(14, 15, 4),
1318   /* 0011 */ V(13, 15, 4),
1319   /* 0100 */ V(14, 14, 4),
1320   /* 0101 */ V(12, 15, 4),
1321   /* 0110 */ V(13, 14, 4),
1322   /* 0111 */ V(11, 15, 4),
1323   /* 1000 */ V(15, 11, 4),
1324   /* 1001 */ V(12, 14, 4),
1325   /* 1010 */ V(13, 12, 4),
1326   /* 1011 */ PTR(396, 1),
1327   /* 1100 */ V(14, 12, 3),
1328   /* 1101 */ V(14, 12, 3),
1329   /* 1110 */ V(13, 13, 3),
1330   /* 1111 */ V(13, 13, 3),
1331  
1332   /* 0000 0000 0001 ... */
1333   /* 0000 */ V(15, 10, 4),      /* 278 */
1334   /* 0001 */ V(12, 13, 4),
1335   /* 0010 */ V(11, 14, 3),
1336   /* 0011 */ V(11, 14, 3),
1337   /* 0100 */ V(14, 11, 3),
1338   /* 0101 */ V(14, 11, 3),
1339   /* 0110 */ V(9, 15, 3),
1340   /* 0111 */ V(9, 15, 3),
1341   /* 1000 */ V(15, 9, 3),
1342   /* 1001 */ V(15, 9, 3),
1343   /* 1010 */ V(14, 10, 3),
1344   /* 1011 */ V(14, 10, 3),
1345   /* 1100 */ V(11, 13, 3),
1346   /* 1101 */ V(11, 13, 3),
1347   /* 1110 */ V(13, 11, 3),
1348   /* 1111 */ V(13, 11, 3),
1349  
1350   /* 0000 0000 0010 ... */
1351   /* 0000 */ V(8, 15, 3),       /* 294 */
1352   /* 0001 */ V(8, 15, 3),
1353   /* 0010 */ V(15, 8, 3),
1354   /* 0011 */ V(15, 8, 3),
1355   /* 0100 */ V(12, 12, 3),
1356   /* 0101 */ V(12, 12, 3),
1357   /* 0110 */ V(10, 14, 4),
1358   /* 0111 */ V(9, 14, 4),
1359   /* 1000 */ V(8, 14, 3),
1360   /* 1001 */ V(8, 14, 3),
1361   /* 1010 */ V(7, 15, 4),
1362   /* 1011 */ V(7, 14, 4),
1363   /* 1100 */ V(15, 7, 2),
1364   /* 1101 */ V(15, 7, 2),
1365   /* 1110 */ V(15, 7, 2),
1366   /* 1111 */ V(15, 7, 2),
1367  
1368   /* 0000 0000 0011 ... */
1369   /* 000  */ V(13, 10, 2),      /* 310 */
1370   /* 001  */ V(13, 10, 2),
1371   /* 010  */ V(10, 13, 3),
1372   /* 011  */ V(11, 12, 3),
1373   /* 100  */ V(12, 11, 3),
1374   /* 101  */ V(15, 6, 3),
1375   /* 110  */ V(6, 15, 2),
1376   /* 111  */ V(6, 15, 2),
1377  
1378   /* 0000 0000 0100 ... */
1379   /* 00   */ V(14, 8, 2),       /* 318 */
1380   /* 01   */ V(5, 15, 2),
1381   /* 10   */ V(9, 13, 2),
1382   /* 11   */ V(13, 9, 2),
1383  
1384   /* 0000 0000 0101 ... */
1385   /* 00   */ V(15, 5, 2),       /* 322 */
1386   /* 01   */ V(14, 7, 2),
1387   /* 10   */ V(10, 12, 2),
1388   /* 11   */ V(11, 11, 2),
1389  
1390   /* 0000 0000 0110 ... */
1391   /* 000  */ V(4, 15, 2),       /* 326 */
1392   /* 001  */ V(4, 15, 2),
1393   /* 010  */ V(15, 4, 2),
1394   /* 011  */ V(15, 4, 2),
1395   /* 100  */ V(12, 10, 3),
1396   /* 101  */ V(14, 6, 3),
1397   /* 110  */ V(15, 3, 2),
1398   /* 111  */ V(15, 3, 2),
1399  
1400   /* 0000 0000 0111 ... */
1401   /* 00   */ V(3, 15, 1),       /* 334 */
1402   /* 01   */ V(3, 15, 1),
1403   /* 10   */ V(8, 13, 2),
1404   /* 11   */ V(13, 8, 2),
1405  
1406   /* 0000 0000 1000 ... */
1407   /* 0    */ V(2, 15, 1),       /* 338 */
1408   /* 1    */ V(15, 2, 1),
1409  
1410   /* 0000 0000 1001 ... */
1411   /* 00   */ V(6, 14, 2),       /* 340 */
1412   /* 01   */ V(9, 12, 2),
1413   /* 10   */ V(0, 15, 1),
1414   /* 11   */ V(0, 15, 1),
1415  
1416   /* 0000 0000 1010 ... */
1417   /* 00   */ V(12, 9, 2),       /* 344 */
1418   /* 01   */ V(5, 14, 2),
1419   /* 10   */ V(10, 11, 1),
1420   /* 11   */ V(10, 11, 1),
1421  
1422   /* 0000 0000 1011 ... */
1423   /* 00   */ V(7, 13, 2),       /* 348 */
1424   /* 01   */ V(13, 7, 2),
1425   /* 10   */ V(4, 14, 1),
1426   /* 11   */ V(4, 14, 1),
1427  
1428   /* 0000 0000 1100 ... */
1429   /* 00   */ V(12, 8, 2),       /* 352 */
1430   /* 01   */ V(13, 6, 2),
1431   /* 10   */ V(3, 14, 1),
1432   /* 11   */ V(3, 14, 1),
1433  
1434   /* 0000 0000 1101 ... */
1435   /* 00   */ V(11, 9, 1),       /* 356 */
1436   /* 01   */ V(11, 9, 1),
1437   /* 10   */ V(9, 11, 2),
1438   /* 11   */ V(10, 10, 2),
1439  
1440   /* 0000 0001 0001 ... */
1441   /* 0    */ V(11, 10, 1),      /* 360 */
1442   /* 1    */ V(14, 5, 1),
1443  
1444   /* 0000 0001 0010 ... */
1445   /* 0    */ V(14, 4, 1),       /* 362 */
1446   /* 1    */ V(8, 12, 1),
1447  
1448   /* 0000 0001 0011 ... */
1449   /* 0    */ V(6, 13, 1),       /* 364 */
1450   /* 1    */ V(14, 3, 1),
1451  
1452   /* 0000 0001 0101 ... */
1453   /* 0    */ V(2, 14, 1),       /* 366 */
1454   /* 1    */ V(0, 14, 1),
1455  
1456   /* 0000 0001 1000 ... */
1457   /* 0    */ V(14, 0, 1),       /* 368 */
1458   /* 1    */ V(5, 13, 1),
1459  
1460   /* 0000 0001 1001 ... */
1461   /* 0    */ V(13, 5, 1),       /* 370 */
1462   /* 1    */ V(7, 12, 1),
1463  
1464   /* 0000 0001 1010 ... */
1465   /* 0    */ V(12, 7, 1),       /* 372 */
1466   /* 1    */ V(4, 13, 1),
1467  
1468   /* 0000 0001 1011 ... */
1469   /* 0    */ V(8, 11, 1),       /* 374 */
1470   /* 1    */ V(11, 8, 1),
1471  
1472   /* 0000 0001 1100 ... */
1473   /* 0    */ V(13, 4, 1),       /* 376 */
1474   /* 1    */ V(9, 10, 1),
1475  
1476   /* 0000 0001 1101 ... */
1477   /* 0    */ V(10, 9, 1),       /* 378 */
1478   /* 1    */ V(6, 12, 1),
1479  
1480   /* 0000 0010 0000 ... */
1481   /* 0    */ V(13, 3, 1),       /* 380 */
1482   /* 1    */ V(7, 11, 1),
1483  
1484   /* 0000 0010 0101 ... */
1485   /* 0    */ V(5, 12, 1),       /* 382 */
1486   /* 1    */ V(12, 5, 1),
1487  
1488   /* 0000 0010 0110 ... */
1489   /* 0    */ V(9, 9, 1),        /* 384 */
1490   /* 1    */ V(7, 10, 1),
1491  
1492   /* 0000 0010 1000 ... */
1493   /* 0    */ V(10, 7, 1),       /* 386 */
1494   /* 1    */ V(9, 7, 1),
1495  
1496   /* 0000 0000 0000 0000 ... */
1497   /* 000  */ V(15, 14, 3),      /* 388 */
1498   /* 001  */ V(15, 12, 3),
1499   /* 010  */ V(15, 13, 2),
1500   /* 011  */ V(15, 13, 2),
1501   /* 100  */ V(14, 13, 1),
1502   /* 101  */ V(14, 13, 1),
1503   /* 110  */ V(14, 13, 1),
1504   /* 111  */ V(14, 13, 1),
1505  
1506   /* 0000 0000 0000 1011 ... */
1507   /* 0    */ V(10, 15, 1),      /* 396 */
1508   /* 1    */ V(14, 9, 1)
1509 };
1510  
1511 static
1512 union huffpair const hufftab15[] = {
1513   /* 0000 */ PTR(16, 4),
1514   /* 0001 */ PTR(32, 4),
1515   /* 0010 */ PTR(48, 4),
1516   /* 0011 */ PTR(64, 4),
1517   /* 0100 */ PTR(80, 4),
1518   /* 0101 */ PTR(96, 3),
1519   /* 0110 */ PTR(104, 3),
1520   /* 0111 */ PTR(112, 2),
1521   /* 1000 */ PTR(116, 1),
1522   /* 1001 */ PTR(118, 1),
1523   /* 1010 */ V(1, 1, 3),
1524   /* 1011 */ V(1, 1, 3),
1525   /* 1100 */ V(0, 1, 4),
1526   /* 1101 */ V(1, 0, 4),
1527   /* 1110 */ V(0, 0, 3),
1528   /* 1111 */ V(0, 0, 3),
1529  
1530   /* 0000 ... */
1531   /* 0000 */ PTR(120, 4),       /* 16 */
1532   /* 0001 */ PTR(136, 4),
1533   /* 0010 */ PTR(152, 4),
1534   /* 0011 */ PTR(168, 4),
1535   /* 0100 */ PTR(184, 4),
1536   /* 0101 */ PTR(200, 3),
1537   /* 0110 */ PTR(208, 3),
1538   /* 0111 */ PTR(216, 4),
1539   /* 1000 */ PTR(232, 3),
1540   /* 1001 */ PTR(240, 3),
1541   /* 1010 */ PTR(248, 3),
1542   /* 1011 */ PTR(256, 3),
1543   /* 1100 */ PTR(264, 2),
1544   /* 1101 */ PTR(268, 3),
1545   /* 1110 */ PTR(276, 3),
1546   /* 1111 */ PTR(284, 2),
1547  
1548   /* 0001 ... */
1549   /* 0000 */ PTR(288, 2),       /* 32 */
1550   /* 0001 */ PTR(292, 2),
1551   /* 0010 */ PTR(296, 2),
1552   /* 0011 */ PTR(300, 2),
1553   /* 0100 */ PTR(304, 2),
1554   /* 0101 */ PTR(308, 2),
1555   /* 0110 */ PTR(312, 2),
1556   /* 0111 */ PTR(316, 2),
1557   /* 1000 */ PTR(320, 1),
1558   /* 1001 */ PTR(322, 1),
1559   /* 1010 */ PTR(324, 1),
1560   /* 1011 */ PTR(326, 2),
1561   /* 1100 */ PTR(330, 1),
1562   /* 1101 */ PTR(332, 1),
1563   /* 1110 */ PTR(334, 2),
1564   /* 1111 */ PTR(338, 1),
1565  
1566   /* 0010 ... */
1567   /* 0000 */ PTR(340, 1),       /* 48 */
1568   /* 0001 */ PTR(342, 1),
1569   /* 0010 */ V(9, 1, 4),
1570   /* 0011 */ PTR(344, 1),
1571   /* 0100 */ PTR(346, 1),
1572   /* 0101 */ PTR(348, 1),
1573   /* 0110 */ PTR(350, 1),
1574   /* 0111 */ PTR(352, 1),
1575   /* 1000 */ V(2, 8, 4),
1576   /* 1001 */ V(8, 2, 4),
1577   /* 1010 */ V(1, 8, 4),
1578   /* 1011 */ V(8, 1, 4),
1579   /* 1100 */ PTR(354, 1),
1580   /* 1101 */ PTR(356, 1),
1581   /* 1110 */ PTR(358, 1),
1582   /* 1111 */ PTR(360, 1),
1583  
1584   /* 0011 ... */
1585   /* 0000 */ V(2, 7, 4),        /* 64 */
1586   /* 0001 */ V(7, 2, 4),
1587   /* 0010 */ V(6, 4, 4),
1588   /* 0011 */ V(1, 7, 4),
1589   /* 0100 */ V(5, 5, 4),
1590   /* 0101 */ V(7, 1, 4),
1591   /* 0110 */ PTR(362, 1),
1592   /* 0111 */ V(3, 6, 4),
1593   /* 1000 */ V(6, 3, 4),
1594   /* 1001 */ V(4, 5, 4),
1595   /* 1010 */ V(5, 4, 4),
1596   /* 1011 */ V(2, 6, 4),
1597   /* 1100 */ V(6, 2, 4),
1598   /* 1101 */ V(1, 6, 4),
1599   /* 1110 */ PTR(364, 1),
1600   /* 1111 */ V(3, 5, 4),
1601  
1602   /* 0100 ... */
1603   /* 0000 */ V(6, 1, 3),        /* 80 */
1604   /* 0001 */ V(6, 1, 3),
1605   /* 0010 */ V(5, 3, 4),
1606   /* 0011 */ V(4, 4, 4),
1607   /* 0100 */ V(2, 5, 3),
1608   /* 0101 */ V(2, 5, 3),
1609   /* 0110 */ V(5, 2, 3),
1610   /* 0111 */ V(5, 2, 3),
1611   /* 1000 */ V(1, 5, 3),
1612   /* 1001 */ V(1, 5, 3),
1613   /* 1010 */ V(5, 1, 3),
1614   /* 1011 */ V(5, 1, 3),
1615   /* 1100 */ V(0, 5, 4),
1616   /* 1101 */ V(5, 0, 4),
1617   /* 1110 */ V(3, 4, 3),
1618   /* 1111 */ V(3, 4, 3),
1619  
1620   /* 0101 ... */
1621   /* 000  */ V(4, 3, 3),        /* 96 */
1622   /* 001  */ V(2, 4, 3),
1623   /* 010  */ V(4, 2, 3),
1624   /* 011  */ V(3, 3, 3),
1625   /* 100  */ V(4, 1, 2),
1626   /* 101  */ V(4, 1, 2),
1627   /* 110  */ V(1, 4, 3),
1628   /* 111  */ V(0, 4, 3),
1629  
1630   /* 0110 ... */
1631   /* 000  */ V(2, 3, 2),        /* 104 */
1632   /* 001  */ V(2, 3, 2),
1633   /* 010  */ V(3, 2, 2),
1634   /* 011  */ V(3, 2, 2),
1635   /* 100  */ V(4, 0, 3),
1636   /* 101  */ V(0, 3, 3),
1637   /* 110  */ V(1, 3, 2),
1638   /* 111  */ V(1, 3, 2),
1639  
1640   /* 0111 ... */
1641   /* 00   */ V(3, 1, 2),        /* 112 */
1642   /* 01   */ V(3, 0, 2),
1643   /* 10   */ V(2, 2, 1),
1644   /* 11   */ V(2, 2, 1),
1645  
1646   /* 1000 ... */
1647   /* 0    */ V(1, 2, 1),        /* 116 */
1648   /* 1    */ V(2, 1, 1),
1649  
1650   /* 1001 ... */
1651   /* 0    */ V(0, 2, 1),        /* 118 */
1652   /* 1    */ V(2, 0, 1),
1653  
1654   /* 0000 0000 ... */
1655   /* 0000 */ PTR(366, 1),       /* 120 */
1656   /* 0001 */ PTR(368, 1),
1657   /* 0010 */ V(14, 14, 4),
1658   /* 0011 */ PTR(370, 1),
1659   /* 0100 */ PTR(372, 1),
1660   /* 0101 */ PTR(374, 1),
1661   /* 0110 */ V(15, 11, 4),
1662   /* 0111 */ PTR(376, 1),
1663   /* 1000 */ V(13, 13, 4),
1664   /* 1001 */ V(10, 15, 4),
1665   /* 1010 */ V(15, 10, 4),
1666   /* 1011 */ V(11, 14, 4),
1667   /* 1100 */ V(14, 11, 4),
1668   /* 1101 */ V(12, 13, 4),
1669   /* 1110 */ V(13, 12, 4),
1670   /* 1111 */ V(9, 15, 4),
1671  
1672   /* 0000 0001 ... */
1673   /* 0000 */ V(15, 9, 4),       /* 136 */
1674   /* 0001 */ V(14, 10, 4),
1675   /* 0010 */ V(11, 13, 4),
1676   /* 0011 */ V(13, 11, 4),
1677   /* 0100 */ V(8, 15, 4),
1678   /* 0101 */ V(15, 8, 4),
1679   /* 0110 */ V(12, 12, 4),
1680   /* 0111 */ V(9, 14, 4),
1681   /* 1000 */ V(14, 9, 4),
1682   /* 1001 */ V(7, 15, 4),
1683   /* 1010 */ V(15, 7, 4),
1684   /* 1011 */ V(10, 13, 4),
1685   /* 1100 */ V(13, 10, 4),
1686   /* 1101 */ V(11, 12, 4),
1687   /* 1110 */ V(6, 15, 4),
1688   /* 1111 */ PTR(378, 1),
1689  
1690   /* 0000 0010 ... */
1691   /* 0000 */ V(12, 11, 3),      /* 152 */
1692   /* 0001 */ V(12, 11, 3),
1693   /* 0010 */ V(15, 6, 3),
1694   /* 0011 */ V(15, 6, 3),
1695   /* 0100 */ V(8, 14, 4),
1696   /* 0101 */ V(14, 8, 4),
1697   /* 0110 */ V(5, 15, 4),
1698   /* 0111 */ V(9, 13, 4),
1699   /* 1000 */ V(15, 5, 3),
1700   /* 1001 */ V(15, 5, 3),
1701   /* 1010 */ V(7, 14, 3),
1702   /* 1011 */ V(7, 14, 3),
1703   /* 1100 */ V(14, 7, 3),
1704   /* 1101 */ V(14, 7, 3),
1705   /* 1110 */ V(10, 12, 3),
1706   /* 1111 */ V(10, 12, 3),
1707  
1708   /* 0000 0011 ... */
1709   /* 0000 */ V(12, 10, 3),      /* 168 */
1710   /* 0001 */ V(12, 10, 3),
1711   /* 0010 */ V(11, 11, 3),
1712   /* 0011 */ V(11, 11, 3),
1713   /* 0100 */ V(13, 9, 4),
1714   /* 0101 */ V(8, 13, 4),
1715   /* 0110 */ V(4, 15, 3),
1716   /* 0111 */ V(4, 15, 3),
1717   /* 1000 */ V(15, 4, 3),
1718   /* 1001 */ V(15, 4, 3),
1719   /* 1010 */ V(3, 15, 3),
1720   /* 1011 */ V(3, 15, 3),
1721   /* 1100 */ V(15, 3, 3),
1722   /* 1101 */ V(15, 3, 3),
1723   /* 1110 */ V(13, 8, 3),
1724   /* 1111 */ V(13, 8, 3),
1725  
1726   /* 0000 0100 ... */
1727   /* 0000 */ V(14, 6, 3),       /* 184 */
1728   /* 0001 */ V(14, 6, 3),
1729   /* 0010 */ V(2, 15, 3),
1730   /* 0011 */ V(2, 15, 3),
1731   /* 0100 */ V(15, 2, 3),
1732   /* 0101 */ V(15, 2, 3),
1733   /* 0110 */ V(6, 14, 4),
1734   /* 0111 */ V(15, 0, 4),
1735   /* 1000 */ V(1, 15, 3),
1736   /* 1001 */ V(1, 15, 3),
1737   /* 1010 */ V(15, 1, 3),
1738   /* 1011 */ V(15, 1, 3),
1739   /* 1100 */ V(9, 12, 3),
1740   /* 1101 */ V(9, 12, 3),
1741   /* 1110 */ V(12, 9, 3),
1742   /* 1111 */ V(12, 9, 3),
1743  
1744   /* 0000 0101 ... */
1745   /* 000  */ V(5, 14, 3),       /* 200 */
1746   /* 001  */ V(10, 11, 3),
1747   /* 010  */ V(11, 10, 3),
1748   /* 011  */ V(14, 5, 3),
1749   /* 100  */ V(7, 13, 3),
1750   /* 101  */ V(13, 7, 3),
1751   /* 110  */ V(4, 14, 3),
1752   /* 111  */ V(14, 4, 3),
1753  
1754   /* 0000 0110 ... */
1755   /* 000  */ V(8, 12, 3),       /* 208 */
1756   /* 001  */ V(12, 8, 3),
1757   /* 010  */ V(3, 14, 3),
1758   /* 011  */ V(6, 13, 3),
1759   /* 100  */ V(13, 6, 3),
1760   /* 101  */ V(14, 3, 3),
1761   /* 110  */ V(9, 11, 3),
1762   /* 111  */ V(11, 9, 3),
1763  
1764   /* 0000 0111 ... */
1765   /* 0000 */ V(2, 14, 3),       /* 216 */
1766   /* 0001 */ V(2, 14, 3),
1767   /* 0010 */ V(10, 10, 3),
1768   /* 0011 */ V(10, 10, 3),
1769   /* 0100 */ V(14, 2, 3),
1770   /* 0101 */ V(14, 2, 3),
1771   /* 0110 */ V(1, 14, 3),
1772   /* 0111 */ V(1, 14, 3),
1773   /* 1000 */ V(14, 1, 3),
1774   /* 1001 */ V(14, 1, 3),
1775   /* 1010 */ V(0, 14, 4),
1776   /* 1011 */ V(14, 0, 4),
1777   /* 1100 */ V(5, 13, 3),
1778   /* 1101 */ V(5, 13, 3),
1779   /* 1110 */ V(13, 5, 3),
1780   /* 1111 */ V(13, 5, 3),
1781  
1782   /* 0000 1000 ... */
1783   /* 000  */ V(7, 12, 3),       /* 232 */
1784   /* 001  */ V(12, 7, 3),
1785   /* 010  */ V(4, 13, 3),
1786   /* 011  */ V(8, 11, 3),
1787   /* 100  */ V(13, 4, 2),
1788   /* 101  */ V(13, 4, 2),
1789   /* 110  */ V(11, 8, 3),
1790   /* 111  */ V(9, 10, 3),
1791  
1792   /* 0000 1001 ... */
1793   /* 000  */ V(10, 9, 3),       /* 240 */
1794   /* 001  */ V(6, 12, 3),
1795   /* 010  */ V(12, 6, 3),
1796   /* 011  */ V(3, 13, 3),
1797   /* 100  */ V(13, 3, 2),
1798   /* 101  */ V(13, 3, 2),
1799   /* 110  */ V(13, 2, 2),
1800   /* 111  */ V(13, 2, 2),
1801  
1802   /* 0000 1010 ... */
1803   /* 000  */ V(2, 13, 3),       /* 248 */
1804   /* 001  */ V(0, 13, 3),
1805   /* 010  */ V(1, 13, 2),
1806   /* 011  */ V(1, 13, 2),
1807   /* 100  */ V(7, 11, 2),
1808   /* 101  */ V(7, 11, 2),
1809   /* 110  */ V(11, 7, 2),
1810   /* 111  */ V(11, 7, 2),
1811  
1812   /* 0000 1011 ... */
1813   /* 000  */ V(13, 1, 2),       /* 256 */
1814   /* 001  */ V(13, 1, 2),
1815   /* 010  */ V(5, 12, 3),
1816   /* 011  */ V(13, 0, 3),
1817   /* 100  */ V(12, 5, 2),
1818   /* 101  */ V(12, 5, 2),
1819   /* 110  */ V(8, 10, 2),
1820   /* 111  */ V(8, 10, 2),
1821  
1822   /* 0000 1100 ... */
1823   /* 00   */ V(10, 8, 2),       /* 264 */
1824   /* 01   */ V(4, 12, 2),
1825   /* 10   */ V(12, 4, 2),
1826   /* 11   */ V(6, 11, 2),
1827  
1828   /* 0000 1101 ... */
1829   /* 000  */ V(11, 6, 2),       /* 268 */
1830   /* 001  */ V(11, 6, 2),
1831   /* 010  */ V(9, 9, 3),
1832   /* 011  */ V(0, 12, 3),
1833   /* 100  */ V(3, 12, 2),
1834   /* 101  */ V(3, 12, 2),
1835   /* 110  */ V(12, 3, 2),
1836   /* 111  */ V(12, 3, 2),
1837  
1838   /* 0000 1110 ... */
1839   /* 000  */ V(7, 10, 2),       /* 276 */
1840   /* 001  */ V(7, 10, 2),
1841   /* 010  */ V(10, 7, 2),
1842   /* 011  */ V(10, 7, 2),
1843   /* 100  */ V(10, 6, 2),
1844   /* 101  */ V(10, 6, 2),
1845   /* 110  */ V(12, 0, 3),
1846   /* 111  */ V(0, 11, 3),
1847  
1848   /* 0000 1111 ... */
1849   /* 00   */ V(12, 2, 1),       /* 284 */
1850   /* 01   */ V(12, 2, 1),
1851   /* 10   */ V(2, 12, 2),
1852   /* 11   */ V(5, 11, 2),
1853  
1854   /* 0001 0000 ... */
1855   /* 00   */ V(11, 5, 2),       /* 288 */
1856   /* 01   */ V(1, 12, 2),
1857   /* 10   */ V(8, 9, 2),
1858   /* 11   */ V(9, 8, 2),
1859  
1860   /* 0001 0001 ... */
1861   /* 00   */ V(12, 1, 2),       /* 292 */
1862   /* 01   */ V(4, 11, 2),
1863   /* 10   */ V(11, 4, 2),
1864   /* 11   */ V(6, 10, 2),
1865  
1866   /* 0001 0010 ... */
1867   /* 00   */ V(3, 11, 2),       /* 296 */
1868   /* 01   */ V(7, 9, 2),
1869   /* 10   */ V(11, 3, 1),
1870   /* 11   */ V(11, 3, 1),
1871  
1872   /* 0001 0011 ... */
1873   /* 00   */ V(9, 7, 2),        /* 300 */
1874   /* 01   */ V(8, 8, 2),
1875   /* 10   */ V(2, 11, 2),
1876   /* 11   */ V(5, 10, 2),
1877  
1878   /* 0001 0100 ... */
1879   /* 00   */ V(11, 2, 1),       /* 304 */
1880   /* 01   */ V(11, 2, 1),
1881   /* 10   */ V(10, 5, 2),
1882   /* 11   */ V(1, 11, 2),
1883  
1884   /* 0001 0101 ... */
1885   /* 00   */ V(11, 1, 1),       /* 308 */
1886   /* 01   */ V(11, 1, 1),
1887   /* 10   */ V(11, 0, 2),
1888   /* 11   */ V(6, 9, 2),
1889  
1890   /* 0001 0110 ... */
1891   /* 00   */ V(9, 6, 2),        /* 312 */
1892   /* 01   */ V(4, 10, 2),
1893   /* 10   */ V(10, 4, 2),
1894   /* 11   */ V(7, 8, 2),
1895  
1896   /* 0001 0111 ... */
1897   /* 00   */ V(8, 7, 2),        /* 316 */
1898   /* 01   */ V(3, 10, 2),
1899   /* 10   */ V(10, 3, 1),
1900   /* 11   */ V(10, 3, 1),
1901  
1902   /* 0001 1000 ... */
1903   /* 0    */ V(5, 9, 1),        /* 320 */
1904   /* 1    */ V(9, 5, 1),
1905  
1906   /* 0001 1001 ... */
1907   /* 0    */ V(2, 10, 1),       /* 322 */
1908   /* 1    */ V(10, 2, 1),
1909  
1910   /* 0001 1010 ... */
1911   /* 0    */ V(1, 10, 1),       /* 324 */
1912   /* 1    */ V(10, 1, 1),
1913  
1914   /* 0001 1011 ... */
1915   /* 00   */ V(0, 10, 2),       /* 326 */
1916   /* 01   */ V(10, 0, 2),
1917   /* 10   */ V(6, 8, 1),
1918   /* 11   */ V(6, 8, 1),
1919  
1920   /* 0001 1100 ... */
1921   /* 0    */ V(8, 6, 1),        /* 330 */
1922   /* 1    */ V(4, 9, 1),
1923  
1924   /* 0001 1101 ... */
1925   /* 0    */ V(9, 4, 1),        /* 332 */
1926   /* 1    */ V(3, 9, 1),
1927  
1928   /* 0001 1110 ... */
1929   /* 00   */ V(9, 3, 1),        /* 334 */
1930   /* 01   */ V(9, 3, 1),
1931   /* 10   */ V(7, 7, 2),
1932   /* 11   */ V(0, 9, 2),
1933  
1934   /* 0001 1111 ... */
1935   /* 0    */ V(5, 8, 1),        /* 338 */
1936   /* 1    */ V(8, 5, 1),
1937  
1938   /* 0010 0000 ... */
1939   /* 0    */ V(2, 9, 1),        /* 340 */
1940   /* 1    */ V(6, 7, 1),
1941  
1942   /* 0010 0001 ... */
1943   /* 0    */ V(7, 6, 1),        /* 342 */
1944   /* 1    */ V(9, 2, 1),
1945  
1946   /* 0010 0011 ... */
1947   /* 0    */ V(1, 9, 1),        /* 344 */
1948   /* 1    */ V(9, 0, 1),
1949  
1950   /* 0010 0100 ... */
1951   /* 0    */ V(4, 8, 1),        /* 346 */
1952   /* 1    */ V(8, 4, 1),
1953  
1954   /* 0010 0101 ... */
1955   /* 0    */ V(5, 7, 1),        /* 348 */
1956   /* 1    */ V(7, 5, 1),
1957  
1958   /* 0010 0110 ... */
1959   /* 0    */ V(3, 8, 1),        /* 350 */
1960   /* 1    */ V(8, 3, 1),
1961  
1962   /* 0010 0111 ... */
1963   /* 0    */ V(6, 6, 1),        /* 352 */
1964   /* 1    */ V(4, 7, 1),
1965  
1966   /* 0010 1100 ... */
1967   /* 0    */ V(7, 4, 1),        /* 354 */
1968   /* 1    */ V(0, 8, 1),
1969  
1970   /* 0010 1101 ... */
1971   /* 0    */ V(8, 0, 1),        /* 356 */
1972   /* 1    */ V(5, 6, 1),
1973  
1974   /* 0010 1110 ... */
1975   /* 0    */ V(6, 5, 1),        /* 358 */
1976   /* 1    */ V(3, 7, 1),
1977  
1978   /* 0010 1111 ... */
1979   /* 0    */ V(7, 3, 1),        /* 360 */
1980   /* 1    */ V(4, 6, 1),
1981  
1982   /* 0011 0110 ... */
1983   /* 0    */ V(0, 7, 1),        /* 362 */
1984   /* 1    */ V(7, 0, 1),
1985  
1986   /* 0011 1110 ... */
1987   /* 0    */ V(0, 6, 1),        /* 364 */
1988   /* 1    */ V(6, 0, 1),
1989  
1990   /* 0000 0000 0000 ... */
1991   /* 0    */ V(15, 15, 1),      /* 366 */
1992   /* 1    */ V(14, 15, 1),
1993  
1994   /* 0000 0000 0001 ... */
1995   /* 0    */ V(15, 14, 1),      /* 368 */
1996   /* 1    */ V(13, 15, 1),
1997  
1998   /* 0000 0000 0011 ... */
1999   /* 0    */ V(15, 13, 1),      /* 370 */
2000   /* 1    */ V(12, 15, 1),
2001  
2002   /* 0000 0000 0100 ... */
2003   /* 0    */ V(15, 12, 1),      /* 372 */
2004   /* 1    */ V(13, 14, 1),
2005  
2006   /* 0000 0000 0101 ... */
2007   /* 0    */ V(14, 13, 1),      /* 374 */
2008   /* 1    */ V(11, 15, 1),
2009  
2010   /* 0000 0000 0111 ... */
2011   /* 0    */ V(12, 14, 1),      /* 376 */
2012   /* 1    */ V(14, 12, 1),
2013  
2014   /* 0000 0001 1111 ... */
2015   /* 0    */ V(10, 14, 1),      /* 378 */
2016   /* 1    */ V(0, 15, 1)
2017 };
2018  
2019 static
2020 union huffpair const hufftab16[] = {
2021   /* 0000 */ PTR(16, 4),
2022   /* 0001 */ PTR(32, 4),
2023   /* 0010 */ PTR(48, 4),
2024   /* 0011 */ PTR(64, 2),
2025   /* 0100 */ V(1, 1, 4),
2026   /* 0101 */ V(0, 1, 4),
2027   /* 0110 */ V(1, 0, 3),
2028   /* 0111 */ V(1, 0, 3),
2029   /* 1000 */ V(0, 0, 1),
2030   /* 1001 */ V(0, 0, 1),
2031   /* 1010 */ V(0, 0, 1),
2032   /* 1011 */ V(0, 0, 1),
2033   /* 1100 */ V(0, 0, 1),
2034   /* 1101 */ V(0, 0, 1),
2035   /* 1110 */ V(0, 0, 1),
2036   /* 1111 */ V(0, 0, 1),
2037  
2038   /* 0000 ... */
2039   /* 0000 */ PTR(68, 3),        /* 16 */
2040   /* 0001 */ PTR(76, 3),
2041   /* 0010 */ PTR(84, 2),
2042   /* 0011 */ V(15, 15, 4),
2043   /* 0100 */ PTR(88, 2),
2044   /* 0101 */ PTR(92, 1),
2045   /* 0110 */ PTR(94, 4),
2046   /* 0111 */ V(15, 2, 4),
2047   /* 1000 */ PTR(110, 1),
2048   /* 1001 */ V(1, 15, 4),
2049   /* 1010 */ V(15, 1, 4),
2050   /* 1011 */ PTR(112, 4),
2051   /* 1100 */ PTR(128, 4),
2052   /* 1101 */ PTR(144, 4),
2053   /* 1110 */ PTR(160, 4),
2054   /* 1111 */ PTR(176, 4),
2055  
2056   /* 0001 ... */
2057   /* 0000 */ PTR(192, 4),       /* 32 */
2058   /* 0001 */ PTR(208, 3),
2059   /* 0010 */ PTR(216, 3),
2060   /* 0011 */ PTR(224, 3),
2061   /* 0100 */ PTR(232, 3),
2062   /* 0101 */ PTR(240, 3),
2063   /* 0110 */ PTR(248, 3),
2064   /* 0111 */ PTR(256, 3),
2065   /* 1000 */ PTR(264, 2),
2066   /* 1001 */ PTR(268, 2),
2067   /* 1010 */ PTR(272, 1),
2068   /* 1011 */ PTR(274, 2),
2069   /* 1100 */ PTR(278, 2),
2070   /* 1101 */ PTR(282, 1),
2071   /* 1110 */ V(5, 1, 4),
2072   /* 1111 */ PTR(284, 1),
2073  
2074   /* 0010 ... */
2075   /* 0000 */ PTR(286, 1),       /* 48 */
2076   /* 0001 */ PTR(288, 1),
2077   /* 0010 */ PTR(290, 1),
2078   /* 0011 */ V(1, 4, 4),
2079   /* 0100 */ V(4, 1, 4),
2080   /* 0101 */ PTR(292, 1),
2081   /* 0110 */ V(2, 3, 4),
2082   /* 0111 */ V(3, 2, 4),
2083   /* 1000 */ V(1, 3, 3),
2084   /* 1001 */ V(1, 3, 3),
2085   /* 1010 */ V(3, 1, 3),
2086   /* 1011 */ V(3, 1, 3),
2087   /* 1100 */ V(0, 3, 4),
2088   /* 1101 */ V(3, 0, 4),
2089   /* 1110 */ V(2, 2, 3),
2090   /* 1111 */ V(2, 2, 3),
2091  
2092   /* 0011 ... */
2093   /* 00   */ V(1, 2, 2),        /* 64 */
2094   /* 01   */ V(2, 1, 2),
2095   /* 10   */ V(0, 2, 2),
2096   /* 11   */ V(2, 0, 2),
2097  
2098   /* 0000 0000 ... */
2099   /* 000  */ V(14, 15, 3),      /* 68 */
2100   /* 001  */ V(15, 14, 3),
2101   /* 010  */ V(13, 15, 3),
2102   /* 011  */ V(15, 13, 3),
2103   /* 100  */ V(12, 15, 3),
2104   /* 101  */ V(15, 12, 3),
2105   /* 110  */ V(11, 15, 3),
2106   /* 111  */ V(15, 11, 3),
2107  
2108   /* 0000 0001 ... */
2109   /* 000  */ V(10, 15, 2),      /* 76 */
2110   /* 001  */ V(10, 15, 2),
2111   /* 010  */ V(15, 10, 3),
2112   /* 011  */ V(9, 15, 3),
2113   /* 100  */ V(15, 9, 3),
2114   /* 101  */ V(15, 8, 3),
2115   /* 110  */ V(8, 15, 2),
2116   /* 111  */ V(8, 15, 2),
2117  
2118   /* 0000 0010 ... */
2119   /* 00   */ V(7, 15, 2),       /* 84 */
2120   /* 01   */ V(15, 7, 2),
2121   /* 10   */ V(6, 15, 2),
2122   /* 11   */ V(15, 6, 2),
2123  
2124   /* 0000 0100 ... */
2125   /* 00   */ V(5, 15, 2),       /* 88 */
2126   /* 01   */ V(15, 5, 2),
2127   /* 10   */ V(4, 15, 1),
2128   /* 11   */ V(4, 15, 1),
2129  
2130   /* 0000 0101 ... */
2131   /* 0    */ V(15, 4, 1),       /* 92 */
2132   /* 1    */ V(15, 3, 1),
2133  
2134   /* 0000 0110 ... */
2135   /* 0000 */ V(15, 0, 1),       /* 94 */
2136   /* 0001 */ V(15, 0, 1),
2137   /* 0010 */ V(15, 0, 1),
2138   /* 0011 */ V(15, 0, 1),
2139   /* 0100 */ V(15, 0, 1),
2140   /* 0101 */ V(15, 0, 1),
2141   /* 0110 */ V(15, 0, 1),
2142   /* 0111 */ V(15, 0, 1),
2143   /* 1000 */ V(3, 15, 2),
2144   /* 1001 */ V(3, 15, 2),
2145   /* 1010 */ V(3, 15, 2),
2146   /* 1011 */ V(3, 15, 2),
2147   /* 1100 */ PTR(294, 4),
2148   /* 1101 */ PTR(310, 3),
2149   /* 1110 */ PTR(318, 3),
2150   /* 1111 */ PTR(326, 3),
2151  
2152   /* 0000 1000 ... */
2153   /* 0    */ V(2, 15, 1),       /* 110 */
2154   /* 1    */ V(0, 15, 1),
2155  
2156   /* 0000 1011 ... */
2157   /* 0000 */ PTR(334, 2),       /* 112 */
2158   /* 0001 */ PTR(338, 2),
2159   /* 0010 */ PTR(342, 2),
2160   /* 0011 */ PTR(346, 1),
2161   /* 0100 */ PTR(348, 2),
2162   /* 0101 */ PTR(352, 2),
2163   /* 0110 */ PTR(356, 1),
2164   /* 0111 */ PTR(358, 2),
2165   /* 1000 */ PTR(362, 2),
2166   /* 1001 */ PTR(366, 2),
2167   /* 1010 */ PTR(370, 2),
2168   /* 1011 */ V(14, 3, 4),
2169   /* 1100 */ PTR(374, 1),
2170   /* 1101 */ PTR(376, 1),
2171   /* 1110 */ PTR(378, 1),
2172   /* 1111 */ PTR(380, 1),
2173  
2174   /* 0000 1100 ... */
2175   /* 0000 */ PTR(382, 1),       /* 128 */
2176   /* 0001 */ PTR(384, 1),
2177   /* 0010 */ PTR(386, 1),
2178   /* 0011 */ V(0, 13, 4),
2179   /* 0100 */ PTR(388, 1),
2180   /* 0101 */ PTR(390, 1),
2181   /* 0110 */ PTR(392, 1),
2182   /* 0111 */ V(3, 12, 4),
2183   /* 1000 */ PTR(394, 1),
2184   /* 1001 */ V(1, 12, 4),
2185   /* 1010 */ V(12, 0, 4),
2186   /* 1011 */ PTR(396, 1),
2187   /* 1100 */ V(14, 2, 3),
2188   /* 1101 */ V(14, 2, 3),
2189   /* 1110 */ V(2, 14, 4),
2190   /* 1111 */ V(1, 14, 4),
2191  
2192   /* 0000 1101 ... */
2193   /* 0000 */ V(13, 3, 4),       /* 144 */
2194   /* 0001 */ V(2, 13, 4),
2195   /* 0010 */ V(13, 2, 4),
2196   /* 0011 */ V(13, 1, 4),
2197   /* 0100 */ V(3, 11, 4),
2198   /* 0101 */ PTR(398, 1),
2199   /* 0110 */ V(1, 13, 3),
2200   /* 0111 */ V(1, 13, 3),
2201   /* 1000 */ V(12, 4, 4),
2202   /* 1001 */ V(6, 11, 4),
2203   /* 1010 */ V(12, 3, 4),
2204   /* 1011 */ V(10, 7, 4),
2205   /* 1100 */ V(2, 12, 3),
2206   /* 1101 */ V(2, 12, 3),
2207   /* 1110 */ V(12, 2, 4),
2208   /* 1111 */ V(11, 5, 4),
2209  
2210   /* 0000 1110 ... */
2211   /* 0000 */ V(12, 1, 4),       /* 160 */
2212   /* 0001 */ V(0, 12, 4),
2213   /* 0010 */ V(4, 11, 4),
2214   /* 0011 */ V(11, 4, 4),
2215   /* 0100 */ V(6, 10, 4),
2216   /* 0101 */ V(10, 6, 4),
2217   /* 0110 */ V(11, 3, 3),
2218   /* 0111 */ V(11, 3, 3),
2219   /* 1000 */ V(5, 10, 4),
2220   /* 1001 */ V(10, 5, 4),
2221   /* 1010 */ V(2, 11, 3),
2222   /* 1011 */ V(2, 11, 3),
2223   /* 1100 */ V(11, 2, 3),
2224   /* 1101 */ V(11, 2, 3),
2225   /* 1110 */ V(1, 11, 3),
2226   /* 1111 */ V(1, 11, 3),
2227  
2228   /* 0000 1111 ... */
2229   /* 0000 */ V(11, 1, 3),       /* 176 */
2230   /* 0001 */ V(11, 1, 3),
2231   /* 0010 */ V(0, 11, 4),
2232   /* 0011 */ V(11, 0, 4),
2233   /* 0100 */ V(6, 9, 4),
2234   /* 0101 */ V(9, 6, 4),
2235   /* 0110 */ V(4, 10, 4),
2236   /* 0111 */ V(10, 4, 4),
2237   /* 1000 */ V(7, 8, 4),
2238   /* 1001 */ V(8, 7, 4),
2239   /* 1010 */ V(10, 3, 3),
2240   /* 1011 */ V(10, 3, 3),
2241   /* 1100 */ V(3, 10, 4),
2242   /* 1101 */ V(5, 9, 4),
2243   /* 1110 */ V(2, 10, 3),
2244   /* 1111 */ V(2, 10, 3),
2245  
2246   /* 0001 0000 ... */
2247   /* 0000 */ V(9, 5, 4),        /* 192 */
2248   /* 0001 */ V(6, 8, 4),
2249   /* 0010 */ V(10, 1, 3),
2250   /* 0011 */ V(10, 1, 3),
2251   /* 0100 */ V(8, 6, 4),
2252   /* 0101 */ V(7, 7, 4),
2253   /* 0110 */ V(9, 4, 3),
2254   /* 0111 */ V(9, 4, 3),
2255   /* 1000 */ V(4, 9, 4),
2256   /* 1001 */ V(5, 7, 4),
2257   /* 1010 */ V(6, 7, 3),
2258   /* 1011 */ V(6, 7, 3),
2259   /* 1100 */ V(10, 2, 2),
2260   /* 1101 */ V(10, 2, 2),
2261   /* 1110 */ V(10, 2, 2),
2262   /* 1111 */ V(10, 2, 2),
2263  
2264   /* 0001 0001 ... */
2265   /* 000  */ V(1, 10, 2),       /* 208 */
2266   /* 001  */ V(1, 10, 2),
2267   /* 010  */ V(0, 10, 3),
2268   /* 011  */ V(10, 0, 3),
2269   /* 100  */ V(3, 9, 3),
2270   /* 101  */ V(9, 3, 3),
2271   /* 110  */ V(5, 8, 3),
2272   /* 111  */ V(8, 5, 3),
2273  
2274   /* 0001 0010 ... */
2275   /* 000  */ V(2, 9, 2),        /* 216 */
2276   /* 001  */ V(2, 9, 2),
2277   /* 010  */ V(9, 2, 2),
2278   /* 011  */ V(9, 2, 2),
2279   /* 100  */ V(7, 6, 3),
2280   /* 101  */ V(0, 9, 3),
2281   /* 110  */ V(1, 9, 2),
2282   /* 111  */ V(1, 9, 2),
2283  
2284   /* 0001 0011 ... */
2285   /* 000  */ V(9, 1, 2),        /* 224 */
2286   /* 001  */ V(9, 1, 2),
2287   /* 010  */ V(9, 0, 3),
2288   /* 011  */ V(4, 8, 3),
2289   /* 100  */ V(8, 4, 3),
2290   /* 101  */ V(7, 5, 3),
2291   /* 110  */ V(3, 8, 3),
2292   /* 111  */ V(8, 3, 3),
2293  
2294   /* 0001 0100 ... */
2295   /* 000  */ V(6, 6, 3),        /* 232 */
2296   /* 001  */ V(2, 8, 3),
2297   /* 010  */ V(8, 2, 2),
2298   /* 011  */ V(8, 2, 2),
2299   /* 100  */ V(4, 7, 3),
2300   /* 101  */ V(7, 4, 3),
2301   /* 110  */ V(1, 8, 2),
2302   /* 111  */ V(1, 8, 2),
2303  
2304   /* 0001 0101 ... */
2305   /* 000  */ V(8, 1, 2),        /* 240 */
2306   /* 001  */ V(8, 1, 2),
2307   /* 010  */ V(8, 0, 2),
2308   /* 011  */ V(8, 0, 2),
2309   /* 100  */ V(0, 8, 3),
2310   /* 101  */ V(5, 6, 3),
2311   /* 110  */ V(3, 7, 2),
2312   /* 111  */ V(3, 7, 2),
2313  
2314   /* 0001 0110 ... */
2315   /* 000  */ V(7, 3, 2),        /* 248 */
2316   /* 001  */ V(7, 3, 2),
2317   /* 010  */ V(6, 5, 3),
2318   /* 011  */ V(4, 6, 3),
2319   /* 100  */ V(2, 7, 2),
2320   /* 101  */ V(2, 7, 2),
2321   /* 110  */ V(7, 2, 2),
2322   /* 111  */ V(7, 2, 2),
2323  
2324   /* 0001 0111 ... */
2325   /* 000  */ V(6, 4, 3),        /* 256 */
2326   /* 001  */ V(5, 5, 3),
2327   /* 010  */ V(0, 7, 2),
2328   /* 011  */ V(0, 7, 2),
2329   /* 100  */ V(1, 7, 1),
2330   /* 101  */ V(1, 7, 1),
2331   /* 110  */ V(1, 7, 1),