hufftables.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:90k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * FAAD - Freeware Advanced Audio Decoder
  3.  * Copyright (C) 2001 Menno Bakker
  4.  *
  5.  * This library is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Lesser General Public
  7.  * License as published by the Free Software Foundation; either
  8.  * version 2.1 of the License, or (at your option) any later version.
  9.  *
  10.  * This library 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 GNU
  13.  * Lesser General Public License for more details.
  14.  * You should have received a copy of the GNU Lesser General Public
  15.  * License along with this library; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  * $Id: hufftables.c,v 1.6 2002/01/09 22:25:41 wmay Exp $
  19.  */
  20. #include "all.h"
  21. Huffman book1[] = {
  22.       /* idx             codeword   len  codew   x   y   v   w */
  23.     { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
  24.     { /*   1:              1 0000 */  5,    16,  1,  0,  0,  0 },
  25.     { /*   2:              1 0001 */  5,    17, -1,  0,  0,  0 },
  26.     { /*   3:              1 0010 */  5,    18,  0,  0,  0, -1 },
  27.     { /*   4:              1 0011 */  5,    19,  0,  1,  0,  0 },
  28.     { /*   5:              1 0100 */  5,    20,  0,  0,  0,  1 },
  29.     { /*   6:              1 0101 */  5,    21,  0,  0, -1,  0 },
  30.     { /*   7:              1 0110 */  5,    22,  0,  0,  1,  0 },
  31.     { /*   8:              1 0111 */  5,    23,  0, -1,  0,  0 },
  32.     { /*   9:            110 0000 */  7,    96,  1, -1,  0,  0 },
  33.     { /*  10:            110 0001 */  7,    97, -1,  1,  0,  0 },
  34.     { /*  11:            110 0010 */  7,    98,  0,  0, -1,  1 },
  35.     { /*  12:            110 0011 */  7,    99,  0,  1, -1,  0 },
  36.     { /*  13:            110 0100 */  7,   100,  0, -1,  1,  0 },
  37.     { /*  14:            110 0101 */  7,   101,  0,  0,  1, -1 },
  38.     { /*  15:            110 0110 */  7,   102,  1,  1,  0,  0 },
  39.     { /*  16:            110 0111 */  7,   103,  0,  0, -1, -1 },
  40.     { /*  17:            110 1000 */  7,   104, -1, -1,  0,  0 },
  41.     { /*  18:            110 1001 */  7,   105,  0, -1, -1,  0 },
  42.     { /*  19:            110 1010 */  7,   106,  1,  0, -1,  0 },
  43.     { /*  20:            110 1011 */  7,   107,  0,  1,  0, -1 },
  44.     { /*  21:            110 1100 */  7,   108, -1,  0,  1,  0 },
  45.     { /*  22:            110 1101 */  7,   109,  0,  0,  1,  1 },
  46.     { /*  23:            110 1110 */  7,   110,  1,  0,  1,  0 },
  47.     { /*  24:            110 1111 */  7,   111,  0, -1,  0,  1 },
  48.     { /*  25:            111 0000 */  7,   112,  0,  1,  1,  0 },
  49.     { /*  26:            111 0001 */  7,   113,  0,  1,  0,  1 },
  50.     { /*  27:            111 0010 */  7,   114, -1,  0, -1,  0 },
  51.     { /*  28:            111 0011 */  7,   115,  1,  0,  0,  1 },
  52.     { /*  29:            111 0100 */  7,   116, -1,  0,  0, -1 },
  53.     { /*  30:            111 0101 */  7,   117,  1,  0,  0, -1 },
  54.     { /*  31:            111 0110 */  7,   118, -1,  0,  0,  1 },
  55.     { /*  32:            111 0111 */  7,   119,  0, -1,  0, -1 },
  56.     { /*  33:         1 1110 0000 */  9,   480,  1,  1, -1,  0 },
  57.     { /*  34:         1 1110 0001 */  9,   481, -1,  1, -1,  0 },
  58.     { /*  35:         1 1110 0010 */  9,   482,  1, -1,  1,  0 },
  59.     { /*  36:         1 1110 0011 */  9,   483,  0,  1,  1, -1 },
  60.     { /*  37:         1 1110 0100 */  9,   484,  0,  1, -1,  1 },
  61.     { /*  38:         1 1110 0101 */  9,   485,  0, -1,  1,  1 },
  62.     { /*  39:         1 1110 0110 */  9,   486,  0, -1,  1, -1 },
  63.     { /*  40:         1 1110 0111 */  9,   487,  1, -1, -1,  0 },
  64.     { /*  41:         1 1110 1000 */  9,   488,  1,  0, -1,  1 },
  65.     { /*  42:         1 1110 1001 */  9,   489,  0,  1, -1, -1 },
  66.     { /*  43:         1 1110 1010 */  9,   490, -1,  1,  1,  0 },
  67.     { /*  44:         1 1110 1011 */  9,   491, -1,  0,  1, -1 },
  68.     { /*  45:         1 1110 1100 */  9,   492, -1, -1,  1,  0 },
  69.     { /*  46:         1 1110 1101 */  9,   493,  0, -1, -1,  1 },
  70.     { /*  47:         1 1110 1110 */  9,   494,  1, -1,  0,  1 },
  71.     { /*  48:         1 1110 1111 */  9,   495,  1, -1,  0, -1 },
  72.     { /*  49:         1 1111 0000 */  9,   496, -1,  1,  0, -1 },
  73.     { /*  50:         1 1111 0001 */  9,   497, -1, -1, -1,  0 },
  74.     { /*  51:         1 1111 0010 */  9,   498,  0, -1, -1, -1 },
  75.     { /*  52:         1 1111 0011 */  9,   499,  0,  1,  1,  1 },
  76.     { /*  53:         1 1111 0100 */  9,   500,  1,  0,  1, -1 },
  77.     { /*  54:         1 1111 0101 */  9,   501,  1,  1,  0,  1 },
  78.     { /*  55:         1 1111 0110 */  9,   502, -1,  1,  0,  1 },
  79.     { /*  56:         1 1111 0111 */  9,   503,  1,  1,  1,  0 },
  80.     { /*  57:        11 1111 0000 */ 10,  1008, -1, -1,  0,  1 },
  81.     { /*  58:        11 1111 0001 */ 10,  1009, -1,  0, -1, -1 },
  82.     { /*  59:        11 1111 0010 */ 10,  1010,  1,  1,  0, -1 },
  83.     { /*  60:        11 1111 0011 */ 10,  1011,  1,  0, -1, -1 },
  84.     { /*  61:        11 1111 0100 */ 10,  1012, -1,  0, -1,  1 },
  85.     { /*  62:        11 1111 0101 */ 10,  1013, -1, -1,  0, -1 },
  86.     { /*  63:        11 1111 0110 */ 10,  1014, -1,  0,  1,  1 },
  87.     { /*  64:        11 1111 0111 */ 10,  1015,  1,  0,  1,  1 },
  88.     { /*  65:       111 1111 0000 */ 11,  2032,  1, -1,  1, -1 },
  89.     { /*  66:       111 1111 0001 */ 11,  2033, -1,  1, -1,  1 },
  90.     { /*  67:       111 1111 0010 */ 11,  2034, -1,  1,  1, -1 },
  91.     { /*  68:       111 1111 0011 */ 11,  2035,  1, -1, -1,  1 },
  92.     { /*  69:       111 1111 0100 */ 11,  2036,  1,  1,  1,  1 },
  93.     { /*  70:       111 1111 0101 */ 11,  2037, -1, -1,  1,  1 },
  94.     { /*  71:       111 1111 0110 */ 11,  2038,  1,  1, -1, -1 },
  95.     { /*  72:       111 1111 0111 */ 11,  2039, -1, -1,  1, -1 },
  96.     { /*  73:       111 1111 1000 */ 11,  2040, -1, -1, -1, -1 },
  97.     { /*  74:       111 1111 1001 */ 11,  2041,  1,  1, -1,  1 },
  98.     { /*  75:       111 1111 1010 */ 11,  2042,  1, -1,  1,  1 },
  99.     { /*  76:       111 1111 1011 */ 11,  2043, -1,  1,  1,  1 },
  100.     { /*  77:       111 1111 1100 */ 11,  2044, -1,  1, -1, -1 },
  101.     { /*  78:       111 1111 1101 */ 11,  2045, -1, -1, -1,  1 },
  102.     { /*  79:       111 1111 1110 */ 11,  2046,  1, -1, -1, -1 },
  103.     { /*  80:       111 1111 1111 */ 11,  2047,  1,  1,  1, -1 }
  104. };
  105. Huffman book2[] = {
  106.       /* idx             codeword   len  codew   x   y   v   w */
  107.     { /*   0:                 000 */  3,     0,  0,  0,  0,  0 },
  108.     { /*   1:                0010 */  4,     2,  1,  0,  0,  0 },
  109.     { /*   2:              0 0110 */  5,     6, -1,  0,  0,  0 },
  110.     { /*   3:              0 0111 */  5,     7,  0,  0,  0,  1 },
  111.     { /*   4:              0 1000 */  5,     8,  0,  0, -1,  0 },
  112.     { /*   5:              0 1001 */  5,     9,  0,  0,  0, -1 },
  113.     { /*   6:              0 1010 */  5,    10,  0, -1,  0,  0 },
  114.     { /*   7:              0 1011 */  5,    11,  0,  0,  1,  0 },
  115.     { /*   8:              0 1100 */  5,    12,  0,  1,  0,  0 },
  116.     { /*   9:             01 1010 */  6,    26,  0, -1,  1,  0 },
  117.     { /*  10:             01 1011 */  6,    27, -1,  1,  0,  0 },
  118.     { /*  11:             01 1100 */  6,    28,  0,  1, -1,  0 },
  119.     { /*  12:             01 1101 */  6,    29,  0,  0,  1, -1 },
  120.     { /*  13:             01 1110 */  6,    30,  0,  1,  0, -1 },
  121.     { /*  14:             01 1111 */  6,    31,  0,  0, -1,  1 },
  122.     { /*  15:             10 0000 */  6,    32, -1,  0,  0, -1 },
  123.     { /*  16:             10 0001 */  6,    33,  1, -1,  0,  0 },
  124.     { /*  17:             10 0010 */  6,    34,  1,  0, -1,  0 },
  125.     { /*  18:             10 0011 */  6,    35, -1, -1,  0,  0 },
  126.     { /*  19:             10 0100 */  6,    36,  0,  0, -1, -1 },
  127.     { /*  20:             10 0101 */  6,    37,  1,  0,  1,  0 },
  128.     { /*  21:             10 0110 */  6,    38,  1,  0,  0,  1 },
  129.     { /*  22:             10 0111 */  6,    39,  0, -1,  0,  1 },
  130.     { /*  23:             10 1000 */  6,    40, -1,  0,  1,  0 },
  131.     { /*  24:             10 1001 */  6,    41,  0,  1,  0,  1 },
  132.     { /*  25:             10 1010 */  6,    42,  0, -1, -1,  0 },
  133.     { /*  26:             10 1011 */  6,    43, -1,  0,  0,  1 },
  134.     { /*  27:             10 1100 */  6,    44,  0, -1,  0, -1 },
  135.     { /*  28:             10 1101 */  6,    45, -1,  0, -1,  0 },
  136.     { /*  29:             10 1110 */  6,    46,  1,  1,  0,  0 },
  137.     { /*  30:             10 1111 */  6,    47,  0,  1,  1,  0 },
  138.     { /*  31:             11 0000 */  6,    48,  0,  0,  1,  1 },
  139.     { /*  32:             11 0001 */  6,    49,  1,  0,  0, -1 },
  140.     { /*  33:            110 0100 */  7,   100,  0,  1, -1,  1 },
  141.     { /*  34:            110 0101 */  7,   101,  1,  0, -1,  1 },
  142.     { /*  35:            110 0110 */  7,   102, -1,  1, -1,  0 },
  143.     { /*  36:            110 0111 */  7,   103,  0, -1,  1, -1 },
  144.     { /*  37:            110 1000 */  7,   104,  1, -1,  1,  0 },
  145.     { /*  38:            110 1001 */  7,   105,  1,  1,  0, -1 },
  146.     { /*  39:            110 1010 */  7,   106,  1,  0,  1,  1 },
  147.     { /*  40:            110 1011 */  7,   107, -1,  1,  1,  0 },
  148.     { /*  41:            110 1100 */  7,   108,  0, -1, -1,  1 },
  149.     { /*  42:            110 1101 */  7,   109,  1,  1,  1,  0 },
  150.     { /*  43:            110 1110 */  7,   110, -1,  0,  1, -1 },
  151.     { /*  44:            110 1111 */  7,   111, -1, -1, -1,  0 },
  152.     { /*  45:            111 0000 */  7,   112, -1,  0, -1,  1 },
  153.     { /*  46:            111 0001 */  7,   113,  1, -1, -1,  0 },
  154.     { /*  47:            111 0010 */  7,   114,  1,  1, -1,  0 },
  155.     { /*  48:           1110 0110 */  8,   230,  1, -1,  0,  1 },
  156.     { /*  49:           1110 0111 */  8,   231, -1,  1,  0, -1 },
  157.     { /*  50:           1110 1000 */  8,   232, -1, -1,  1,  0 },
  158.     { /*  51:           1110 1001 */  8,   233, -1,  0,  1,  1 },
  159.     { /*  52:           1110 1010 */  8,   234, -1, -1,  0,  1 },
  160.     { /*  53:           1110 1011 */  8,   235, -1, -1,  0, -1 },
  161.     { /*  54:           1110 1100 */  8,   236,  0, -1, -1, -1 },
  162.     { /*  55:           1110 1101 */  8,   237,  1,  0,  1, -1 },
  163.     { /*  56:           1110 1110 */  8,   238,  1,  0, -1, -1 },
  164.     { /*  57:           1110 1111 */  8,   239,  0,  1, -1, -1 },
  165.     { /*  58:           1111 0000 */  8,   240,  0,  1,  1,  1 },
  166.     { /*  59:           1111 0001 */  8,   241, -1,  1,  0,  1 },
  167.     { /*  60:           1111 0010 */  8,   242, -1,  0, -1, -1 },
  168.     { /*  61:           1111 0011 */  8,   243,  0,  1,  1, -1 },
  169.     { /*  62:           1111 0100 */  8,   244,  1, -1,  0, -1 },
  170.     { /*  63:           1111 0101 */  8,   245,  0, -1,  1,  1 },
  171.     { /*  64:           1111 0110 */  8,   246,  1,  1,  0,  1 },
  172.     { /*  65:           1111 0111 */  8,   247,  1, -1,  1, -1 },
  173.     { /*  66:           1111 1000 */  8,   248, -1,  1, -1,  1 },
  174.     { /*  67:         1 1111 0010 */  9,   498,  1, -1, -1,  1 },
  175.     { /*  68:         1 1111 0011 */  9,   499, -1, -1, -1, -1 },
  176.     { /*  69:         1 1111 0100 */  9,   500, -1,  1,  1, -1 },
  177.     { /*  70:         1 1111 0101 */  9,   501, -1,  1,  1,  1 },
  178.     { /*  71:         1 1111 0110 */  9,   502,  1,  1,  1,  1 },
  179.     { /*  72:         1 1111 0111 */  9,   503, -1, -1,  1, -1 },
  180.     { /*  73:         1 1111 1000 */  9,   504,  1, -1,  1,  1 },
  181.     { /*  74:         1 1111 1001 */  9,   505, -1,  1, -1, -1 },
  182.     { /*  75:         1 1111 1010 */  9,   506, -1, -1,  1,  1 },
  183.     { /*  76:         1 1111 1011 */  9,   507,  1,  1, -1, -1 },
  184.     { /*  77:         1 1111 1100 */  9,   508,  1, -1, -1, -1 },
  185.     { /*  78:         1 1111 1101 */  9,   509, -1, -1, -1,  1 },
  186.     { /*  79:         1 1111 1110 */  9,   510,  1,  1, -1,  1 },
  187.     { /*  80:         1 1111 1111 */  9,   511,  1,  1,  1, -1 }
  188. };
  189. Huffman book3[] = {
  190.       /* idx             codeword   len  codew   x   y   v   w */
  191.     { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
  192.     { /*   1:                1000 */  4,     8,  1,  0,  0,  0 },
  193.     { /*   2:                1001 */  4,     9,  0,  0,  0,  1 },
  194.     { /*   3:                1010 */  4,    10,  0,  1,  0,  0 },
  195.     { /*   4:                1011 */  4,    11,  0,  0,  1,  0 },
  196.     { /*   5:              1 1000 */  5,    24,  1,  1,  0,  0 },
  197.     { /*   6:              1 1001 */  5,    25,  0,  0,  1,  1 },
  198.     { /*   7:             11 0100 */  6,    52,  0,  1,  1,  0 },
  199.     { /*   8:             11 0101 */  6,    53,  0,  1,  0,  1 },
  200.     { /*   9:             11 0110 */  6,    54,  1,  0,  1,  0 },
  201.     { /*  10:             11 0111 */  6,    55,  0,  1,  1,  1 },
  202.     { /*  11:             11 1000 */  6,    56,  1,  0,  0,  1 },
  203.     { /*  12:             11 1001 */  6,    57,  1,  1,  1,  0 },
  204.     { /*  13:            111 0100 */  7,   116,  1,  1,  1,  1 },
  205.     { /*  14:            111 0101 */  7,   117,  1,  0,  1,  1 },
  206.     { /*  15:            111 0110 */  7,   118,  1,  1,  0,  1 },
  207.     { /*  16:           1110 1110 */  8,   238,  2,  0,  0,  0 },
  208.     { /*  17:           1110 1111 */  8,   239,  0,  0,  0,  2 },
  209.     { /*  18:           1111 0000 */  8,   240,  0,  0,  1,  2 },
  210.     { /*  19:           1111 0001 */  8,   241,  2,  1,  0,  0 },
  211.     { /*  20:           1111 0010 */  8,   242,  1,  2,  1,  0 },
  212.     { /*  21:         1 1110 0110 */  9,   486,  0,  0,  2,  1 },
  213.     { /*  22:         1 1110 0111 */  9,   487,  0,  1,  2,  1 },
  214.     { /*  23:         1 1110 1000 */  9,   488,  1,  2,  0,  0 },
  215.     { /*  24:         1 1110 1001 */  9,   489,  0,  1,  1,  2 },
  216.     { /*  25:         1 1110 1010 */  9,   490,  2,  1,  1,  0 },
  217.     { /*  26:         1 1110 1011 */  9,   491,  0,  0,  2,  0 },
  218.     { /*  27:         1 1110 1100 */  9,   492,  0,  2,  1,  0 },
  219.     { /*  28:         1 1110 1101 */  9,   493,  0,  1,  2,  0 },
  220.     { /*  29:         1 1110 1110 */  9,   494,  0,  2,  0,  0 },
  221.     { /*  30:         1 1110 1111 */  9,   495,  0,  1,  0,  2 },
  222.     { /*  31:         1 1111 0000 */  9,   496,  2,  0,  1,  0 },
  223.     { /*  32:         1 1111 0001 */  9,   497,  1,  2,  1,  1 },
  224.     { /*  33:         1 1111 0010 */  9,   498,  0,  2,  1,  1 },
  225.     { /*  34:         1 1111 0011 */  9,   499,  1,  1,  2,  0 },
  226.     { /*  35:         1 1111 0100 */  9,   500,  1,  1,  2,  1 },
  227.     { /*  36:        11 1110 1010 */ 10,  1002,  1,  2,  0,  1 },
  228.     { /*  37:        11 1110 1011 */ 10,  1003,  1,  0,  2,  0 },
  229.     { /*  38:        11 1110 1100 */ 10,  1004,  1,  0,  2,  1 },
  230.     { /*  39:        11 1110 1101 */ 10,  1005,  0,  2,  0,  1 },
  231.     { /*  40:        11 1110 1110 */ 10,  1006,  2,  1,  1,  1 },
  232.     { /*  41:        11 1110 1111 */ 10,  1007,  1,  1,  1,  2 },
  233.     { /*  42:        11 1111 0000 */ 10,  1008,  2,  1,  0,  1 },
  234.     { /*  43:        11 1111 0001 */ 10,  1009,  1,  0,  1,  2 },
  235.     { /*  44:        11 1111 0010 */ 10,  1010,  0,  0,  2,  2 },
  236.     { /*  45:        11 1111 0011 */ 10,  1011,  0,  1,  2,  2 },
  237.     { /*  46:        11 1111 0100 */ 10,  1012,  2,  2,  1,  0 },
  238.     { /*  47:        11 1111 0101 */ 10,  1013,  1,  2,  2,  0 },
  239.     { /*  48:        11 1111 0110 */ 10,  1014,  1,  0,  0,  2 },
  240.     { /*  49:        11 1111 0111 */ 10,  1015,  2,  0,  0,  1 },
  241.     { /*  50:        11 1111 1000 */ 10,  1016,  0,  2,  2,  1 },
  242.     { /*  51:       111 1111 0010 */ 11,  2034,  2,  2,  0,  0 },
  243.     { /*  52:       111 1111 0011 */ 11,  2035,  1,  2,  2,  1 },
  244.     { /*  53:       111 1111 0100 */ 11,  2036,  1,  1,  0,  2 },
  245.     { /*  54:       111 1111 0101 */ 11,  2037,  2,  0,  1,  1 },
  246.     { /*  55:       111 1111 0110 */ 11,  2038,  1,  1,  2,  2 },
  247.     { /*  56:       111 1111 0111 */ 11,  2039,  2,  2,  1,  1 },
  248.     { /*  57:       111 1111 1000 */ 11,  2040,  0,  2,  2,  0 },
  249.     { /*  58:       111 1111 1001 */ 11,  2041,  0,  2,  1,  2 },
  250.     { /*  59:      1111 1111 0100 */ 12,  4084,  1,  0,  2,  2 },
  251.     { /*  60:      1111 1111 0101 */ 12,  4085,  2,  2,  0,  1 },
  252.     { /*  61:      1111 1111 0110 */ 12,  4086,  2,  1,  2,  0 },
  253.     { /*  62:      1111 1111 0111 */ 12,  4087,  2,  2,  2,  0 },
  254.     { /*  63:      1111 1111 1000 */ 12,  4088,  0,  2,  2,  2 },
  255.     { /*  64:      1111 1111 1001 */ 12,  4089,  2,  2,  2,  1 },
  256.     { /*  65:      1111 1111 1010 */ 12,  4090,  2,  1,  2,  1 },
  257.     { /*  66:      1111 1111 1011 */ 12,  4091,  1,  2,  1,  2 },
  258.     { /*  67:      1111 1111 1100 */ 12,  4092,  1,  2,  2,  2 },
  259.     { /*  68:    1 1111 1111 1010 */ 13,  8186,  0,  2,  0,  2 },
  260.     { /*  69:    1 1111 1111 1011 */ 13,  8187,  2,  0,  2,  0 },
  261.     { /*  70:    1 1111 1111 1100 */ 13,  8188,  1,  2,  0,  2 },
  262.     { /*  71:   11 1111 1111 1010 */ 14, 16378,  2,  0,  2,  1 },
  263.     { /*  72:   11 1111 1111 1011 */ 14, 16379,  2,  1,  1,  2 },
  264.     { /*  73:   11 1111 1111 1100 */ 14, 16380,  2,  1,  0,  2 },
  265.     { /*  74:  111 1111 1111 1010 */ 15, 32762,  2,  2,  2,  2 },
  266.     { /*  75:  111 1111 1111 1011 */ 15, 32763,  2,  2,  1,  2 },
  267.     { /*  76:  111 1111 1111 1100 */ 15, 32764,  2,  1,  2,  2 },
  268.     { /*  77:  111 1111 1111 1101 */ 15, 32765,  2,  0,  1,  2 },
  269.     { /*  78:  111 1111 1111 1110 */ 15, 32766,  2,  0,  0,  2 },
  270.     { /*  79: 1111 1111 1111 1110 */ 16, 65534,  2,  2,  0,  2 },
  271.     { /*  80: 1111 1111 1111 1111 */ 16, 65535,  2,  0,  2,  2 }
  272. };
  273. Huffman book4[] = {
  274.       /* idx             codeword   len  codew   x   y   v   w */
  275.     { /*   0:                0000 */  4,     0,  1,  1,  1,  1 },
  276.     { /*   1:                0001 */  4,     1,  0,  1,  1,  1 },
  277.     { /*   2:                0010 */  4,     2,  1,  1,  0,  1 },
  278.     { /*   3:                0011 */  4,     3,  1,  1,  1,  0 },
  279.     { /*   4:                0100 */  4,     4,  1,  0,  1,  1 },
  280.     { /*   5:                0101 */  4,     5,  1,  0,  0,  0 },
  281.     { /*   6:                0110 */  4,     6,  1,  1,  0,  0 },
  282.     { /*   7:                0111 */  4,     7,  0,  0,  0,  0 },
  283.     { /*   8:                1000 */  4,     8,  0,  0,  1,  1 },
  284.     { /*   9:                1001 */  4,     9,  1,  0,  1,  0 },
  285.     { /*  10:              1 0100 */  5,    20,  1,  0,  0,  1 },
  286.     { /*  11:              1 0101 */  5,    21,  0,  1,  1,  0 },
  287.     { /*  12:              1 0110 */  5,    22,  0,  0,  0,  1 },
  288.     { /*  13:              1 0111 */  5,    23,  0,  1,  0,  1 },
  289.     { /*  14:              1 1000 */  5,    24,  0,  0,  1,  0 },
  290.     { /*  15:              1 1001 */  5,    25,  0,  1,  0,  0 },
  291.     { /*  16:            110 1000 */  7,   104,  2,  1,  1,  1 },
  292.     { /*  17:            110 1001 */  7,   105,  1,  1,  2,  1 },
  293.     { /*  18:            110 1010 */  7,   106,  1,  2,  1,  1 },
  294.     { /*  19:            110 1011 */  7,   107,  1,  1,  1,  2 },
  295.     { /*  20:            110 1100 */  7,   108,  2,  1,  1,  0 },
  296.     { /*  21:            110 1101 */  7,   109,  2,  1,  0,  1 },
  297.     { /*  22:            110 1110 */  7,   110,  1,  2,  1,  0 },
  298.     { /*  23:            110 1111 */  7,   111,  2,  0,  1,  1 },
  299.     { /*  24:            111 0000 */  7,   112,  0,  1,  2,  1 },
  300.     { /*  25:           1110 0010 */  8,   226,  0,  1,  1,  2 },
  301.     { /*  26:           1110 0011 */  8,   227,  1,  1,  2,  0 },
  302.     { /*  27:           1110 0100 */  8,   228,  0,  2,  1,  1 },
  303.     { /*  28:           1110 0101 */  8,   229,  1,  0,  1,  2 },
  304.     { /*  29:           1110 0110 */  8,   230,  1,  2,  0,  1 },
  305.     { /*  30:           1110 0111 */  8,   231,  1,  1,  0,  2 },
  306.     { /*  31:           1110 1000 */  8,   232,  1,  0,  2,  1 },
  307.     { /*  32:           1110 1001 */  8,   233,  2,  1,  0,  0 },
  308.     { /*  33:           1110 1010 */  8,   234,  2,  0,  1,  0 },
  309.     { /*  34:           1110 1011 */  8,   235,  1,  2,  0,  0 },
  310.     { /*  35:           1110 1100 */  8,   236,  2,  0,  0,  1 },
  311.     { /*  36:           1110 1101 */  8,   237,  0,  1,  0,  2 },
  312.     { /*  37:           1110 1110 */  8,   238,  0,  2,  1,  0 },
  313.     { /*  38:           1110 1111 */  8,   239,  0,  0,  1,  2 },
  314.     { /*  39:           1111 0000 */  8,   240,  0,  1,  2,  0 },
  315.     { /*  40:           1111 0001 */  8,   241,  0,  2,  0,  1 },
  316.     { /*  41:           1111 0010 */  8,   242,  1,  0,  0,  2 },
  317.     { /*  42:           1111 0011 */  8,   243,  0,  0,  2,  1 },
  318.     { /*  43:           1111 0100 */  8,   244,  1,  0,  2,  0 },
  319.     { /*  44:           1111 0101 */  8,   245,  2,  0,  0,  0 },
  320.     { /*  45:           1111 0110 */  8,   246,  0,  0,  0,  2 },
  321.     { /*  46:         1 1110 1110 */  9,   494,  0,  2,  0,  0 },
  322.     { /*  47:         1 1110 1111 */  9,   495,  0,  0,  2,  0 },
  323.     { /*  48:         1 1111 0000 */  9,   496,  1,  2,  2,  1 },
  324.     { /*  49:         1 1111 0001 */  9,   497,  2,  2,  1,  1 },
  325.     { /*  50:         1 1111 0010 */  9,   498,  2,  1,  2,  1 },
  326.     { /*  51:         1 1111 0011 */  9,   499,  1,  1,  2,  2 },
  327.     { /*  52:         1 1111 0100 */  9,   500,  1,  2,  1,  2 },
  328.     { /*  53:         1 1111 0101 */  9,   501,  2,  1,  1,  2 },
  329.     { /*  54:        11 1110 1100 */ 10,  1004,  1,  2,  2,  0 },
  330.     { /*  55:        11 1110 1101 */ 10,  1005,  2,  2,  1,  0 },
  331.     { /*  56:        11 1110 1110 */ 10,  1006,  2,  1,  2,  0 },
  332.     { /*  57:        11 1110 1111 */ 10,  1007,  0,  2,  2,  1 },
  333.     { /*  58:        11 1111 0000 */ 10,  1008,  0,  1,  2,  2 },
  334.     { /*  59:        11 1111 0001 */ 10,  1009,  2,  2,  0,  1 },
  335.     { /*  60:        11 1111 0010 */ 10,  1010,  0,  2,  1,  2 },
  336.     { /*  61:        11 1111 0011 */ 10,  1011,  2,  0,  2,  1 },
  337.     { /*  62:        11 1111 0100 */ 10,  1012,  1,  0,  2,  2 },
  338.     { /*  63:        11 1111 0101 */ 10,  1013,  2,  2,  2,  1 },
  339.     { /*  64:        11 1111 0110 */ 10,  1014,  1,  2,  0,  2 },
  340.     { /*  65:        11 1111 0111 */ 10,  1015,  2,  0,  1,  2 },
  341.     { /*  66:        11 1111 1000 */ 10,  1016,  2,  1,  0,  2 },
  342.     { /*  67:        11 1111 1001 */ 10,  1017,  1,  2,  2,  2 },
  343.     { /*  68:       111 1111 0100 */ 11,  2036,  2,  1,  2,  2 },
  344.     { /*  69:       111 1111 0101 */ 11,  2037,  2,  2,  1,  2 },
  345.     { /*  70:       111 1111 0110 */ 11,  2038,  0,  2,  2,  0 },
  346.     { /*  71:       111 1111 0111 */ 11,  2039,  2,  2,  0,  0 },
  347.     { /*  72:       111 1111 1000 */ 11,  2040,  0,  0,  2,  2 },
  348.     { /*  73:       111 1111 1001 */ 11,  2041,  2,  0,  2,  0 },
  349.     { /*  74:       111 1111 1010 */ 11,  2042,  0,  2,  0,  2 },
  350.     { /*  75:       111 1111 1011 */ 11,  2043,  2,  0,  0,  2 },
  351.     { /*  76:       111 1111 1100 */ 11,  2044,  2,  2,  2,  2 },
  352.     { /*  77:       111 1111 1101 */ 11,  2045,  0,  2,  2,  2 },
  353.     { /*  78:       111 1111 1110 */ 11,  2046,  2,  2,  2,  0 },
  354.     { /*  79:      1111 1111 1110 */ 12,  4094,  2,  2,  0,  2 },
  355.     { /*  80:      1111 1111 1111 */ 12,  4095,  2,  0,  2,  2 }
  356. };
  357. Huffman book5[] = {
  358.       /* idx             codeword   len  codew   x   y   v   w */
  359.     { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
  360.     { /*   1:                1000 */  4,     8, -1,  0,  0,  0 },
  361.     { /*   2:                1001 */  4,     9,  1,  0,  0,  0 },
  362.     { /*   3:                1010 */  4,    10,  0,  1,  0,  0 },
  363.     { /*   4:                1011 */  4,    11,  0, -1,  0,  0 },
  364.     { /*   5:              1 1000 */  5,    24,  1, -1,  0,  0 },
  365.     { /*   6:              1 1001 */  5,    25, -1,  1,  0,  0 },
  366.     { /*   7:              1 1010 */  5,    26, -1, -1,  0,  0 },
  367.     { /*   8:              1 1011 */  5,    27,  1,  1,  0,  0 },
  368.     { /*   9:            111 0000 */  7,   112, -2,  0,  0,  0 },
  369.     { /*  10:            111 0001 */  7,   113,  0,  2,  0,  0 },
  370.     { /*  11:            111 0010 */  7,   114,  2,  0,  0,  0 },
  371.     { /*  12:            111 0011 */  7,   115,  0, -2,  0,  0 },
  372.     { /*  13:           1110 1000 */  8,   232, -2, -1,  0,  0 },
  373.     { /*  14:           1110 1001 */  8,   233,  2,  1,  0,  0 },
  374.     { /*  15:           1110 1010 */  8,   234, -1, -2,  0,  0 },
  375.     { /*  16:           1110 1011 */  8,   235,  1,  2,  0,  0 },
  376.     { /*  17:           1110 1100 */  8,   236, -2,  1,  0,  0 },
  377.     { /*  18:           1110 1101 */  8,   237,  2, -1,  0,  0 },
  378.     { /*  19:           1110 1110 */  8,   238, -1,  2,  0,  0 },
  379.     { /*  20:           1110 1111 */  8,   239,  1, -2,  0,  0 },
  380.     { /*  21:           1111 0000 */  8,   240, -3,  0,  0,  0 },
  381.     { /*  22:           1111 0001 */  8,   241,  3,  0,  0,  0 },
  382.     { /*  23:           1111 0010 */  8,   242,  0, -3,  0,  0 },
  383.     { /*  24:           1111 0011 */  8,   243,  0,  3,  0,  0 },
  384.     { /*  25:         1 1110 1000 */  9,   488, -3, -1,  0,  0 },
  385.     { /*  26:         1 1110 1001 */  9,   489,  1,  3,  0,  0 },
  386.     { /*  27:         1 1110 1010 */  9,   490,  3,  1,  0,  0 },
  387.     { /*  28:         1 1110 1011 */  9,   491, -1, -3,  0,  0 },
  388.     { /*  29:         1 1110 1100 */  9,   492, -3,  1,  0,  0 },
  389.     { /*  30:         1 1110 1101 */  9,   493,  3, -1,  0,  0 },
  390.     { /*  31:         1 1110 1110 */  9,   494,  1, -3,  0,  0 },
  391.     { /*  32:         1 1110 1111 */  9,   495, -1,  3,  0,  0 },
  392.     { /*  33:         1 1111 0000 */  9,   496, -2,  2,  0,  0 },
  393.     { /*  34:         1 1111 0001 */  9,   497,  2,  2,  0,  0 },
  394.     { /*  35:         1 1111 0010 */  9,   498, -2, -2,  0,  0 },
  395.     { /*  36:         1 1111 0011 */  9,   499,  2, -2,  0,  0 },
  396.     { /*  37:        11 1110 1000 */ 10,  1000, -3, -2,  0,  0 },
  397.     { /*  38:        11 1110 1001 */ 10,  1001,  3, -2,  0,  0 },
  398.     { /*  39:        11 1110 1010 */ 10,  1002, -2,  3,  0,  0 },
  399.     { /*  40:        11 1110 1011 */ 10,  1003,  2, -3,  0,  0 },
  400.     { /*  41:        11 1110 1100 */ 10,  1004,  3,  2,  0,  0 },
  401.     { /*  42:        11 1110 1101 */ 10,  1005,  2,  3,  0,  0 },
  402.     { /*  43:        11 1110 1110 */ 10,  1006, -3,  2,  0,  0 },
  403.     { /*  44:        11 1110 1111 */ 10,  1007, -2, -3,  0,  0 },
  404.     { /*  45:        11 1111 0000 */ 10,  1008,  0, -4,  0,  0 },
  405.     { /*  46:        11 1111 0001 */ 10,  1009, -4,  0,  0,  0 },
  406.     { /*  47:        11 1111 0010 */ 10,  1010,  4,  1,  0,  0 },
  407.     { /*  48:        11 1111 0011 */ 10,  1011,  4,  0,  0,  0 },
  408.     { /*  49:       111 1110 1000 */ 11,  2024, -4, -1,  0,  0 },
  409.     { /*  50:       111 1110 1001 */ 11,  2025,  0,  4,  0,  0 },
  410.     { /*  51:       111 1110 1010 */ 11,  2026,  4, -1,  0,  0 },
  411.     { /*  52:       111 1110 1011 */ 11,  2027, -1, -4,  0,  0 },
  412.     { /*  53:       111 1110 1100 */ 11,  2028,  1,  4,  0,  0 },
  413.     { /*  54:       111 1110 1101 */ 11,  2029, -1,  4,  0,  0 },
  414.     { /*  55:       111 1110 1110 */ 11,  2030, -4,  1,  0,  0 },
  415.     { /*  56:       111 1110 1111 */ 11,  2031,  1, -4,  0,  0 },
  416.     { /*  57:       111 1111 0000 */ 11,  2032,  3, -3,  0,  0 },
  417.     { /*  58:       111 1111 0001 */ 11,  2033, -3, -3,  0,  0 },
  418.     { /*  59:       111 1111 0010 */ 11,  2034, -3,  3,  0,  0 },
  419.     { /*  60:       111 1111 0011 */ 11,  2035, -2,  4,  0,  0 },
  420.     { /*  61:       111 1111 0100 */ 11,  2036, -4, -2,  0,  0 },
  421.     { /*  62:       111 1111 0101 */ 11,  2037,  4,  2,  0,  0 },
  422.     { /*  63:       111 1111 0110 */ 11,  2038,  2, -4,  0,  0 },
  423.     { /*  64:       111 1111 0111 */ 11,  2039,  2,  4,  0,  0 },
  424.     { /*  65:       111 1111 1000 */ 11,  2040,  3,  3,  0,  0 },
  425.     { /*  66:       111 1111 1001 */ 11,  2041, -4,  2,  0,  0 },
  426.     { /*  67:      1111 1111 0100 */ 12,  4084, -2, -4,  0,  0 },
  427.     { /*  68:      1111 1111 0101 */ 12,  4085,  4, -2,  0,  0 },
  428.     { /*  69:      1111 1111 0110 */ 12,  4086,  3, -4,  0,  0 },
  429.     { /*  70:      1111 1111 0111 */ 12,  4087, -4, -3,  0,  0 },
  430.     { /*  71:      1111 1111 1000 */ 12,  4088, -4,  3,  0,  0 },
  431.     { /*  72:      1111 1111 1001 */ 12,  4089,  3,  4,  0,  0 },
  432.     { /*  73:      1111 1111 1010 */ 12,  4090, -3,  4,  0,  0 },
  433.     { /*  74:      1111 1111 1011 */ 12,  4091,  4,  3,  0,  0 },
  434.     { /*  75:      1111 1111 1100 */ 12,  4092,  4, -3,  0,  0 },
  435.     { /*  76:      1111 1111 1101 */ 12,  4093, -3, -4,  0,  0 },
  436.     { /*  77:    1 1111 1111 1100 */ 13,  8188,  4, -4,  0,  0 },
  437.     { /*  78:    1 1111 1111 1101 */ 13,  8189, -4,  4,  0,  0 },
  438.     { /*  79:    1 1111 1111 1110 */ 13,  8190,  4,  4,  0,  0 },
  439.     { /*  80:    1 1111 1111 1111 */ 13,  8191, -4, -4,  0,  0 }
  440. };
  441. Huffman book6[] = {
  442.       /* idx             codeword   len  codew   x   y   v   w */
  443.     { /*   0:                0000 */  4,     0,  0,  0,  0,  0 },
  444.     { /*   1:                0001 */  4,     1,  1,  0,  0,  0 },
  445.     { /*   2:                0010 */  4,     2,  0, -1,  0,  0 },
  446.     { /*   3:                0011 */  4,     3,  0,  1,  0,  0 },
  447.     { /*   4:                0100 */  4,     4, -1,  0,  0,  0 },
  448.     { /*   5:                0101 */  4,     5,  1,  1,  0,  0 },
  449.     { /*   6:                0110 */  4,     6, -1,  1,  0,  0 },
  450.     { /*   7:                0111 */  4,     7,  1, -1,  0,  0 },
  451.     { /*   8:                1000 */  4,     8, -1, -1,  0,  0 },
  452.     { /*   9:             10 0100 */  6,    36,  2, -1,  0,  0 },
  453.     { /*  10:             10 0101 */  6,    37,  2,  1,  0,  0 },
  454.     { /*  11:             10 0110 */  6,    38, -2,  1,  0,  0 },
  455.     { /*  12:             10 0111 */  6,    39, -2, -1,  0,  0 },
  456.     { /*  13:             10 1000 */  6,    40, -2,  0,  0,  0 },
  457.     { /*  14:             10 1001 */  6,    41, -1,  2,  0,  0 },
  458.     { /*  15:             10 1010 */  6,    42,  2,  0,  0,  0 },
  459.     { /*  16:             10 1011 */  6,    43,  1, -2,  0,  0 },
  460.     { /*  17:             10 1100 */  6,    44,  1,  2,  0,  0 },
  461.     { /*  18:             10 1101 */  6,    45,  0, -2,  0,  0 },
  462.     { /*  19:             10 1110 */  6,    46, -1, -2,  0,  0 },
  463.     { /*  20:             10 1111 */  6,    47,  0,  2,  0,  0 },
  464.     { /*  21:             11 0000 */  6,    48,  2, -2,  0,  0 },
  465.     { /*  22:             11 0001 */  6,    49, -2,  2,  0,  0 },
  466.     { /*  23:             11 0010 */  6,    50, -2, -2,  0,  0 },
  467.     { /*  24:             11 0011 */  6,    51,  2,  2,  0,  0 },
  468.     { /*  25:            110 1000 */  7,   104, -3,  1,  0,  0 },
  469.     { /*  26:            110 1001 */  7,   105,  3,  1,  0,  0 },
  470.     { /*  27:            110 1010 */  7,   106,  3, -1,  0,  0 },
  471.     { /*  28:            110 1011 */  7,   107, -1,  3,  0,  0 },
  472.     { /*  29:            110 1100 */  7,   108, -3, -1,  0,  0 },
  473.     { /*  30:            110 1101 */  7,   109,  1,  3,  0,  0 },
  474.     { /*  31:            110 1110 */  7,   110,  1, -3,  0,  0 },
  475.     { /*  32:            110 1111 */  7,   111, -1, -3,  0,  0 },
  476.     { /*  33:            111 0000 */  7,   112,  3,  0,  0,  0 },
  477.     { /*  34:            111 0001 */  7,   113, -3,  0,  0,  0 },
  478.     { /*  35:            111 0010 */  7,   114,  0, -3,  0,  0 },
  479.     { /*  36:            111 0011 */  7,   115,  0,  3,  0,  0 },
  480.     { /*  37:            111 0100 */  7,   116,  3,  2,  0,  0 },
  481.     { /*  38:           1110 1010 */  8,   234, -3, -2,  0,  0 },
  482.     { /*  39:           1110 1011 */  8,   235, -2,  3,  0,  0 },
  483.     { /*  40:           1110 1100 */  8,   236,  2,  3,  0,  0 },
  484.     { /*  41:           1110 1101 */  8,   237,  3, -2,  0,  0 },
  485.     { /*  42:           1110 1110 */  8,   238,  2, -3,  0,  0 },
  486.     { /*  43:           1110 1111 */  8,   239, -2, -3,  0,  0 },
  487.     { /*  44:           1111 0000 */  8,   240, -3,  2,  0,  0 },
  488.     { /*  45:           1111 0001 */  8,   241,  3,  3,  0,  0 },
  489.     { /*  46:         1 1110 0100 */  9,   484,  3, -3,  0,  0 },
  490.     { /*  47:         1 1110 0101 */  9,   485, -3, -3,  0,  0 },
  491.     { /*  48:         1 1110 0110 */  9,   486, -3,  3,  0,  0 },
  492.     { /*  49:         1 1110 0111 */  9,   487,  1, -4,  0,  0 },
  493.     { /*  50:         1 1110 1000 */  9,   488, -1, -4,  0,  0 },
  494.     { /*  51:         1 1110 1001 */  9,   489,  4,  1,  0,  0 },
  495.     { /*  52:         1 1110 1010 */  9,   490, -4,  1,  0,  0 },
  496.     { /*  53:         1 1110 1011 */  9,   491, -4, -1,  0,  0 },
  497.     { /*  54:         1 1110 1100 */  9,   492,  1,  4,  0,  0 },
  498.     { /*  55:         1 1110 1101 */  9,   493,  4, -1,  0,  0 },
  499.     { /*  56:         1 1110 1110 */  9,   494, -1,  4,  0,  0 },
  500.     { /*  57:         1 1110 1111 */  9,   495,  0, -4,  0,  0 },
  501.     { /*  58:         1 1111 0000 */  9,   496, -4,  2,  0,  0 },
  502.     { /*  59:         1 1111 0001 */  9,   497, -4, -2,  0,  0 },
  503.     { /*  60:         1 1111 0010 */  9,   498,  2,  4,  0,  0 },
  504.     { /*  61:         1 1111 0011 */  9,   499, -2, -4,  0,  0 },
  505.     { /*  62:         1 1111 0100 */  9,   500, -4,  0,  0,  0 },
  506.     { /*  63:         1 1111 0101 */  9,   501,  4,  2,  0,  0 },
  507.     { /*  64:         1 1111 0110 */  9,   502,  4, -2,  0,  0 },
  508.     { /*  65:         1 1111 0111 */  9,   503, -2,  4,  0,  0 },
  509.     { /*  66:         1 1111 1000 */  9,   504,  4,  0,  0,  0 },
  510.     { /*  67:         1 1111 1001 */  9,   505,  2, -4,  0,  0 },
  511.     { /*  68:         1 1111 1010 */  9,   506,  0,  4,  0,  0 },
  512.     { /*  69:        11 1111 0110 */ 10,  1014, -3, -4,  0,  0 },
  513.     { /*  70:        11 1111 0111 */ 10,  1015, -3,  4,  0,  0 },
  514.     { /*  71:        11 1111 1000 */ 10,  1016,  3, -4,  0,  0 },
  515.     { /*  72:        11 1111 1001 */ 10,  1017,  4, -3,  0,  0 },
  516.     { /*  73:        11 1111 1010 */ 10,  1018,  3,  4,  0,  0 },
  517.     { /*  74:        11 1111 1011 */ 10,  1019,  4,  3,  0,  0 },
  518.     { /*  75:        11 1111 1100 */ 10,  1020, -4,  3,  0,  0 },
  519.     { /*  76:        11 1111 1101 */ 10,  1021, -4, -3,  0,  0 },
  520.     { /*  77:       111 1111 1100 */ 11,  2044,  4,  4,  0,  0 },
  521.     { /*  78:       111 1111 1101 */ 11,  2045, -4,  4,  0,  0 },
  522.     { /*  79:       111 1111 1110 */ 11,  2046, -4, -4,  0,  0 },
  523.     { /*  80:       111 1111 1111 */ 11,  2047,  4, -4,  0,  0 }
  524. };
  525. Huffman book7[] = {
  526.       /* idx             codeword   len  codew   x   y   v   w */
  527.     { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
  528.     { /*   1:                 100 */  3,     4,  1,  0,  0,  0 },
  529.     { /*   2:                 101 */  3,     5,  0,  1,  0,  0 },
  530.     { /*   3:                1100 */  4,    12,  1,  1,  0,  0 },
  531.     { /*   4:             11 0100 */  6,    52,  2,  1,  0,  0 },
  532.     { /*   5:             11 0101 */  6,    53,  1,  2,  0,  0 },
  533.     { /*   6:             11 0110 */  6,    54,  2,  0,  0,  0 },
  534.     { /*   7:             11 0111 */  6,    55,  0,  2,  0,  0 },
  535.     { /*   8:            111 0000 */  7,   112,  3,  1,  0,  0 },
  536.     { /*   9:            111 0001 */  7,   113,  1,  3,  0,  0 },
  537.     { /*  10:            111 0010 */  7,   114,  2,  2,  0,  0 },
  538.     { /*  11:            111 0011 */  7,   115,  3,  0,  0,  0 },
  539.     { /*  12:            111 0100 */  7,   116,  0,  3,  0,  0 },
  540.     { /*  13:           1110 1010 */  8,   234,  2,  3,  0,  0 },
  541.     { /*  14:           1110 1011 */  8,   235,  3,  2,  0,  0 },
  542.     { /*  15:           1110 1100 */  8,   236,  1,  4,  0,  0 },
  543.     { /*  16:           1110 1101 */  8,   237,  4,  1,  0,  0 },
  544.     { /*  17:           1110 1110 */  8,   238,  1,  5,  0,  0 },
  545.     { /*  18:           1110 1111 */  8,   239,  5,  1,  0,  0 },
  546.     { /*  19:           1111 0000 */  8,   240,  3,  3,  0,  0 },
  547.     { /*  20:           1111 0001 */  8,   241,  2,  4,  0,  0 },
  548.     { /*  21:           1111 0010 */  8,   242,  0,  4,  0,  0 },
  549.     { /*  22:           1111 0011 */  8,   243,  4,  0,  0,  0 },
  550.     { /*  23:         1 1110 1000 */  9,   488,  4,  2,  0,  0 },
  551.     { /*  24:         1 1110 1001 */  9,   489,  2,  5,  0,  0 },
  552.     { /*  25:         1 1110 1010 */  9,   490,  5,  2,  0,  0 },
  553.     { /*  26:         1 1110 1011 */  9,   491,  0,  5,  0,  0 },
  554.     { /*  27:         1 1110 1100 */  9,   492,  6,  1,  0,  0 },
  555.     { /*  28:         1 1110 1101 */  9,   493,  5,  0,  0,  0 },
  556.     { /*  29:         1 1110 1110 */  9,   494,  1,  6,  0,  0 },
  557.     { /*  30:         1 1110 1111 */  9,   495,  4,  3,  0,  0 },
  558.     { /*  31:         1 1111 0000 */  9,   496,  3,  5,  0,  0 },
  559.     { /*  32:         1 1111 0001 */  9,   497,  3,  4,  0,  0 },
  560.     { /*  33:         1 1111 0010 */  9,   498,  5,  3,  0,  0 },
  561.     { /*  34:         1 1111 0011 */  9,   499,  2,  6,  0,  0 },
  562.     { /*  35:         1 1111 0100 */  9,   500,  6,  2,  0,  0 },
  563.     { /*  36:         1 1111 0101 */  9,   501,  1,  7,  0,  0 },
  564.     { /*  37:        11 1110 1100 */ 10,  1004,  3,  6,  0,  0 },
  565.     { /*  38:        11 1110 1101 */ 10,  1005,  0,  6,  0,  0 },
  566.     { /*  39:        11 1110 1110 */ 10,  1006,  6,  0,  0,  0 },
  567.     { /*  40:        11 1110 1111 */ 10,  1007,  4,  4,  0,  0 },
  568.     { /*  41:        11 1111 0000 */ 10,  1008,  7,  1,  0,  0 },
  569.     { /*  42:        11 1111 0001 */ 10,  1009,  4,  5,  0,  0 },
  570.     { /*  43:        11 1111 0010 */ 10,  1010,  7,  2,  0,  0 },
  571.     { /*  44:        11 1111 0011 */ 10,  1011,  5,  4,  0,  0 },
  572.     { /*  45:        11 1111 0100 */ 10,  1012,  6,  3,  0,  0 },
  573.     { /*  46:        11 1111 0101 */ 10,  1013,  2,  7,  0,  0 },
  574.     { /*  47:        11 1111 0110 */ 10,  1014,  7,  3,  0,  0 },
  575.     { /*  48:        11 1111 0111 */ 10,  1015,  6,  4,  0,  0 },
  576.     { /*  49:        11 1111 1000 */ 10,  1016,  5,  5,  0,  0 },
  577.     { /*  50:        11 1111 1001 */ 10,  1017,  4,  6,  0,  0 },
  578.     { /*  51:        11 1111 1010 */ 10,  1018,  3,  7,  0,  0 },
  579.     { /*  52:       111 1111 0110 */ 11,  2038,  7,  0,  0,  0 },
  580.     { /*  53:       111 1111 0111 */ 11,  2039,  0,  7,  0,  0 },
  581.     { /*  54:       111 1111 1000 */ 11,  2040,  6,  5,  0,  0 },
  582.     { /*  55:       111 1111 1001 */ 11,  2041,  5,  6,  0,  0 },
  583.     { /*  56:       111 1111 1010 */ 11,  2042,  7,  4,  0,  0 },
  584.     { /*  57:       111 1111 1011 */ 11,  2043,  4,  7,  0,  0 },
  585.     { /*  58:       111 1111 1100 */ 11,  2044,  5,  7,  0,  0 },
  586.     { /*  59:       111 1111 1101 */ 11,  2045,  7,  5,  0,  0 },
  587.     { /*  60:      1111 1111 1100 */ 12,  4092,  7,  6,  0,  0 },
  588.     { /*  61:      1111 1111 1101 */ 12,  4093,  6,  6,  0,  0 },
  589.     { /*  62:      1111 1111 1110 */ 12,  4094,  6,  7,  0,  0 },
  590.     { /*  63:      1111 1111 1111 */ 12,  4095,  7,  7,  0,  0 }
  591. };
  592. Huffman book8[] = {
  593.       /* idx             codeword   len  codew   x   y   v   w */
  594.     { /*   0:                 000 */  3,     0,  1,  1,  0,  0 },
  595.     { /*   1:                0010 */  4,     2,  2,  1,  0,  0 },
  596.     { /*   2:                0011 */  4,     3,  1,  0,  0,  0 },
  597.     { /*   3:                0100 */  4,     4,  1,  2,  0,  0 },
  598.     { /*   4:                0101 */  4,     5,  0,  1,  0,  0 },
  599.     { /*   5:                0110 */  4,     6,  2,  2,  0,  0 },
  600.     { /*   6:              0 1110 */  5,    14,  0,  0,  0,  0 },
  601.     { /*   7:              0 1111 */  5,    15,  2,  0,  0,  0 },
  602.     { /*   8:              1 0000 */  5,    16,  0,  2,  0,  0 },
  603.     { /*   9:              1 0001 */  5,    17,  3,  1,  0,  0 },
  604.     { /*  10:              1 0010 */  5,    18,  1,  3,  0,  0 },
  605.     { /*  11:              1 0011 */  5,    19,  3,  2,  0,  0 },
  606.     { /*  12:              1 0100 */  5,    20,  2,  3,  0,  0 },
  607.     { /*  13:             10 1010 */  6,    42,  3,  3,  0,  0 },
  608.     { /*  14:             10 1011 */  6,    43,  4,  1,  0,  0 },
  609.     { /*  15:             10 1100 */  6,    44,  1,  4,  0,  0 },
  610.     { /*  16:             10 1101 */  6,    45,  4,  2,  0,  0 },
  611.     { /*  17:             10 1110 */  6,    46,  2,  4,  0,  0 },
  612.     { /*  18:             10 1111 */  6,    47,  3,  0,  0,  0 },
  613.     { /*  19:             11 0000 */  6,    48,  0,  3,  0,  0 },
  614.     { /*  20:             11 0001 */  6,    49,  4,  3,  0,  0 },
  615.     { /*  21:             11 0010 */  6,    50,  3,  4,  0,  0 },
  616.     { /*  22:             11 0011 */  6,    51,  5,  2,  0,  0 },
  617.     { /*  23:            110 1000 */  7,   104,  5,  1,  0,  0 },
  618.     { /*  24:            110 1001 */  7,   105,  2,  5,  0,  0 },
  619.     { /*  25:            110 1010 */  7,   106,  1,  5,  0,  0 },
  620.     { /*  26:            110 1011 */  7,   107,  5,  3,  0,  0 },
  621.     { /*  27:            110 1100 */  7,   108,  3,  5,  0,  0 },
  622.     { /*  28:            110 1101 */  7,   109,  4,  4,  0,  0 },
  623.     { /*  29:            110 1110 */  7,   110,  5,  4,  0,  0 },
  624.     { /*  30:            110 1111 */  7,   111,  0,  4,  0,  0 },
  625.     { /*  31:            111 0000 */  7,   112,  4,  5,  0,  0 },
  626.     { /*  32:            111 0001 */  7,   113,  4,  0,  0,  0 },
  627.     { /*  33:            111 0010 */  7,   114,  2,  6,  0,  0 },
  628.     { /*  34:            111 0011 */  7,   115,  6,  2,  0,  0 },
  629.     { /*  35:            111 0100 */  7,   116,  6,  1,  0,  0 },
  630.     { /*  36:            111 0101 */  7,   117,  1,  6,  0,  0 },
  631.     { /*  37:           1110 1100 */  8,   236,  3,  6,  0,  0 },
  632.     { /*  38:           1110 1101 */  8,   237,  6,  3,  0,  0 },
  633.     { /*  39:           1110 1110 */  8,   238,  5,  5,  0,  0 },
  634.     { /*  40:           1110 1111 */  8,   239,  5,  0,  0,  0 },
  635.     { /*  41:           1111 0000 */  8,   240,  6,  4,  0,  0 },
  636.     { /*  42:           1111 0001 */  8,   241,  0,  5,  0,  0 },
  637.     { /*  43:           1111 0010 */  8,   242,  4,  6,  0,  0 },
  638.     { /*  44:           1111 0011 */  8,   243,  7,  1,  0,  0 },
  639.     { /*  45:           1111 0100 */  8,   244,  7,  2,  0,  0 },
  640.     { /*  46:           1111 0101 */  8,   245,  2,  7,  0,  0 },
  641.     { /*  47:           1111 0110 */  8,   246,  6,  5,  0,  0 },
  642.     { /*  48:           1111 0111 */  8,   247,  7,  3,  0,  0 },
  643.     { /*  49:           1111 1000 */  8,   248,  1,  7,  0,  0 },
  644.     { /*  50:           1111 1001 */  8,   249,  5,  6,  0,  0 },
  645.     { /*  51:           1111 1010 */  8,   250,  3,  7,  0,  0 },
  646.     { /*  52:         1 1111 0110 */  9,   502,  6,  6,  0,  0 },
  647.     { /*  53:         1 1111 0111 */  9,   503,  7,  4,  0,  0 },
  648.     { /*  54:         1 1111 1000 */  9,   504,  6,  0,  0,  0 },
  649.     { /*  55:         1 1111 1001 */  9,   505,  4,  7,  0,  0 },
  650.     { /*  56:         1 1111 1010 */  9,   506,  0,  6,  0,  0 },
  651.     { /*  57:         1 1111 1011 */  9,   507,  7,  5,  0,  0 },
  652.     { /*  58:         1 1111 1100 */  9,   508,  7,  6,  0,  0 },
  653.     { /*  59:         1 1111 1101 */  9,   509,  6,  7,  0,  0 },
  654.     { /*  60:        11 1111 1100 */ 10,  1020,  5,  7,  0,  0 },
  655.     { /*  61:        11 1111 1101 */ 10,  1021,  7,  0,  0,  0 },
  656.     { /*  62:        11 1111 1110 */ 10,  1022,  0,  7,  0,  0 },
  657.     { /*  63:        11 1111 1111 */ 10,  1023,  7,  7,  0,  0 }
  658. };
  659. Huffman book9[] = {
  660.       /* idx             codeword   len  codew   x   y   v   w */
  661.     { /*   0:                   0 */  1,     0,  0,  0,  0,  0 },
  662.     { /*   1:                 100 */  3,     4,  1,  0,  0,  0 },
  663.     { /*   2:                 101 */  3,     5,  0,  1,  0,  0 },
  664.     { /*   3:                1100 */  4,    12,  1,  1,  0,  0 },
  665.     { /*   4:             11 0100 */  6,    52,  2,  1,  0,  0 },
  666.     { /*   5:             11 0101 */  6,    53,  1,  2,  0,  0 },
  667.     { /*   6:             11 0110 */  6,    54,  2,  0,  0,  0 },
  668.     { /*   7:             11 0111 */  6,    55,  0,  2,  0,  0 },
  669.     { /*   8:            111 0000 */  7,   112,  3,  1,  0,  0 },
  670.     { /*   9:            111 0001 */  7,   113,  2,  2,  0,  0 },
  671.     { /*  10:            111 0010 */  7,   114,  1,  3,  0,  0 },
  672.     { /*  11:           1110 0110 */  8,   230,  3,  0,  0,  0 },
  673.     { /*  12:           1110 0111 */  8,   231,  0,  3,  0,  0 },
  674.     { /*  13:           1110 1000 */  8,   232,  2,  3,  0,  0 },
  675.     { /*  14:           1110 1001 */  8,   233,  3,  2,  0,  0 },
  676.     { /*  15:           1110 1010 */  8,   234,  1,  4,  0,  0 },
  677.     { /*  16:           1110 1011 */  8,   235,  4,  1,  0,  0 },
  678.     { /*  17:           1110 1100 */  8,   236,  2,  4,  0,  0 },
  679.     { /*  18:           1110 1101 */  8,   237,  1,  5,  0,  0 },
  680.     { /*  19:         1 1101 1100 */  9,   476,  4,  2,  0,  0 },
  681.     { /*  20:         1 1101 1101 */  9,   477,  3,  3,  0,  0 },
  682.     { /*  21:         1 1101 1110 */  9,   478,  0,  4,  0,  0 },
  683.     { /*  22:         1 1101 1111 */  9,   479,  4,  0,  0,  0 },
  684.     { /*  23:         1 1110 0000 */  9,   480,  5,  1,  0,  0 },
  685.     { /*  24:         1 1110 0001 */  9,   481,  2,  5,  0,  0 },
  686.     { /*  25:         1 1110 0010 */  9,   482,  1,  6,  0,  0 },
  687.     { /*  26:         1 1110 0011 */  9,   483,  3,  4,  0,  0 },
  688.     { /*  27:         1 1110 0100 */  9,   484,  5,  2,  0,  0 },
  689.     { /*  28:         1 1110 0101 */  9,   485,  6,  1,  0,  0 },
  690.     { /*  29:         1 1110 0110 */  9,   486,  4,  3,  0,  0 },
  691.     { /*  30:        11 1100 1110 */ 10,   974,  0,  5,  0,  0 },
  692.     { /*  31:        11 1100 1111 */ 10,   975,  2,  6,  0,  0 },
  693.     { /*  32:        11 1101 0000 */ 10,   976,  5,  0,  0,  0 },
  694.     { /*  33:        11 1101 0001 */ 10,   977,  1,  7,  0,  0 },
  695.     { /*  34:        11 1101 0010 */ 10,   978,  3,  5,  0,  0 },
  696.     { /*  35:        11 1101 0011 */ 10,   979,  1,  8,  0,  0 },
  697.     { /*  36:        11 1101 0100 */ 10,   980,  8,  1,  0,  0 },
  698.     { /*  37:        11 1101 0101 */ 10,   981,  4,  4,  0,  0 },
  699.     { /*  38:        11 1101 0110 */ 10,   982,  5,  3,  0,  0 },
  700.     { /*  39:        11 1101 0111 */ 10,   983,  6,  2,  0,  0 },
  701.     { /*  40:        11 1101 1000 */ 10,   984,  7,  1,  0,  0 },
  702.     { /*  41:        11 1101 1001 */ 10,   985,  0,  6,  0,  0 },
  703.     { /*  42:        11 1101 1010 */ 10,   986,  8,  2,  0,  0 },
  704.     { /*  43:        11 1101 1011 */ 10,   987,  2,  8,  0,  0 },
  705.     { /*  44:        11 1101 1100 */ 10,   988,  3,  6,  0,  0 },
  706.     { /*  45:        11 1101 1101 */ 10,   989,  2,  7,  0,  0 },
  707.     { /*  46:        11 1101 1110 */ 10,   990,  4,  5,  0,  0 },
  708.     { /*  47:        11 1101 1111 */ 10,   991,  9,  1,  0,  0 },
  709.     { /*  48:        11 1110 0000 */ 10,   992,  1,  9,  0,  0 },
  710.     { /*  49:        11 1110 0001 */ 10,   993,  7,  2,  0,  0 },
  711.     { /*  50:       111 1100 0100 */ 11,  1988,  6,  0,  0,  0 },
  712.     { /*  51:       111 1100 0101 */ 11,  1989,  5,  4,  0,  0 },
  713.     { /*  52:       111 1100 0110 */ 11,  1990,  6,  3,  0,  0 },
  714.     { /*  53:       111 1100 0111 */ 11,  1991,  8,  3,  0,  0 },
  715.     { /*  54:       111 1100 1000 */ 11,  1992,  0,  7,  0,  0 },
  716.     { /*  55:       111 1100 1001 */ 11,  1993,  9,  2,  0,  0 },
  717.     { /*  56:       111 1100 1010 */ 11,  1994,  3,  8,  0,  0 },
  718.     { /*  57:       111 1100 1011 */ 11,  1995,  4,  6,  0,  0 },
  719.     { /*  58:       111 1100 1100 */ 11,  1996,  3,  7,  0,  0 },
  720.     { /*  59:       111 1100 1101 */ 11,  1997,  0,  8,  0,  0 },
  721.     { /*  60:       111 1100 1110 */ 11,  1998, 10,  1,  0,  0 },
  722.     { /*  61:       111 1100 1111 */ 11,  1999,  6,  4,  0,  0 },
  723.     { /*  62:       111 1101 0000 */ 11,  2000,  2,  9,  0,  0 },
  724.     { /*  63:       111 1101 0001 */ 11,  2001,  5,  5,  0,  0 },
  725.     { /*  64:       111 1101 0010 */ 11,  2002,  8,  0,  0,  0 },
  726.     { /*  65:       111 1101 0011 */ 11,  2003,  7,  0,  0,  0 },
  727.     { /*  66:       111 1101 0100 */ 11,  2004,  7,  3,  0,  0 },
  728.     { /*  67:       111 1101 0101 */ 11,  2005, 10,  2,  0,  0 },
  729.     { /*  68:       111 1101 0110 */ 11,  2006,  9,  3,  0,  0 },
  730.     { /*  69:       111 1101 0111 */ 11,  2007,  8,  4,  0,  0 },
  731.     { /*  70:       111 1101 1000 */ 11,  2008,  1, 10,  0,  0 },
  732.     { /*  71:       111 1101 1001 */ 11,  2009,  7,  4,  0,  0 },
  733.     { /*  72:       111 1101 1010 */ 11,  2010,  6,  5,  0,  0 },
  734.     { /*  73:       111 1101 1011 */ 11,  2011,  5,  6,  0,  0 },
  735.     { /*  74:       111 1101 1100 */ 11,  2012,  4,  8,  0,  0 },
  736.     { /*  75:       111 1101 1101 */ 11,  2013,  4,  7,  0,  0 },
  737.     { /*  76:       111 1101 1110 */ 11,  2014,  3,  9,  0,  0 },
  738.     { /*  77:       111 1101 1111 */ 11,  2015, 11,  1,  0,  0 },
  739.     { /*  78:       111 1110 0000 */ 11,  2016,  5,  8,  0,  0 },
  740.     { /*  79:       111 1110 0001 */ 11,  2017,  9,  0,  0,  0 },
  741.     { /*  80:       111 1110 0010 */ 11,  2018,  8,  5,  0,  0 },
  742.     { /*  81:      1111 1100 0110 */ 12,  4038, 10,  3,  0,  0 },
  743.     { /*  82:      1111 1100 0111 */ 12,  4039,  2, 10,  0,  0 },
  744.     { /*  83:      1111 1100 1000 */ 12,  4040,  0,  9,  0,  0 },
  745.     { /*  84:      1111 1100 1001 */ 12,  4041, 11,  2,  0,  0 },
  746.     { /*  85:      1111 1100 1010 */ 12,  4042,  9,  4,  0,  0 },
  747.     { /*  86:      1111 1100 1011 */ 12,  4043,  6,  6,  0,  0 },
  748.     { /*  87:      1111 1100 1100 */ 12,  4044, 12,  1,  0,  0 },
  749.     { /*  88:      1111 1100 1101 */ 12,  4045,  4,  9,  0,  0 },
  750.     { /*  89:      1111 1100 1110 */ 12,  4046,  8,  6,  0,  0 },
  751.     { /*  90:      1111 1100 1111 */ 12,  4047,  1, 11,  0,  0 },
  752.     { /*  91:      1111 1101 0000 */ 12,  4048,  9,  5,  0,  0 },
  753.     { /*  92:      1111 1101 0001 */ 12,  4049, 10,  4,  0,  0 },
  754.     { /*  93:      1111 1101 0010 */ 12,  4050,  5,  7,  0,  0 },
  755.     { /*  94:      1111 1101 0011 */ 12,  4051,  7,  5,  0,  0 },
  756.     { /*  95:      1111 1101 0100 */ 12,  4052,  2, 11,  0,  0 },
  757.     { /*  96:      1111 1101 0101 */ 12,  4053,  1, 12,  0,  0 },
  758.     { /*  97:      1111 1101 0110 */ 12,  4054, 12,  2,  0,  0 },
  759.     { /*  98:      1111 1101 0111 */ 12,  4055, 11,  3,  0,  0 },
  760.     { /*  99:      1111 1101 1000 */ 12,  4056,  3, 10,  0,  0 },
  761.     { /* 100:      1111 1101 1001 */ 12,  4057,  5,  9,  0,  0 },
  762.     { /* 101:      1111 1101 1010 */ 12,  4058,  6,  7,  0,  0 },
  763.     { /* 102:      1111 1101 1011 */ 12,  4059,  8,  7,  0,  0 },
  764.     { /* 103:      1111 1101 1100 */ 12,  4060, 11,  4,  0,  0 },
  765.     { /* 104:      1111 1101 1101 */ 12,  4061,  0, 10,  0,  0 },
  766.     { /* 105:      1111 1101 1110 */ 12,  4062,  7,  6,  0,  0 },
  767.     { /* 106:      1111 1101 1111 */ 12,  4063, 12,  3,  0,  0 },
  768.     { /* 107:      1111 1110 0000 */ 12,  4064, 10,  0,  0,  0 },
  769.     { /* 108:      1111 1110 0001 */ 12,  4065, 10,  5,  0,  0 },
  770.     { /* 109:      1111 1110 0010 */ 12,  4066,  4, 10,  0,  0 },
  771.     { /* 110:      1111 1110 0011 */ 12,  4067,  6,  8,  0,  0 },
  772.     { /* 111:      1111 1110 0100 */ 12,  4068,  2, 12,  0,  0 },
  773.     { /* 112:      1111 1110 0101 */ 12,  4069,  9,  6,  0,  0 },
  774.     { /* 113:      1111 1110 0110 */ 12,  4070,  9,  7,  0,  0 },
  775.     { /* 114:      1111 1110 0111 */ 12,  4071,  4, 11,  0,  0 },
  776.     { /* 115:      1111 1110 1000 */ 12,  4072, 11,  0,  0,  0 },
  777.     { /* 116:      1111 1110 1001 */ 12,  4073,  6,  9,  0,  0 },
  778.     { /* 117:      1111 1110 1010 */ 12,  4074,  3, 11,  0,  0 },
  779.     { /* 118:      1111 1110 1011 */ 12,  4075,  5, 10,  0,  0 },
  780.     { /* 119:    1 1111 1101 1000 */ 13,  8152,  8,  8,  0,  0 },
  781.     { /* 120:    1 1111 1101 1001 */ 13,  8153,  7,  8,  0,  0 },
  782.     { /* 121:    1 1111 1101 1010 */ 13,  8154, 12,  5,  0,  0 },
  783.     { /* 122:    1 1111 1101 1011 */ 13,  8155,  3, 12,  0,  0 },
  784.     { /* 123:    1 1111 1101 1100 */ 13,  8156, 11,  5,  0,  0 },
  785.     { /* 124:    1 1111 1101 1101 */ 13,  8157,  7,  7,  0,  0 },
  786.     { /* 125:    1 1111 1101 1110 */ 13,  8158, 12,  4,  0,  0 },
  787.     { /* 126:    1 1111 1101 1111 */ 13,  8159, 11,  6,  0,  0 },
  788.     { /* 127:    1 1111 1110 0000 */ 13,  8160, 10,  6,  0,  0 },
  789.     { /* 128:    1 1111 1110 0001 */ 13,  8161,  4, 12,  0,  0 },
  790.     { /* 129:    1 1111 1110 0010 */ 13,  8162,  7,  9,  0,  0 },
  791.     { /* 130:    1 1111 1110 0011 */ 13,  8163,  5, 11,  0,  0 },
  792.     { /* 131:    1 1111 1110 0100 */ 13,  8164,  0, 11,  0,  0 },
  793.     { /* 132:    1 1111 1110 0101 */ 13,  8165, 12,  6,  0,  0 },
  794.     { /* 133:    1 1111 1110 0110 */ 13,  8166,  6, 10,  0,  0 },
  795.     { /* 134:    1 1111 1110 0111 */ 13,  8167, 12,  0,  0,  0 },
  796.     { /* 135:    1 1111 1110 1000 */ 13,  8168, 10,  7,  0,  0 },
  797.     { /* 136:    1 1111 1110 1001 */ 13,  8169,  5, 12,  0,  0 },
  798.     { /* 137:    1 1111 1110 1010 */ 13,  8170,  7, 10,  0,  0 },
  799.     { /* 138:    1 1111 1110 1011 */ 13,  8171,  9,  8,  0,  0 },
  800.     { /* 139:    1 1111 1110 1100 */ 13,  8172,  0, 12,  0,  0 },
  801.     { /* 140:    1 1111 1110 1101 */ 13,  8173, 11,  7,  0,  0 },
  802.     { /* 141:    1 1111 1110 1110 */ 13,  8174,  8,  9,  0,  0 },
  803.     { /* 142:    1 1111 1110 1111 */ 13,  8175,  9,  9,  0,  0 },
  804.     { /* 143:    1 1111 1111 0000 */ 13,  8176, 10,  8,  0,  0 },
  805.     { /* 144:    1 1111 1111 0001 */ 13,  8177,  7, 11,  0,  0 },
  806.     { /* 145:    1 1111 1111 0010 */ 13,  8178, 12,  7,  0,  0 },
  807.     { /* 146:    1 1111 1111 0011 */ 13,  8179,  6, 11,  0,  0 },
  808.     { /* 147:    1 1111 1111 0100 */ 13,  8180,  8, 11,  0,  0 },
  809.     { /* 148:    1 1111 1111 0101 */ 13,  8181, 11,  8,  0,  0 },
  810.     { /* 149:    1 1111 1111 0110 */ 13,  8182,  7, 12,  0,  0 },
  811.     { /* 150:    1 1111 1111 0111 */ 13,  8183,  6, 12,  0,  0 },
  812.     { /* 151:   11 1111 1111 0000 */ 14, 16368,  8, 10,  0,  0 },
  813.     { /* 152:   11 1111 1111 0001 */ 14, 16369, 10,  9,  0,  0 },
  814.     { /* 153:   11 1111 1111 0010 */ 14, 16370,  8, 12,  0,  0 },
  815.     { /* 154:   11 1111 1111 0011 */ 14, 16371,  9, 10,  0,  0 },
  816.     { /* 155:   11 1111 1111 0100 */ 14, 16372,  9, 11,  0,  0 },
  817.     { /* 156:   11 1111 1111 0101 */ 14, 16373,  9, 12,  0,  0 },
  818.     { /* 157:   11 1111 1111 0110 */ 14, 16374, 10, 11,  0,  0 },
  819.     { /* 158:   11 1111 1111 0111 */ 14, 16375, 12,  9,  0,  0 },
  820.     { /* 159:   11 1111 1111 1000 */ 14, 16376, 10, 10,  0,  0 },
  821.     { /* 160:   11 1111 1111 1001 */ 14, 16377, 11,  9,  0,  0 },
  822.     { /* 161:   11 1111 1111 1010 */ 14, 16378, 12,  8,  0,  0 },
  823.     { /* 162:   11 1111 1111 1011 */ 14, 16379, 11, 10,  0,  0 },
  824.     { /* 163:   11 1111 1111 1100 */ 14, 16380, 12, 10,  0,  0 },
  825.     { /* 164:   11 1111 1111 1101 */ 14, 16381, 12, 11,  0,  0 },
  826.     { /* 165:  111 1111 1111 1100 */ 15, 32764, 10, 12,  0,  0 },
  827.     { /* 166:  111 1111 1111 1101 */ 15, 32765, 11, 11,  0,  0 },
  828.     { /* 167:  111 1111 1111 1110 */ 15, 32766, 11, 12,  0,  0 },
  829.     { /* 168:  111 1111 1111 1111 */ 15, 32767, 12, 12,  0,  0 }
  830. };
  831. Huffman book10[] = {
  832.       /* idx             codeword   len  codew   x   y   v   w */
  833.     { /*   0:                0000 */  4,     0,  1,  1,  0,  0 },
  834.     { /*   1:                0001 */  4,     1,  1,  2,  0,  0 },
  835.     { /*   2:                0010 */  4,     2,  2,  1,  0,  0 },
  836.     { /*   3:              0 0110 */  5,     6,  2,  2,  0,  0 },
  837.     { /*   4:              0 0111 */  5,     7,  1,  0,  0,  0 },
  838.     { /*   5:              0 1000 */  5,     8,  0,  1,  0,  0 },
  839.     { /*   6:              0 1001 */  5,     9,  1,  3,  0,  0 },
  840.     { /*   7:              0 1010 */  5,    10,  3,  2,  0,  0 },
  841.     { /*   8:              0 1011 */  5,    11,  3,  1,  0,  0 },
  842.     { /*   9:              0 1100 */  5,    12,  2,  3,  0,  0 },
  843.     { /*  10:              0 1101 */  5,    13,  3,  3,  0,  0 },
  844.     { /*  11:             01 1100 */  6,    28,  2,  0,  0,  0 },
  845.     { /*  12:             01 1101 */  6,    29,  0,  2,  0,  0 },
  846.     { /*  13:             01 1110 */  6,    30,  2,  4,  0,  0 },
  847.     { /*  14:             01 1111 */  6,    31,  4,  2,  0,  0 },
  848.     { /*  15:             10 0000 */  6,    32,  1,  4,  0,  0 },
  849.     { /*  16:             10 0001 */  6,    33,  4,  1,  0,  0 },
  850.     { /*  17:             10 0010 */  6,    34,  0,  0,  0,  0 },
  851.     { /*  18:             10 0011 */  6,    35,  4,  3,  0,  0 },
  852.     { /*  19:             10 0100 */  6,    36,  3,  4,  0,  0 },
  853.     { /*  20:             10 0101 */  6,    37,  3,  0,  0,  0 },
  854.     { /*  21:             10 0110 */  6,    38,  0,  3,  0,  0 },
  855.     { /*  22:             10 0111 */  6,    39,  4,  4,  0,  0 },
  856.     { /*  23:             10 1000 */  6,    40,  2,  5,  0,  0 },
  857.     { /*  24:             10 1001 */  6,    41,  5,  2,  0,  0 },
  858.     { /*  25:            101 0100 */  7,    84,  1,  5,  0,  0 },
  859.     { /*  26:            101 0101 */  7,    85,  5,  1,  0,  0 },
  860.     { /*  27:            101 0110 */  7,    86,  5,  3,  0,  0 },
  861.     { /*  28:            101 0111 */  7,    87,  3,  5,  0,  0 },
  862.     { /*  29:            101 1000 */  7,    88,  5,  4,  0,  0 },
  863.     { /*  30:            101 1001 */  7,    89,  4,  5,  0,  0 },
  864.     { /*  31:            101 1010 */  7,    90,  6,  2,  0,  0 },
  865.     { /*  32:            101 1011 */  7,    91,  2,  6,  0,  0 },
  866.     { /*  33:            101 1100 */  7,    92,  6,  3,  0,  0 },
  867.     { /*  34:            101 1101 */  7,    93,  4,  0,  0,  0 },
  868.     { /*  35:            101 1110 */  7,    94,  6,  1,  0,  0 },
  869.     { /*  36:            101 1111 */  7,    95,  0,  4,  0,  0 },
  870.     { /*  37:            110 0000 */  7,    96,  1,  6,  0,  0 },
  871.     { /*  38:            110 0001 */  7,    97,  3,  6,  0,  0 },
  872.     { /*  39:            110 0010 */  7,    98,  5,  5,  0,  0 },
  873.     { /*  40:            110 0011 */  7,    99,  6,  4,  0,  0 },
  874.     { /*  41:            110 0100 */  7,   100,  4,  6,  0,  0 },
  875.     { /*  42:           1100 1010 */  8,   202,  6,  5,  0,  0 },
  876.     { /*  43:           1100 1011 */  8,   203,  7,  2,  0,  0 },
  877.     { /*  44:           1100 1100 */  8,   204,  3,  7,  0,  0 },
  878.     { /*  45:           1100 1101 */  8,   205,  2,  7,  0,  0 },
  879.     { /*  46:           1100 1110 */  8,   206,  5,  6,  0,  0 },
  880.     { /*  47:           1100 1111 */  8,   207,  8,  2,  0,  0 },
  881.     { /*  48:           1101 0000 */  8,   208,  7,  3,  0,  0 },
  882.     { /*  49:           1101 0001 */  8,   209,  5,  0,  0,  0 },
  883.     { /*  50:           1101 0010 */  8,   210,  7,  1,  0,  0 },
  884.     { /*  51:           1101 0011 */  8,   211,  0,  5,  0,  0 },
  885.     { /*  52:           1101 0100 */  8,   212,  8,  1,  0,  0 },
  886.     { /*  53:           1101 0101 */  8,   213,  1,  7,  0,  0 },
  887.     { /*  54:           1101 0110 */  8,   214,  8,  3,  0,  0 },
  888.     { /*  55:           1101 0111 */  8,   215,  7,  4,  0,  0 },
  889.     { /*  56:           1101 1000 */  8,   216,  4,  7,  0,  0 },
  890.     { /*  57:           1101 1001 */  8,   217,  2,  8,  0,  0 },
  891.     { /*  58:           1101 1010 */  8,   218,  6,  6,  0,  0 },
  892.     { /*  59:           1101 1011 */  8,   219,  7,  5,  0,  0 },
  893.     { /*  60:           1101 1100 */  8,   220,  1,  8,  0,  0 },
  894.     { /*  61:           1101 1101 */  8,   221,  3,  8,  0,  0 },
  895.     { /*  62:           1101 1110 */  8,   222,  8,  4,  0,  0 },
  896.     { /*  63:           1101 1111 */  8,   223,  4,  8,  0,  0 },
  897.     { /*  64:           1110 0000 */  8,   224,  5,  7,  0,  0 },
  898.     { /*  65:           1110 0001 */  8,   225,  8,  5,  0,  0 },
  899.     { /*  66:           1110 0010 */  8,   226,  5,  8,  0,  0 },
  900.     { /*  67:         1 1100 0110 */  9,   454,  7,  6,  0,  0 },
  901.     { /*  68:         1 1100 0111 */  9,   455,  6,  7,  0,  0 },
  902.     { /*  69:         1 1100 1000 */  9,   456,  9,  2,  0,  0 },
  903.     { /*  70:         1 1100 1001 */  9,   457,  6,  0,  0,  0 },
  904.     { /*  71:         1 1100 1010 */  9,   458,  6,  8,  0,  0 },
  905.     { /*  72:         1 1100 1011 */  9,   459,  9,  3,  0,  0 },
  906.     { /*  73:         1 1100 1100 */  9,   460,  3,  9,  0,  0 },
  907.     { /*  74:         1 1100 1101 */  9,   461,  9,  1,  0,  0 },
  908.     { /*  75:         1 1100 1110 */  9,   462,  2,  9,  0,  0 },
  909.     { /*  76:         1 1100 1111 */  9,   463,  0,  6,  0,  0 },
  910.     { /*  77:         1 1101 0000 */  9,   464,  8,  6,  0,  0 },
  911.     { /*  78:         1 1101 0001 */  9,   465,  9,  4,  0,  0 },
  912.     { /*  79:         1 1101 0010 */  9,   466,  4,  9,  0,  0 },
  913.     { /*  80:         1 1101 0011 */  9,   467, 10,  2,  0,  0 },
  914.     { /*  81:         1 1101 0100 */  9,   468,  1,  9,  0,  0 },
  915.     { /*  82:         1 1101 0101 */  9,   469,  7,  7,  0,  0 },
  916.     { /*  83:         1 1101 0110 */  9,   470,  8,  7,  0,  0 },
  917.     { /*  84:         1 1101 0111 */  9,   471,  9,  5,  0,  0 },
  918.     { /*  85:         1 1101 1000 */  9,   472,  7,  8,  0,  0 },
  919.     { /*  86:         1 1101 1001 */  9,   473, 10,  3,  0,  0 },
  920.     { /*  87:         1 1101 1010 */  9,   474,  5,  9,  0,  0 },
  921.     { /*  88:         1 1101 1011 */  9,   475, 10,  4,  0,  0 },
  922.     { /*  89:         1 1101 1100 */  9,   476,  2, 10,  0,  0 },
  923.     { /*  90:         1 1101 1101 */  9,   477, 10,  1,  0,  0 },
  924.     { /*  91:         1 1101 1110 */  9,   478,  3, 10,  0,  0 },
  925.     { /*  92:         1 1101 1111 */  9,   479,  9,  6,  0,  0 },
  926.     { /*  93:         1 1110 0000 */  9,   480,  6,  9,  0,  0 },
  927.     { /*  94:         1 1110 0001 */  9,   481,  8,  0,  0,  0 },
  928.     { /*  95:         1 1110 0010 */  9,   482,  4, 10,  0,  0 },
  929.     { /*  96:         1 1110 0011 */  9,   483,  7,  0,  0,  0 },
  930.     { /*  97:         1 1110 0100 */  9,   484, 11,  2,  0,  0 },
  931.     { /*  98:        11 1100 1010 */ 10,   970,  7,  9,  0,  0 },
  932.     { /*  99:        11 1100 1011 */ 10,   971, 11,  3,  0,  0 },
  933.     { /* 100:        11 1100 1100 */ 10,   972, 10,  6,  0,  0 },
  934.     { /* 101:        11 1100 1101 */ 10,   973,  1, 10,  0,  0 },
  935.     { /* 102:        11 1100 1110 */ 10,   974, 11,  1,  0,  0 },
  936.     { /* 103:        11 1100 1111 */ 10,   975,  9,  7,  0,  0 },
  937.     { /* 104:        11 1101 0000 */ 10,   976,  0,  7,  0,  0 },
  938.     { /* 105:        11 1101 0001 */ 10,   977,  8,  8,  0,  0 },
  939.     { /* 106:        11 1101 0010 */ 10,   978, 10,  5,  0,  0 },
  940.     { /* 107:        11 1101 0011 */ 10,   979,  3, 11,  0,  0 },
  941.     { /* 108:        11 1101 0100 */ 10,   980,  5, 10,  0,  0 },
  942.     { /* 109:        11 1101 0101 */ 10,   981,  8,  9,  0,  0 },
  943.     { /* 110:        11 1101 0110 */ 10,   982, 11,  5,  0,  0 },
  944.     { /* 111:        11 1101 0111 */ 10,   983,  0,  8,  0,  0 },
  945.     { /* 112:        11 1101 1000 */ 10,   984, 11,  4,  0,  0 },
  946.     { /* 113:        11 1101 1001 */ 10,   985,  2, 11,  0,  0 },
  947.     { /* 114:        11 1101 1010 */ 10,   986,  7, 10,  0,  0 },
  948.     { /* 115:        11 1101 1011 */ 10,   987,  6, 10,  0,  0 },
  949.     { /* 116:        11 1101 1100 */ 10,   988, 10,  7,  0,  0 },
  950.     { /* 117:        11 1101 1101 */ 10,   989,  4, 11,  0,  0 },
  951.     { /* 118:        11 1101 1110 */ 10,   990,  1, 11,  0,  0 },
  952.     { /* 119:        11 1101 1111 */ 10,   991, 12,  2,  0,  0 },
  953.     { /* 120:        11 1110 0000 */ 10,   992,  9,  8,  0,  0 },
  954.     { /* 121:        11 1110 0001 */ 10,   993, 12,  3,  0,  0 },
  955.     { /* 122:        11 1110 0010 */ 10,   994, 11,  6,  0,  0 },
  956.     { /* 123:        11 1110 0011 */ 10,   995,  5, 11,  0,  0 },
  957.     { /* 124:        11 1110 0100 */ 10,   996, 12,  4,  0,  0 },
  958.     { /* 125:        11 1110 0101 */ 10,   997, 11,  7,  0,  0 },
  959.     { /* 126:        11 1110 0110 */ 10,   998, 12,  5,  0,  0 },
  960.     { /* 127:        11 1110 0111 */ 10,   999,  3, 12,  0,  0 },
  961.     { /* 128:        11 1110 1000 */ 10,  1000,  6, 11,  0,  0 },
  962.     { /* 129:        11 1110 1001 */ 10,  1001,  9,  0,  0,  0 },
  963.     { /* 130:        11 1110 1010 */ 10,  1002, 10,  8,  0,  0 },
  964.     { /* 131:        11 1110 1011 */ 10,  1003, 10,  0,  0,  0 },
  965.     { /* 132:        11 1110 1100 */ 10,  1004, 12,  1,  0,  0 },
  966.     { /* 133:        11 1110 1101 */ 10,  1005,  0,  9,  0,  0 },
  967.     { /* 134:        11 1110 1110 */ 10,  1006,  4, 12,  0,  0 },
  968.     { /* 135:        11 1110 1111 */ 10,  1007,  9,  9,  0,  0 },
  969.     { /* 136:        11 1111 0000 */ 10,  1008, 12,  6,  0,  0 },
  970.     { /* 137:        11 1111 0001 */ 10,  1009,  2, 12,  0,  0 },
  971.     { /* 138:        11 1111 0010 */ 10,  1010,  8, 10,  0,  0 },
  972.     { /* 139:       111 1110 0110 */ 11,  2022,  9, 10,  0,  0 },
  973.     { /* 140:       111 1110 0111 */ 11,  2023,  1, 12,  0,  0 },
  974.     { /* 141:       111 1110 1000 */ 11,  2024, 11,  8,  0,  0 },
  975.     { /* 142:       111 1110 1001 */ 11,  2025, 12,  7,  0,  0 },
  976.     { /* 143:       111 1110 1010 */ 11,  2026,  7, 11,  0,  0 },
  977.     { /* 144:       111 1110 1011 */ 11,  2027,  5, 12,  0,  0 },
  978.     { /* 145:       111 1110 1100 */ 11,  2028,  6, 12,  0,  0 },
  979.     { /* 146:       111 1110 1101 */ 11,  2029, 10,  9,  0,  0 },
  980.     { /* 147:       111 1110 1110 */ 11,  2030,  8, 11,  0,  0 },
  981.     { /* 148:       111 1110 1111 */ 11,  2031, 12,  8,  0,  0 },
  982.     { /* 149:       111 1111 0000 */ 11,  2032,  0, 10,  0,  0 },
  983.     { /* 150:       111 1111 0001 */ 11,  2033,  7, 12,  0,  0 },
  984.     { /* 151:       111 1111 0010 */ 11,  2034, 11,  0,  0,  0 },
  985.     { /* 152:       111 1111 0011 */ 11,  2035, 10, 10,  0,  0 },
  986.     { /* 153:       111 1111 0100 */ 11,  2036, 11,  9,  0,  0 },
  987.     { /* 154:       111 1111 0101 */ 11,  2037, 11, 10,  0,  0 },
  988.     { /* 155:       111 1111 0110 */ 11,  2038,  0, 11,  0,  0 },
  989.     { /* 156:       111 1111 0111 */ 11,  2039, 11, 11,  0,  0 },
  990.     { /* 157:       111 1111 1000 */ 11,  2040,  9, 11,  0,  0 },
  991.     { /* 158:       111 1111 1001 */ 11,  2041, 10, 11,  0,  0 },
  992.     { /* 159:       111 1111 1010 */ 11,  2042, 12,  0,  0,  0 },
  993.     { /* 160:       111 1111 1011 */ 11,  2043,  8, 12,  0,  0 },
  994.     { /* 161:      1111 1111 1000 */ 12,  4088, 12,  9,  0,  0 },
  995.     { /* 162:      1111 1111 1001 */ 12,  4089, 10, 12,  0,  0 },
  996.     { /* 163:      1111 1111 1010 */ 12,  4090,  9, 12,  0,  0 },
  997.     { /* 164:      1111 1111 1011 */ 12,  4091, 11, 12,  0,  0 },
  998.     { /* 165:      1111 1111 1100 */ 12,  4092, 12, 11,  0,  0 },
  999.     { /* 166:      1111 1111 1101 */ 12,  4093,  0, 12,  0,  0 },
  1000.     { /* 167:      1111 1111 1110 */ 12,  4094, 12, 10,  0,  0 },
  1001.     { /* 168:      1111 1111 1111 */ 12,  4095, 12, 12,  0,  0 }
  1002. };
  1003. Huffman book11[] = {
  1004.       /* idx             codeword   len  codew   x   y   v   w */
  1005.     { /*   0:                0000 */  4,     0,  0,  0,  0,  0 },
  1006.     { /*   1:                0001 */  4,     1,  1,  1,  0,  0 },
  1007.     { /*   2:              0 0100 */  5,     4, 16, 16,  0,  0 },
  1008.     { /*   3:              0 0101 */  5,     5,  1,  0,  0,  0 },
  1009.     { /*   4:              0 0110 */  5,     6,  0,  1,  0,  0 },
  1010.     { /*   5:              0 0111 */  5,     7,  2,  1,  0,  0 },
  1011.     { /*   6:              0 1000 */  5,     8,  1,  2,  0,  0 },
  1012.     { /*   7:              0 1001 */  5,     9,  2,  2,  0,  0 },
  1013.     { /*   8:             01 0100 */  6,    20,  1,  3,  0,  0 },
  1014.     { /*   9:             01 0101 */  6,    21,  3,  1,  0,  0 },
  1015.     { /*  10:             01 0110 */  6,    22,  3,  2,  0,  0 },
  1016.     { /*  11:             01 0111 */  6,    23,  2,  0,  0,  0 },
  1017.     { /*  12:             01 1000 */  6,    24,  2,  3,  0,  0 },
  1018.     { /*  13:             01 1001 */  6,    25,  0,  2,  0,  0 },
  1019.     { /*  14:             01 1010 */  6,    26,  3,  3,  0,  0 },
  1020.     { /*  15:            011 0110 */  7,    54,  4,  1,  0,  0 },
  1021.     { /*  16:            011 0111 */  7,    55,  1,  4,  0,  0 },
  1022.     { /*  17:            011 1000 */  7,    56,  4,  2,  0,  0 },
  1023.     { /*  18:            011 1001 */  7,    57,  2,  4,  0,  0 },
  1024.     { /*  19:            011 1010 */  7,    58,  4,  3,  0,  0 },
  1025.     { /*  20:            011 1011 */  7,    59,  3,  4,  0,  0 },
  1026.     { /*  21:            011 1100 */  7,    60,  3,  0,  0,  0 },
  1027.     { /*  22:            011 1101 */  7,    61,  0,  3,  0,  0 },
  1028.     { /*  23:            011 1110 */  7,    62,  5,  1,  0,  0 },
  1029.     { /*  24:            011 1111 */  7,    63,  5,  2,  0,  0 },
  1030.     { /*  25:            100 0000 */  7,    64,  2,  5,  0,  0 },
  1031.     { /*  26:            100 0001 */  7,    65,  4,  4,  0,  0 },
  1032.     { /*  27:            100 0010 */  7,    66,  1,  5,  0,  0 },
  1033.     { /*  28:            100 0011 */  7,    67,  5,  3,  0,  0 },
  1034.     { /*  29:            100 0100 */  7,    68,  3,  5,  0,  0 },
  1035.     { /*  30:            100 0101 */  7,    69,  5,  4,  0,  0 },
  1036.     { /*  31:           1000 1100 */  8,   140,  4,  5,  0,  0 },
  1037.     { /*  32:           1000 1101 */  8,   141,  6,  2,  0,  0 },
  1038.     { /*  33:           1000 1110 */  8,   142,  2,  6,  0,  0 },
  1039.     { /*  34:           1000 1111 */  8,   143,  6,  1,  0,  0 },
  1040.     { /*  35:           1001 0000 */  8,   144,  6,  3,  0,  0 },
  1041.     { /*  36:           1001 0001 */  8,   145,  3,  6,  0,  0 },
  1042.     { /*  37:           1001 0010 */  8,   146,  1,  6,  0,  0 },
  1043.     { /*  38:           1001 0011 */  8,   147,  4, 16,  0,  0 },
  1044.     { /*  39:           1001 0100 */  8,   148,  3, 16,  0,  0 },
  1045.     { /*  40:           1001 0101 */  8,   149, 16,  5,  0,  0 },
  1046.     { /*  41:           1001 0110 */  8,   150, 16,  3,  0,  0 },
  1047.     { /*  42:           1001 0111 */  8,   151, 16,  4,  0,  0 },
  1048.     { /*  43:           1001 1000 */  8,   152,  6,  4,  0,  0 },
  1049.     { /*  44:           1001 1001 */  8,   153, 16,  6,  0,  0 },
  1050.     { /*  45:           1001 1010 */  8,   154,  4,  0,  0,  0 },
  1051.     { /*  46:           1001 1011 */  8,   155,  4,  6,  0,  0 },
  1052.     { /*  47:           1001 1100 */  8,   156,  0,  4,  0,  0 },
  1053.     { /*  48:           1001 1101 */  8,   157,  2, 16,  0,  0 },
  1054.     { /*  49:           1001 1110 */  8,   158,  5,  5,  0,  0 },
  1055.     { /*  50:           1001 1111 */  8,   159,  5, 16,  0,  0 },
  1056.     { /*  51:           1010 0000 */  8,   160, 16,  7,  0,  0 },
  1057.     { /*  52:           1010 0001 */  8,   161, 16,  2,  0,  0 },
  1058.     { /*  53:           1010 0010 */  8,   162, 16,  8,  0,  0 },
  1059.     { /*  54:           1010 0011 */  8,   163,  2,  7,  0,  0 },
  1060.     { /*  55:           1010 0100 */  8,   164,  7,  2,  0,  0 },
  1061.     { /*  56:           1010 0101 */  8,   165,  3,  7,  0,  0 },
  1062.     { /*  57:           1010 0110 */  8,   166,  6,  5,  0,  0 },
  1063.     { /*  58:           1010 0111 */  8,   167,  5,  6,  0,  0 },
  1064.     { /*  59:           1010 1000 */  8,   168,  6, 16,  0,  0 },
  1065.     { /*  60:           1010 1001 */  8,   169, 16, 10,  0,  0 },
  1066.     { /*  61:           1010 1010 */  8,   170,  7,  3,  0,  0 },
  1067.     { /*  62:           1010 1011 */  8,   171,  7,  1,  0,  0 },
  1068.     { /*  63:           1010 1100 */  8,   172, 16,  9,  0,  0 },
  1069.     { /*  64:           1010 1101 */  8,   173,  7, 16,  0,  0 },
  1070.     { /*  65:           1010 1110 */  8,   174,  1, 16,  0,  0 },
  1071.     { /*  66:           1010 1111 */  8,   175,  1,  7,  0,  0 },
  1072.     { /*  67:           1011 0000 */  8,   176,  4,  7,  0,  0 },
  1073.     { /*  68:           1011 0001 */  8,   177, 16, 11,  0,  0 },
  1074.     { /*  69:           1011 0010 */  8,   178,  7,  4,  0,  0 },
  1075.     { /*  70:           1011 0011 */  8,   179, 16, 12,  0,  0 },
  1076.     { /*  71:           1011 0100 */  8,   180,  8, 16,  0,  0 },
  1077.     { /*  72:           1011 0101 */  8,   181, 16,  1,  0,  0 },
  1078.     { /*  73:           1011 0110 */  8,   182,  6,  6,  0,  0 },
  1079.     { /*  74:           1011 0111 */  8,   183,  9, 16,  0,  0 },
  1080.     { /*  75:           1011 1000 */  8,   184,  2,  8,  0,  0 },
  1081.     { /*  76:           1011 1001 */  8,   185,  5,  7,  0,  0 },
  1082.     { /*  77:           1011 1010 */  8,   186, 10, 16,  0,  0 },
  1083.     { /*  78:           1011 1011 */  8,   187, 16, 13,  0,  0 },
  1084.     { /*  79:           1011 1100 */  8,   188,  8,  3,  0,  0 },
  1085.     { /*  80:           1011 1101 */  8,   189,  8,  2,  0,  0 },
  1086.     { /*  81:           1011 1110 */  8,   190,  3,  8,  0,  0 },
  1087.     { /*  82:           1011 1111 */  8,   191,  5,  0,  0,  0 },
  1088.     { /*  83:           1100 0000 */  8,   192, 16, 14,  0,  0 },
  1089.     { /*  84:           1100 0001 */  8,   193, 11, 16,  0,  0 },
  1090.     { /*  85:           1100 0010 */  8,   194,  7,  5,  0,  0 },
  1091.     { /*  86:           1100 0011 */  8,   195,  4,  8,  0,  0 },
  1092.     { /*  87:           1100 0100 */  8,   196,  6,  7,  0,  0 },
  1093.     { /*  88:           1100 0101 */  8,   197,  7,  6,  0,  0 },
  1094.     { /*  89:           1100 0110 */  8,   198,  0,  5,  0,  0 },
  1095.     { /*  90:         1 1000 1110 */  9,   398,  8,  4,  0,  0 },
  1096.     { /*  91:         1 1000 1111 */  9,   399, 16, 15,  0,  0 },
  1097.     { /*  92:         1 1001 0000 */  9,   400, 12, 16,  0,  0 },
  1098.     { /*  93:         1 1001 0001 */  9,   401,  1,  8,  0,  0 },
  1099.     { /*  94:         1 1001 0010 */  9,   402,  8,  1,  0,  0 },
  1100.     { /*  95:         1 1001 0011 */  9,   403, 14, 16,  0,  0 },
  1101.     { /*  96:         1 1001 0100 */  9,   404,  5,  8,  0,  0 },
  1102.     { /*  97:         1 1001 0101 */  9,   405, 13, 16,  0,  0 },
  1103.     { /*  98:         1 1001 0110 */  9,   406,  3,  9,  0,  0 },
  1104.     { /*  99:         1 1001 0111 */  9,   407,  8,  5,  0,  0 },
  1105.     { /* 100:         1 1001 1000 */  9,   408,  7,  7,  0,  0 },
  1106.     { /* 101:         1 1001 1001 */  9,   409,  2,  9,  0,  0 },
  1107.     { /* 102:         1 1001 1010 */  9,   410,  8,  6,  0,  0 },
  1108.     { /* 103:         1 1001 1011 */  9,   411,  9,  2,  0,  0 },
  1109.     { /* 104:         1 1001 1100 */  9,   412,  9,  3,  0,  0 },
  1110.     { /* 105:         1 1001 1101 */  9,   413, 15, 16,  0,  0 },
  1111.     { /* 106:         1 1001 1110 */  9,   414,  4,  9,  0,  0 },
  1112.     { /* 107:         1 1001 1111 */  9,   415,  6,  8,  0,  0 },
  1113.     { /* 108:         1 1010 0000 */  9,   416,  6,  0,  0,  0 },
  1114.     { /* 109:         1 1010 0001 */  9,   417,  9,  4,  0,  0 },
  1115.     { /* 110:         1 1010 0010 */  9,   418,  5,  9,  0,  0 },
  1116.     { /* 111:         1 1010 0011 */  9,   419,  8,  7,  0,  0 },
  1117.     { /* 112:         1 1010 0100 */  9,   420,  7,  8,  0,  0 },
  1118.     { /* 113:         1 1010 0101 */  9,   421,  1,  9,  0,  0 },
  1119.     { /* 114:         1 1010 0110 */  9,   422, 10,  3,  0,  0 },
  1120.     { /* 115:         1 1010 0111 */  9,   423,  0,  6,  0,  0 },
  1121.     { /* 116:         1 1010 1000 */  9,   424, 10,  2,  0,  0 },
  1122.     { /* 117:         1 1010 1001 */  9,   425,  9,  1,  0,  0 },
  1123.     { /* 118:         1 1010 1010 */  9,   426,  9,  5,  0,  0 },
  1124.     { /* 119:         1 1010 1011 */  9,   427,  4, 10,  0,  0 },
  1125.     { /* 120:         1 1010 1100 */  9,   428,  2, 10,  0,  0 },
  1126.     { /* 121:         1 1010 1101 */  9,   429,  9,  6,  0,  0 },
  1127.     { /* 122:         1 1010 1110 */  9,   430,  3, 10,  0,  0 },
  1128.     { /* 123:         1 1010 1111 */  9,   431,  6,  9,  0,  0 },
  1129.     { /* 124:         1 1011 0000 */  9,   432, 10,  4,  0,  0 },
  1130.     { /* 125:         1 1011 0001 */  9,   433,  8,  8,  0,  0 },
  1131.     { /* 126:         1 1011 0010 */  9,   434, 10,  5,  0,  0 },
  1132.     { /* 127:         1 1011 0011 */  9,   435,  9,  7,  0,  0 },
  1133.     { /* 128:         1 1011 0100 */  9,   436, 11,  3,  0,  0 },
  1134.     { /* 129:         1 1011 0101 */  9,   437,  1, 10,  0,  0 },
  1135.     { /* 130:         1 1011 0110 */  9,   438,  7,  0,  0,  0 },
  1136.     { /* 131:         1 1011 0111 */  9,   439, 10,  6,  0,  0 },
  1137.     { /* 132:         1 1011 1000 */  9,   440,  7,  9,  0,  0 },
  1138.     { /* 133:         1 1011 1001 */  9,   441,  3, 11,  0,  0 },
  1139.     { /* 134:         1 1011 1010 */  9,   442,  5, 10,  0,  0 },
  1140.     { /* 135:         1 1011 1011 */  9,   443, 10,  1,  0,  0 },
  1141.     { /* 136:         1 1011 1100 */  9,   444,  4, 11,  0,  0 },
  1142.     { /* 137:         1 1011 1101 */  9,   445, 11,  2,  0,  0 },
  1143.     { /* 138:         1 1011 1110 */  9,   446, 13,  2,  0,  0 },
  1144.     { /* 139:         1 1011 1111 */  9,   447,  6, 10,  0,  0 },
  1145.     { /* 140:         1 1100 0000 */  9,   448, 13,  3,  0,  0 },
  1146.     { /* 141:         1 1100 0001 */  9,   449,  2, 11,  0,  0 },
  1147.     { /* 142:         1 1100 0010 */  9,   450, 16,  0,  0,  0 },
  1148.     { /* 143:         1 1100 0011 */  9,   451,  5, 11,  0,  0 },
  1149.     { /* 144:         1 1100 0100 */  9,   452, 11,  5,  0,  0 },
  1150.     { /* 145:        11 1000 1010 */ 10,   906, 11,  4,  0,  0 },
  1151.     { /* 146:        11 1000 1011 */ 10,   907,  9,  8,  0,  0 },
  1152.     { /* 147:        11 1000 1100 */ 10,   908,  7, 10,  0,  0 },
  1153.     { /* 148:        11 1000 1101 */ 10,   909,  8,  9,  0,  0 },
  1154.     { /* 149:        11 1000 1110 */ 10,   910,  0, 16,  0,  0 },
  1155.     { /* 150:        11 1000 1111 */ 10,   911,  4, 13,  0,  0 },
  1156.     { /* 151:        11 1001 0000 */ 10,   912,  0,  7,  0,  0 },
  1157.     { /* 152:        11 1001 0001 */ 10,   913,  3, 13,  0,  0 },
  1158.     { /* 153:        11 1001 0010 */ 10,   914, 11,  6,  0,  0 },
  1159.     { /* 154:        11 1001 0011 */ 10,   915, 13,  1,  0,  0 },
  1160.     { /* 155:        11 1001 0100 */ 10,   916, 13,  4,  0,  0 },
  1161.     { /* 156:        11 1001 0101 */ 10,   917, 12,  3,  0,  0 },
  1162.     { /* 157:        11 1001 0110 */ 10,   918,  2, 13,  0,  0 },
  1163.     { /* 158:        11 1001 0111 */ 10,   919, 13,  5,  0,  0 },
  1164.     { /* 159:        11 1001 1000 */ 10,   920,  8, 10,  0,  0 },
  1165.     { /* 160:        11 1001 1001 */ 10,   921,  6, 11,  0,  0 },
  1166.     { /* 161:        11 1001 1010 */ 10,   922, 10,  8,  0,  0 },
  1167.     { /* 162:        11 1001 1011 */ 10,   923, 10,  7,  0,  0 },
  1168.     { /* 163:        11 1001 1100 */ 10,   924, 14,  2,  0,  0 },
  1169.     { /* 164:        11 1001 1101 */ 10,   925, 12,  4,  0,  0 },
  1170.     { /* 165:        11 1001 1110 */ 10,   926,  1, 11,  0,  0 },
  1171.     { /* 166:        11 1001 1111 */ 10,   927,  4, 12,  0,  0 },
  1172.     { /* 167:        11 1010 0000 */ 10,   928, 11,  1,  0,  0 },
  1173.     { /* 168:        11 1010 0001 */ 10,   929,  3, 12,  0,  0 },
  1174.     { /* 169:        11 1010 0010 */ 10,   930,  1, 13,  0,  0 },
  1175.     { /* 170:        11 1010 0011 */ 10,   931, 12,  2,  0,  0 },
  1176.     { /* 171:        11 1010 0100 */ 10,   932,  7, 11,  0,  0 },
  1177.     { /* 172:        11 1010 0101 */ 10,   933,  3, 14,  0,  0 },
  1178.     { /* 173:        11 1010 0110 */ 10,   934,  5, 12,  0,  0 },
  1179.     { /* 174:        11 1010 0111 */ 10,   935,  5, 13,  0,  0 },
  1180.     { /* 175:        11 1010 1000 */ 10,   936, 14,  4,  0,  0 },
  1181.     { /* 176:        11 1010 1001 */ 10,   937,  4, 14,  0,  0 },
  1182.     { /* 177:        11 1010 1010 */ 10,   938, 11,  7,  0,  0 },
  1183.     { /* 178:        11 1010 1011 */ 10,   939, 14,  3,  0,  0 },
  1184.     { /* 179:        11 1010 1100 */ 10,   940, 12,  5,  0,  0 },
  1185.     { /* 180:        11 1010 1101 */ 10,   941, 13,  6,  0,  0 },
  1186.     { /* 181:        11 1010 1110 */ 10,   942, 12,  6,  0,  0 },
  1187.     { /* 182:        11 1010 1111 */ 10,   943,  8,  0,  0,  0 },
  1188.     { /* 183:        11 1011 0000 */ 10,   944, 11,  8,  0,  0 },
  1189.     { /* 184:        11 1011 0001 */ 10,   945,  2, 12,  0,  0 },
  1190.     { /* 185:        11 1011 0010 */ 10,   946,  9,  9,  0,  0 },
  1191.     { /* 186:        11 1011 0011 */ 10,   947, 14,  5,  0,  0 },
  1192.     { /* 187:        11 1011 0100 */ 10,   948,  6, 13,  0,  0 },
  1193.     { /* 188:        11 1011 0101 */ 10,   949, 10, 10,  0,  0 },
  1194.     { /* 189:        11 1011 0110 */ 10,   950, 15,  2,  0,  0 },
  1195.     { /* 190:        11 1011 0111 */ 10,   951,  8, 11,  0,  0 },
  1196.     { /* 191:        11 1011 1000 */ 10,   952,  9, 10,  0,  0 },
  1197.     { /* 192:        11 1011 1001 */ 10,   953, 14,  6,  0,  0 },
  1198.     { /* 193:        11 1011 1010 */ 10,   954, 10,  9,  0,  0 },
  1199.     { /* 194:        11 1011 1011 */ 10,   955,  5, 14,  0,  0 },
  1200.     { /* 195:        11 1011 1100 */ 10,   956, 11,  9,  0,  0 },
  1201.     { /* 196:        11 1011 1101 */ 10,   957, 14,  1,  0,  0 },
  1202.     { /* 197:        11 1011 1110 */ 10,   958,  2, 14,  0,  0 },
  1203.     { /* 198:        11 1011 1111 */ 10,   959,  6, 12,  0,  0 },
  1204.     { /* 199:        11 1100 0000 */ 10,   960,  1, 12,  0,  0 },
  1205.     { /* 200:        11 1100 0001 */ 10,   961, 13,  8,  0,  0 },
  1206.     { /* 201:        11 1100 0010 */ 10,   962,  0,  8,  0,  0 },
  1207.     { /* 202:        11 1100 0011 */ 10,   963, 13,  7,  0,  0 },
  1208.     { /* 203:        11 1100 0100 */ 10,   964,  7, 12,  0,  0 },
  1209.     { /* 204:        11 1100 0101 */ 10,   965, 12,  7,  0,  0 },
  1210.     { /* 205:        11 1100 0110 */ 10,   966,  7, 13,  0,  0 },
  1211.     { /* 206:        11 1100 0111 */ 10,   967, 15,  3,  0,  0 },
  1212.     { /* 207:        11 1100 1000 */ 10,   968, 12,  1,  0,  0 },
  1213.     { /* 208:        11 1100 1001 */ 10,   969,  6, 14,  0,  0 },
  1214.     { /* 209:        11 1100 1010 */ 10,   970,  2, 15,  0,  0 },
  1215.     { /* 210:        11 1100 1011 */ 10,   971, 15,  5,  0,  0 },
  1216.     { /* 211:        11 1100 1100 */ 10,   972, 15,  4,  0,  0 },
  1217.     { /* 212:        11 1100 1101 */ 10,   973,  1, 14,  0,  0 },
  1218.     { /* 213:        11 1100 1110 */ 10,   974,  9, 11,  0,  0 },
  1219.     { /* 214:        11 1100 1111 */ 10,   975,  4, 15,  0,  0 },
  1220.     { /* 215:        11 1101 0000 */ 10,   976, 14,  7,  0,  0 },
  1221.     { /* 216:        11 1101 0001 */ 10,   977,  8, 13,  0,  0 },
  1222.     { /* 217:        11 1101 0010 */ 10,   978, 13,  9,  0,  0 },
  1223.     { /* 218:        11 1101 0011 */ 10,   979,  8, 12,  0,  0 },
  1224.     { /* 219:        11 1101 0100 */ 10,   980,  5, 15,  0,  0 },
  1225.     { /* 220:        11 1101 0101 */ 10,   981,  3, 15,  0,  0 },
  1226.     { /* 221:        11 1101 0110 */ 10,   982, 10, 11,  0,  0 },
  1227.     { /* 222:        11 1101 0111 */ 10,   983, 11, 10,  0,  0 },
  1228.     { /* 223:        11 1101 1000 */ 10,   984, 12,  8,  0,  0 },
  1229.     { /* 224:        11 1101 1001 */ 10,   985, 15,  6,  0,  0 },
  1230.     { /* 225:        11 1101 1010 */ 10,   986, 15,  7,  0,  0 },
  1231.     { /* 226:        11 1101 1011 */ 10,   987,  8, 14,  0,  0 },
  1232.     { /* 227:        11 1101 1100 */ 10,   988, 15,  1,  0,  0 },
  1233.     { /* 228:        11 1101 1101 */ 10,   989,  7, 14,  0,  0 },
  1234.     { /* 229:        11 1101 1110 */ 10,   990,  9,  0,  0,  0 },
  1235.     { /* 230:        11 1101 1111 */ 10,   991,  0,  9,  0,  0 },
  1236.     { /* 231:        11 1110 0000 */ 10,   992,  9, 13,  0,  0 },
  1237.     { /* 232:        11 1110 0001 */ 10,   993,  9, 12,  0,  0 },
  1238.     { /* 233:        11 1110 0010 */ 10,   994, 12,  9,  0,  0 },
  1239.     { /* 234:        11 1110 0011 */ 10,   995, 14,  8,  0,  0 },
  1240.     { /* 235:        11 1110 0100 */ 10,   996, 10, 13,  0,  0 },
  1241.     { /* 236:        11 1110 0101 */ 10,   997, 14,  9,  0,  0 },
  1242.     { /* 237:        11 1110 0110 */ 10,   998, 12, 10,  0,  0 },
  1243.     { /* 238:        11 1110 0111 */ 10,   999,  6, 15,  0,  0 },
  1244.     { /* 239:        11 1110 1000 */ 10,  1000,  7, 15,  0,  0 },
  1245.     { /* 240:       111 1101 0010 */ 11,  2002,  9, 14,  0,  0 },
  1246.     { /* 241:       111 1101 0011 */ 11,  2003, 15,  8,  0,  0 },
  1247.     { /* 242:       111 1101 0100 */ 11,  2004, 11, 11,  0,  0 },
  1248.     { /* 243:       111 1101 0101 */ 11,  2005, 11, 14,  0,  0 },
  1249.     { /* 244:       111 1101 0110 */ 11,  2006,  1, 15,  0,  0 },
  1250.     { /* 245:       111 1101 0111 */ 11,  2007, 10, 12,  0,  0 },
  1251.     { /* 246:       111 1101 1000 */ 11,  2008, 10, 14,  0,  0 },
  1252.     { /* 247:       111 1101 1001 */ 11,  2009, 13, 11,  0,  0 },
  1253.     { /* 248:       111 1101 1010 */ 11,  2010, 13, 10,  0,  0 },
  1254.     { /* 249:       111 1101 1011 */ 11,  2011, 11, 13,  0,  0 },
  1255.     { /* 250:       111 1101 1100 */ 11,  2012, 11, 12,  0,  0 },
  1256.     { /* 251:       111 1101 1101 */ 11,  2013,  8, 15,  0,  0 },
  1257.     { /* 252:       111 1101 1110 */ 11,  2014, 14, 11,  0,  0 },
  1258.     { /* 253:       111 1101 1111 */ 11,  2015, 13, 12,  0,  0 },
  1259.     { /* 254:       111 1110 0000 */ 11,  2016, 12, 13,  0,  0 },
  1260.     { /* 255:       111 1110 0001 */ 11,  2017, 15,  9,  0,  0 },
  1261.     { /* 256:       111 1110 0010 */ 11,  2018, 14, 10,  0,  0 },
  1262.     { /* 257:       111 1110 0011 */ 11,  2019, 10,  0,  0,  0 },
  1263.     { /* 258:       111 1110 0100 */ 11,  2020, 12, 11,  0,  0 },
  1264.     { /* 259:       111 1110 0101 */ 11,  2021,  9, 15,  0,  0 },
  1265.     { /* 260:       111 1110 0110 */ 11,  2022,  0, 10,  0,  0 },
  1266.     { /* 261:       111 1110 0111 */ 11,  2023, 12, 12,  0,  0 },
  1267.     { /* 262:       111 1110 1000 */ 11,  2024, 11,  0,  0,  0 },
  1268.     { /* 263:       111 1110 1001 */ 11,  2025, 12, 14,  0,  0 },
  1269.     { /* 264:       111 1110 1010 */ 11,  2026, 10, 15,  0,  0 },
  1270.     { /* 265:       111 1110 1011 */ 11,  2027, 13, 13,  0,  0 },
  1271.     { /* 266:       111 1110 1100 */ 11,  2028,  0, 13,  0,  0 },
  1272.     { /* 267:       111 1110 1101 */ 11,  2029, 14, 12,  0,  0 },
  1273.     { /* 268:       111 1110 1110 */ 11,  2030, 15, 10,  0,  0 },
  1274.     { /* 269:       111 1110 1111 */ 11,  2031, 15, 11,  0,  0 },
  1275.     { /* 270:       111 1111 0000 */ 11,  2032, 11, 15,  0,  0 },
  1276.     { /* 271:       111 1111 0001 */ 11,  2033, 14, 13,  0,  0 },
  1277.     { /* 272:       111 1111 0010 */ 11,  2034, 13,  0,  0,  0 },
  1278.     { /* 273:       111 1111 0011 */ 11,  2035,  0, 11,  0,  0 },
  1279.     { /* 274:       111 1111 0100 */ 11,  2036, 13, 14,  0,  0 },
  1280.     { /* 275:       111 1111 0101 */ 11,  2037, 15, 12,  0,  0 },
  1281.     { /* 276:       111 1111 0110 */ 11,  2038, 15, 13,  0,  0 },
  1282.     { /* 277:       111 1111 0111 */ 11,  2039, 12, 15,  0,  0 },
  1283.     { /* 278:       111 1111 1000 */ 11,  2040, 14,  0,  0,  0 },
  1284.     { /* 279:       111 1111 1001 */ 11,  2041, 14, 14,  0,  0 },
  1285.     { /* 280:       111 1111 1010 */ 11,  2042, 13, 15,  0,  0 },
  1286.     { /* 281:       111 1111 1011 */ 11,  2043, 12,  0,  0,  0 },
  1287.     { /* 282:       111 1111 1100 */ 11,  2044, 14, 15,  0,  0 },
  1288.     { /* 283:      1111 1111 1010 */ 12,  4090,  0, 14,  0,  0 },
  1289.     { /* 284:      1111 1111 1011 */ 12,  4091,  0, 12,  0,  0 },
  1290.     { /* 285:      1111 1111 1100 */ 12,  4092, 15, 14,  0,  0 },
  1291.     { /* 286:      1111 1111 1101 */ 12,  4093, 15,  0,  0,  0 },
  1292.     { /* 287:      1111 1111 1110 */ 12,  4094,  0, 15,  0,  0 },
  1293.     { /* 288:      1111 1111 1111 */ 12,  4095, 15, 15,  0,  0 }
  1294. };
  1295. Huffscl bookscl[] = {
  1296.       /* idx                 codeword   len   codew  idx */
  1297.     { /*   0:                       0 */  1,      0,  60 },
  1298.     { /*   1:                     100 */  3,      4,  59 },
  1299.     { /*   2:                    1010 */  4,     10,  61 },
  1300.     { /*   3:                    1011 */  4,     11,  58 },
  1301.     { /*   4:                    1100 */  4,     12,  62 },
  1302.     { /*   5:                  1 1010 */  5,     26,  57 },
  1303.     { /*   6:                  1 1011 */  5,     27,  63 },
  1304.     { /*   7:                 11 1000 */  6,     56,  56 },
  1305.     { /*   8:                 11 1001 */  6,     57,  64 },
  1306.     { /*   9:                 11 1010 */  6,     58,  55 },
  1307.     { /*  10:                 11 1011 */  6,     59,  65 },
  1308.     { /*  11:                111 1000 */  7,    120,  66 },
  1309.     { /*  12:                111 1001 */  7,    121,  54 },
  1310.     { /*  13:                111 1010 */  7,    122,  67 },
  1311.     { /*  14:               1111 0110 */  8,    246,  53 },
  1312.     { /*  15:               1111 0111 */  8,    247,  68 },
  1313.     { /*  16:               1111 1000 */  8,    248,  52 },
  1314.     { /*  17:               1111 1001 */  8,    249,  69 },
  1315.     { /*  18:               1111 1010 */  8,    250,  51 },
  1316.     { /*  19:             1 1111 0110 */  9,    502,  70 },
  1317.     { /*  20:             1 1111 0111 */  9,    503,  50 },
  1318.     { /*  21:             1 1111 1000 */  9,    504,  49 },
  1319.     { /*  22:             1 1111 1001 */  9,    505,  71 },
  1320.     { /*  23:            11 1111 0100 */ 10,   1012,  72 },
  1321.     { /*  24:            11 1111 0101 */ 10,   1013,  48 },
  1322.     { /*  25:            11 1111 0110 */ 10,   1014,  73 },
  1323.     { /*  26:            11 1111 0111 */ 10,   1015,  47 },
  1324.     { /*  27:            11 1111 1000 */ 10,   1016,  74 },
  1325.     { /*  28:            11 1111 1001 */ 10,   1017,  46 },
  1326.     { /*  29:           111 1111 0100 */ 11,   2036,  76 },
  1327.     { /*  30:           111 1111 0101 */ 11,   2037,  75 },
  1328.     { /*  31:           111 1111 0110 */ 11,   2038,  77 },
  1329.     { /*  32:           111 1111 0111 */ 11,   2039,  78 },
  1330.     { /*  33:           111 1111 1000 */ 11,   2040,  45 },
  1331.     { /*  34:           111 1111 1001 */ 11,   2041,  43 },
  1332.     { /*  35:          1111 1111 0100 */ 12,   4084,  44 },
  1333.     { /*  36:          1111 1111 0101 */ 12,   4085,  79 },
  1334.     { /*  37:          1111 1111 0110 */ 12,   4086,  42 },
  1335.     { /*  38:          1111 1111 0111 */ 12,   4087,  41 },
  1336.     { /*  39:          1111 1111 1000 */ 12,   4088,  80 },
  1337.     { /*  40:          1111 1111 1001 */ 12,   4089,  40 },
  1338.     { /*  41:        1 1111 1111 0100 */ 13,   8180,  81 },
  1339.     { /*  42:        1 1111 1111 0101 */ 13,   8181,  39 },
  1340.     { /*  43:        1 1111 1111 0110 */ 13,   8182,  82 },
  1341.     { /*  44:        1 1111 1111 0111 */ 13,   8183,  38 },
  1342.     { /*  45:        1 1111 1111 1000 */ 13,   8184,  83 },
  1343.     { /*  46:       11 1111 1111 0010 */ 14,  16370,  37 },
  1344.     { /*  47:       11 1111 1111 0011 */ 14,  16371,  35 },
  1345.     { /*  48:       11 1111 1111 0100 */ 14,  16372,  85 },
  1346.     { /*  49:       11 1111 1111 0101 */ 14,  16373,  33 },
  1347.     { /*  50:       11 1111 1111 0110 */ 14,  16374,  36 },
  1348.     { /*  51:       11 1111 1111 0111 */ 14,  16375,  34 },
  1349.     { /*  52:       11 1111 1111 1000 */ 14,  16376,  84 },
  1350.     { /*  53:       11 1111 1111 1001 */ 14,  16377,  32 },
  1351.     { /*  54:      111 1111 1111 0100 */ 15,  32756,  87 },
  1352.     { /*  55:      111 1111 1111 0101 */ 15,  32757,  89 },
  1353.     { /*  56:      111 1111 1111 0110 */ 15,  32758,  30 },
  1354.     { /*  57:      111 1111 1111 0111 */ 15,  32759,  31 },
  1355.     { /*  58:     1111 1111 1111 0000 */ 16,  65520,  86 },
  1356.     { /*  59:     1111 1111 1111 0001 */ 16,  65521,  29 },
  1357.     { /*  60:     1111 1111 1111 0010 */ 16,  65522,  26 },
  1358.     { /*  61:     1111 1111 1111 0011 */ 16,  65523,  27 },
  1359.     { /*  62:     1111 1111 1111 0100 */ 16,  65524,  28 },
  1360.     { /*  63:     1111 1111 1111 0101 */ 16,  65525,  24 },
  1361.     { /*  64:     1111 1111 1111 0110 */ 16,  65526,  88 },
  1362.     { /*  65:   1 1111 1111 1110 1110 */ 17, 131054,  25 },
  1363.     { /*  66:   1 1111 1111 1110 1111 */ 17, 131055,  22 },
  1364.     { /*  67:   1 1111 1111 1111 0000 */ 17, 131056,  23 },
  1365.     { /*  68:  11 1111 1111 1110 0010 */ 18, 262114,  90 },
  1366.     { /*  69:  11 1111 1111 1110 0011 */ 18, 262115,  21 },
  1367.     { /*  70:  11 1111 1111 1110 0100 */ 18, 262116,  19 },
  1368.     { /*  71:  11 1111 1111 1110 0101 */ 18, 262117,   3 },
  1369.     { /*  72:  11 1111 1111 1110 0110 */ 18, 262118,   1 },
  1370.     { /*  73:  11 1111 1111 1110 0111 */ 18, 262119,   2 },
  1371.     { /*  74:  11 1111 1111 1110 1000 */ 18, 262120,   0 },
  1372.     { /*  75: 111 1111 1111 1101 0010 */ 19, 524242,  98 },
  1373.     { /*  76: 111 1111 1111 1101 0011 */ 19, 524243,  99 },
  1374.     { /*  77: 111 1111 1111 1101 0100 */ 19, 524244, 100 },
  1375.     { /*  78: 111 1111 1111 1101 0101 */ 19, 524245, 101 },
  1376.     { /*  79: 111 1111 1111 1101 0110 */ 19, 524246, 102 },
  1377.     { /*  80: 111 1111 1111 1101 0111 */ 19, 524247, 117 },
  1378.     { /*  81: 111 1111 1111 1101 1000 */ 19, 524248,  97 },
  1379.     { /*  82: 111 1111 1111 1101 1001 */ 19, 524249,  91 },
  1380.     { /*  83: 111 1111 1111 1101 1010 */ 19, 524250,  92 },
  1381.     { /*  84: 111 1111 1111 1101 1011 */ 19, 524251,  93 },
  1382.     { /*  85: 111 1111 1111 1101 1100 */ 19, 524252,  94 },
  1383.     { /*  86: 111 1111 1111 1101 1101 */ 19, 524253,  95 },
  1384.     { /*  87: 111 1111 1111 1101 1110 */ 19, 524254,  96 },
  1385.     { /*  88: 111 1111 1111 1101 1111 */ 19, 524255, 104 },
  1386.     { /*  89: 111 1111 1111 1110 0000 */ 19, 524256, 111 },
  1387.     { /*  90: 111 1111 1111 1110 0001 */ 19, 524257, 112 },
  1388.     { /*  91: 111 1111 1111 1110 0010 */ 19, 524258, 113 },
  1389.     { /*  92: 111 1111 1111 1110 0011 */ 19, 524259, 114 },
  1390.     { /*  93: 111 1111 1111 1110 0100 */ 19, 524260, 115 },
  1391.     { /*  94: 111 1111 1111 1110 0101 */ 19, 524261, 116 },
  1392.     { /*  95: 111 1111 1111 1110 0110 */ 19, 524262, 110 },
  1393.     { /*  96: 111 1111 1111 1110 0111 */ 19, 524263, 105 },
  1394.     { /*  97: 111 1111 1111 1110 1000 */ 19, 524264, 106 },
  1395.     { /*  98: 111 1111 1111 1110 1001 */ 19, 524265, 107 },
  1396.     { /*  99: 111 1111 1111 1110 1010 */ 19, 524266, 108 },
  1397.     { /* 100: 111 1111 1111 1110 1011 */ 19, 524267, 109 },
  1398.     { /* 101: 111 1111 1111 1110 1100 */ 19, 524268, 118 },
  1399.     { /* 102: 111 1111 1111 1110 1101 */ 19, 524269,   6 },
  1400.     { /* 103: 111 1111 1111 1110 1110 */ 19, 524270,   8 },
  1401.     { /* 104: 111 1111 1111 1110 1111 */ 19, 524271,   9 },
  1402.     { /* 105: 111 1111 1111 1111 0000 */ 19, 524272,  10 },
  1403.     { /* 106: 111 1111 1111 1111 0001 */ 19, 524273,   5 },
  1404.     { /* 107: 111 1111 1111 1111 0010 */ 19, 524274, 103 },
  1405.     { /* 108: 111 1111 1111 1111 0011 */ 19, 524275, 120 },
  1406.     { /* 109: 111 1111 1111 1111 0100 */ 19, 524276, 119 },
  1407.     { /* 110: 111 1111 1111 1111 0101 */ 19, 524277,   4 },
  1408.     { /* 111: 111 1111 1111 1111 0110 */ 19, 524278,   7 },
  1409.     { /* 112: 111 1111 1111 1111 0111 */ 19, 524279,  15 },
  1410.     { /* 113: 111 1111 1111 1111 1000 */ 19, 524280,  16 },
  1411.     { /* 114: 111 1111 1111 1111 1001 */ 19, 524281,  18 },
  1412.     { /* 115: 111 1111 1111 1111 1010 */ 19, 524282,  20 },
  1413.     { /* 116: 111 1111 1111 1111 1011 */ 19, 524283,  17 },
  1414.     { /* 117: 111 1111 1111 1111 1100 */ 19, 524284,  11 },
  1415.     { /* 118: 111 1111 1111 1111 1101 */ 19, 524285,  12 },
  1416.     { /* 119: 111 1111 1111 1111 1110 */ 19, 524286,  14 },
  1417.     { /* 120: 111 1111 1111 1111 1111 */ 19, 524287,  13 }
  1418. };