[comp.os.minix] COMIC - here are the missing .h files

jms@cs.vu.nl (Jan Mark Wams) (07/06/90)

ast@cs.vu.nl (Andy Tanenbaum) writes:

\Since we are on the subject of compression, here is another compression
\program written by one of my students, Jan Mark Wams.  I haven't had time
\to look at it, but he's a bright fellow.
---------------------------^^^^^^^^^^^^^

Bright thing forgetting the .h files ;-) Here they are in random order....

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
: --------------------------- cut here --------------------------
PATH=/bin:/usr/bin:/usr/ucb
echo Extracting 'bits.h'
sed 's/^X//' > 'bits.h' << '+ END-OF-FILE ''bits.h'
X/*
X** Part of the comic package. (p) Jan-Mark Wams 	(email: jms@cs.vu.nl)
X**
X** Bits.h: Bit operations header file.
X*/
X
X/* Needs "comic.h" for _PROTOTYPE() */
X
Xvoid _PROTOTYPE( putnbit, (long __code, int __n)	);
Xint  _PROTOTYPE( getnbit, (int __n)			);
Xvoid _PROTOTYPE( putbit, (int __bit)			);
Xint  _PROTOTYPE( getbit, ()				);
Xvoid _PROTOTYPE( flush_bits, ()				);
Xvoid _PROTOTYPE( init_bits, ()				);
+ END-OF-FILE bits.h
chmod 'u=rw,g=r,o=r' 'bits.h'
set `wc -c 'bits.h'`
count=$1
case $count in
404)	:;;
*)	echo 'Bad character count in ''bits.h' >&2
		echo 'Count should be 404' >&2
esac
echo Extracting 'buffer.h'
sed 's/^X//' > 'buffer.h' << '+ END-OF-FILE ''buffer.h'
X/*
X** Part of the comic package. (p) Jan-Mark Wams 	(email: jms@cs.vu.nl)
X**
X** Buffer.h: functions for circular buffer menagement.
X*/
X
X/*
X** Global variables. Declared in `comic.c'
X*/
Xextern char *Buff;		/* The circular Buffer. */
Xextern char *Bend;		/* Pointer to the last char in Buff. */
Xextern char *Blow_sent;		/* Pointer to the char befor Buff. */
Xextern char *Bp;		/* Pointer to unproccessed char. */
Xextern char *Binputend;		/* End of read ahead input. */
Xextern int  Bsize;		/* Size of the used part of the buffer. */
X#ifdef LINT
Xextern char *memset();		/* To shut up lint, a bit ;-( */
X#endif
X
X#define	Bsucc(p)                        /* pointer after p */\
X	((p) == Bend ? Buff : (p) + 1)
X
X#define	Bpred(p)                        /* pointer before p */\
X	((p) == Buff ? Bend : (p) - 1)
X
X#define Badd(p, n)			/* Add n to p, circular. */\
X	((p) + (n) - ((p) + (n) > Bend ? Bsize : 0))
X
X#define Bsub(p, n)			/* Substract n from p, circular. */\
X	((p) - (n) + ((p) < Buff + (n) ? Bsize : 0))
X
X#define Bdelta(p, q)			/* Return p - q circular. */\
X	((p) - (q) + ((p) < (q) ? Bsize : 0))
X
X#define Blookupstart()			/* End of the lookup pair. */\
X	Bsub (Bp, NON_INPUT_SIZE)
X
X#define Bclear()			/* Clear the buffer. */\
X	(void)memset (Buff, '\0', Bsize)
+ END-OF-FILE buffer.h
chmod 'u=rw,g=r,o=r' 'buffer.h'
set `wc -c 'buffer.h'`
count=$1
case $count in
1255)	:;;
*)	echo 'Bad character count in ''buffer.h' >&2
		echo 'Count should be 1255' >&2
esac
echo Extracting 'comic.h'
sed 's/^X//' > 'comic.h' << '+ END-OF-FILE ''comic.h'
X/*
X** Part of the comic package. (p) Jan-Mark Wams 	(email: jms@cs.vu.nl)
X**
X** Comic.h: General include file for comic source files.
X*/
X
X#ifndef COMIC_H
X#define COMIC_H
X
X#ifdef DOS
X# include <fcntl.h>     /* Use O_BINARY by `setmode ()' in SM-DOS. */
X# include <io.h>	/* For `setmode()' to. */
X#endif
X#if __STDC__ && ! GCC
X# include <stdlib.h>
X#endif
X#include <assert.h>
X#include <stdio.h>
X
X/*
X** Compress constands.
X*/
X#define HUFFMAN_BITS	8	/* Huffman codes are 8 bits. */
X#define LENGTH_BITS	8	/* # of bits in length info. */
X#define OFFSET_BITS	13	/* # of bits in offset info. */
X#define PAIR_MAX	1	/* There are two pairs. */
X
X/*
X** If above are chainged, chainge these to!
X*/
X#define HUFFMAN_SIZE	256	/* Max for 8 bits. */
X#define LENGTH_SIZE	256	/* Max for 8 bits. */
X#define OFFSET_SIZE	8192	/* Max for 13 bits. */
X#define OFFSET_MIN	1	/* Minimum offset. */
X#define LENGTH_MIN	2	/* Minimum length. */
X#define OFFSET_MAX	(OFFSET_SIZE + OFFSET_MIN - 1)
X#define LENGTH_MAX	(LENGTH_SIZE + LENGTH_MIN - 1)
X#define INPUT_SIZE	(LENGTH_SIZE + PAIR_MAX + LENGTH_MIN)
X#define	BUFF_SIZE	(INPUT_SIZE + OFFSET_SIZE + OFFSET_MIN)
X#define BUFF_MAX	(BUFF_SIZE - 1)
X#define NON_INPUT_SIZE	(BUFF_SIZE - INPUT_SIZE)
X#define LOW_OFFSET_BITS	(OFFSET_BITS - HUFFMAN_BITS)
X
X
X/*
X** Pairs are build of a start pointer and a length pointer.
X*/
Xtypedef struct pair {			/* Part descriptor type. */
X	char * start;			/* Pointer in the circular Buffer. */
X	int length;			/* Length of part. */
X} pair_t, *pair_p;
X
X/*
X** Global variables. Declared in `comic.c'
X*/
Xextern char *pname;		/* Name of the program. */
Xextern pair_p p0, p1;		/* Short hands. */
Xextern long Nin;		/* Total # of bytes read. */
Xextern long Nout;
Xextern int  v_flag;		/* Verbose flag == 1 if -v was given. */
X
X/*
X** All global function prototypes.
X*/
X#ifndef _PROTOTYPE
X#  define _PROTOTYPE(func, args)	func ()
X#endif /* _PROTOTYPE */
X
Xvoid	_PROTOTYPE( putnbit, (long __code, int __n)		);
Xint	_PROTOTYPE( getinput, ()				);
Xvoid 	_PROTOTYPE( gettoken, (int __p0used)			);
Xvoid 	_PROTOTYPE( encode, ()					);
Xvoid 	_PROTOTYPE( decode, ()					);
Xchar *	_PROTOTYPE( memrchr, (char *__s, char *__e, char __c)	);
X
X#endif /* COMIC_H */
+ END-OF-FILE comic.h
chmod 'u=rw,g=r,o=r' 'comic.h'
set `wc -c 'comic.h'`
count=$1
case $count in
2177)	:;;
*)	echo 'Bad character count in ''comic.h' >&2
		echo 'Count should be 2177' >&2
esac
echo Extracting 'header.h'
sed 's/^X//' > 'header.h' << '+ END-OF-FILE ''header.h'
X/*
X** Part of the comic package. (p) Jan-Mark Wams 	(email: jms@cs.vu.nl)
X**
X** Header.h: Defines for the comic header bytes and file suffix.
X**	The first byte is a normal magic byte.
X**	The second byte is eighter 0xAX
X**	The X nibble (1/2byte) contains extra info.
X*/
X
X/*
X** First byte is plane magic.
X*/
X#define MAGIC1		(char)0x69	/* Magic number. */
X
X/*
X** Second bytes is half magic half flag.
X*/
X#define MAGIC2		(char)0x60	/* High part of 2d byte. */
X
X#define STATIC_BIT	(char)0x8	/* Use buildin Huffman tables. */
X#define DYNAMIC_BIT	(char)0x4	/* H. tables precead data. */
X#define SUFFIX_BIT	(char)0x2	/* Next three bytes are old suffix. */
X#define EXTEND_BIT	(char)0x1	/* More header data. */
X
X/*
X** Third byte indicates extra i/o-processing. EXTEND_BIT has to be set.
X*/
X#define EXTRA_EXTEND	(char)0x0	/* Extra extension bytes. */
X#define TRANSLATE	(char)0x1	/* Input was xlated. */
X
X/*
X** Note to assist dos, the first three chars after the header can be
X** the original suffix. The suffix bit indicates this.
X*/
X
X
X/*
X** Prototypes.
X*/
Xvoid _PROTOTYPE( put_magic, ()			);
Xint  _PROTOTYPE( magic_ok, ()			);
+ END-OF-FILE header.h
chmod 'u=rw,g=r,o=r' 'header.h'
set `wc -c 'header.h'`
count=$1
case $count in
1117)	:;;
*)	echo 'Bad character count in ''header.h' >&2
		echo 'Count should be 1117' >&2
esac
echo Extracting 'huffman.h'
sed 's/^X//' > 'huffman.h' << '+ END-OF-FILE ''huffman.h'
X/*
X** Part of the comic package. (p) Jan-Mark Wams 	(email: jms@cs.vu.nl)
X**
X** Huffman.h: types and routines for the huffman tables.
X*/
X
X/* Needs "comic.h" for _PROTOTYPE() */
X
X/*
X** Tree and code types.
X*/
Xtypedef long bitstr_t;
X
Xtypedef struct tree_s {
X	int _0, _1;
X} tree_t [];
X
Xtypedef struct ctab_s {
X	bitstr_t code;
X	char	 length; /* Hast to hold upto sizeof (bitstr_t) * 8 bits. */
X} ctab_t [];
X
X#define Hchar 0
X#define Hoff 1 
X#define Hlen 2
X
Xint	_PROTOTYPE( Hdecode, (int __treei)		);
Xvoid	_PROTOTYPE( Hencode, (int __ctabi, int __i)	);
Xvoid	_PROTOTYPE( Hinit,  ()                       	);
+ END-OF-FILE huffman.h
chmod 'u=rw,g=r,o=r' 'huffman.h'
set `wc -c 'huffman.h'`
count=$1
case $count in
601)	:;;
*)	echo 'Bad character count in ''huffman.h' >&2
		echo 'Count should be 601' >&2
esac
echo Extracting 'tables.h'
sed 's/^X//' > 'tables.h' << '+ END-OF-FILE ''tables.h'
X/*
X** Part of the comic package.
X**
X** Tables.h: Auto generated by comicgen.
X*/
X
Xctab_t ctab_char = {		/* {code, length} pairs */
X	{0x000054L,  9}, {0x0003B6L, 10}, {0x00067AL, 11}, {0x000242L, 10}, 
X	{0x0033DCL, 14}, {0x000D99L, 13}, {0x000D98L, 13}, {0x00076BL, 11}, 
X	{0x000CF6L, 12}, {0x000017L,  5}, {0x00002CL,  6}, {0x001977L, 14}, 
X	{0x0CF749L, 20}, {0x0001B6L, 10}, {0x0000AAL, 10}, {0x00013BL,  9}, 
X	{0x0006DEL, 12}, {0x0CF748L, 20}, {0x0006CFL, 12}, {0x001976L, 14}, 
X	{0x001975L, 14}, {0x000D97L, 13}, {0x00076AL, 11}, {0x000B4DL, 12}, 
X	{0x000D96L, 13}, {0x000B4CL, 12}, {0x001974L, 14}, {0x001973L, 14}, 
X	{0x000B4BL, 12}, {0x000B4AL, 12}, {0x000B49L, 12}, {0x001972L, 14}, 
X	{0x000008L,  5}, {0x00004FL,  7}, {0x00001CL,  6}, {0x000120L,  9}, 
X	{0x0003B4L, 10}, {0x000031L,  8}, {0x000075L,  7}, {0x000028L,  6}, 
X	{0x00001AL,  5}, {0x000010L,  5}, {0x00001CL,  7}, {0x000030L,  8}, 
X	{0x000003L,  6}, {0x000026L,  6}, {0x000031L,  6}, {0x00003AL,  7}, 
X	{0x000015L,  6}, {0x000002L,  6}, {0x00000BL,  6}, {0x000001L,  7}, 
X	{0x00003EL,  7}, {0x000054L,  7}, {0x000074L,  7}, {0x000061L,  7}, 
X	{0x000055L,  7}, {0x000013L,  8}, {0x00001DL,  7}, {0x00000FL,  6}, 
X	{0x000077L,  7}, {0x000029L,  7}, {0x000056L,  7}, {0x000038L,  9}, 
X	{0x000012L,  8}, {0x000014L,  7}, {0x00002BL,  8}, {0x00002FL,  7}, 
X	{0x00006EL,  7}, {0x000013L,  7}, {0x000066L,  7}, {0x000051L,  8}, 
X	{0x0000B5L,  8}, {0x000045L,  7}, {0x00019FL,  9}, {0x0000A1L,  9}, 
X	{0x000037L,  7}, {0x00006FL,  7}, {0x000057L,  7}, {0x00003DL,  7}, 
X	{0x000060L,  7}, {0x000156L, 11}, {0x000044L,  7}, {0x00000FL,  7}, 
X	{0x00002EL,  7}, {0x00005BL,  7}, {0x0000C9L,  9}, {0x00009CL,  8}, 
X	{0x0000DAL,  9}, {0x0000C8L,  9}, {0x00013AL,  9}, {0x00003CL,  7}, 
X	{0x000039L,  9}, {0x000019L,  7}, {0x00033CL, 10}, {0x000036L,  6}, 
X	{0x000D95L, 13}, {0x00000DL,  6}, {0x000032L,  6}, {0x00001CL,  5}, 
X	{0x000008L,  6}, {0x00001FL,  5}, {0x000016L,  6}, {0x000008L,  7}, 
X	{0x000033L,  7}, {0x000006L,  6}, {0x0000CEL,  8}, {0x00003BL,  7}, 
X	{0x000025L,  6}, {0x000023L,  6}, {0x000005L,  6}, {0x000001L,  6}, 
X	{0x000018L,  6}, {0x000168L,  9}, {0x00001AL,  6}, {0x000009L,  5}, 
X	{0x00001EL,  5}, {0x000029L,  6}, {0x00003FL,  7}, {0x000012L,  7}, 
X	{0x00001DL,  8}, {0x000000L,  7}, {0x0000ECL,  8}, {0x000091L,  8}, 
X	{0x0000A0L,  9}, {0x000049L,  7}, {0x0005A7L, 11}, {0x0CF747L, 20}, 
X	{0x000B48L, 12}, {0x0CF746L, 20}, {0x001971L, 14}, {0x0CF745L, 20}, 
X	{0x001970L, 14}, {0x0CF744L, 20}, {0x00196FL, 14}, {0x0CF743L, 20}, 
X	{0x000D94L, 13}, {0x0CF742L, 20}, {0x0CF741L, 20}, {0x0CF740L, 20}, 
X	{0x067BBFL, 19}, {0x00196EL, 14}, {0x067BBEL, 19}, {0x067BBDL, 19}, 
X	{0x00196DL, 14}, {0x067BBCL, 19}, {0x067BBBL, 19}, {0x067BBAL, 19}, 
X	{0x000D93L, 13}, {0x067BB9L, 19}, {0x00196CL, 14}, {0x067BB8L, 19}, 
X	{0x067BB7L, 19}, {0x00196BL, 14}, {0x000D92L, 13}, {0x00196AL, 14}, 
X	{0x001969L, 14}, {0x001968L, 14}, {0x001967L, 14}, {0x001966L, 14}, 
X	{0x001965L, 14}, {0x000D91L, 13}, {0x000D90L, 13}, {0x000D8FL, 13}, 
X	{0x0003B7L, 10}, {0x000D8EL, 13}, {0x000D8DL, 13}, {0x001964L, 14}, 
X	{0x001963L, 14}, {0x000D8CL, 13}, {0x001962L, 14}, {0x000D8BL, 13}, 
X	{0x001961L, 14}, {0x000D8AL, 13}, {0x001960L, 14}, {0x00195FL, 14}, 
X	{0x00090FL, 12}, {0x000D89L, 13}, {0x00195EL, 14}, {0x000D88L, 13}, 
X	{0x00195DL, 14}, {0x00090EL, 12}, {0x00195CL, 14}, {0x000D87L, 13}, 
X	{0x00195BL, 14}, {0x00195AL, 14}, {0x001959L, 14}, {0x000D86L, 13}, 
X	{0x067BB6L, 19}, {0x000D85L, 13}, {0x067BB5L, 19}, {0x001958L, 14}, 
X	{0x001957L, 14}, {0x00036EL, 11}, {0x000D84L, 13}, {0x001956L, 14}, 
X	{0x001955L, 14}, {0x000D83L, 13}, {0x001954L, 14}, {0x001953L, 14}, 
X	{0x067BB4L, 19}, {0x001952L, 14}, {0x001951L, 14}, {0x001950L, 14}, 
X	{0x00194FL, 14}, {0x00194EL, 14}, {0x067BB3L, 19}, {0x00194DL, 14}, 
X	{0x067BB2L, 19}, {0x00194CL, 14}, {0x067BB1L, 19}, {0x000D82L, 13}, 
X	{0x067BB0L, 19}, {0x00194BL, 14}, {0x067BAFL, 19}, {0x00194AL, 14}, 
X	{0x067BAEL, 19}, {0x001949L, 14}, {0x067BADL, 19}, {0x001948L, 14}, 
X	{0x067BACL, 19}, {0x001947L, 14}, {0x067BABL, 19}, {0x001946L, 14}, 
X	{0x067BAAL, 19}, {0x001945L, 14}, {0x001944L, 14}, {0x001943L, 14}, 
X	{0x001942L, 14}, {0x001941L, 14}, {0x067BA9L, 19}, {0x001940L, 14}, 
X	{0x067BA8L, 19}, {0x000D81L, 13}, {0x067BA7L, 19}, {0x000D80L, 13}, 
X	{0x067BA6L, 19}, {0x0006CEL, 12}, {0x000ABFL, 14}, {0x000ABEL, 14}, 
X	{0x000ABDL, 14}, {0x00090DL, 12}, {0x000ABCL, 14}, {0x0006CDL, 12}, 
X	{0x067BA5L, 19}, {0x000CBFL, 13}, {0x000ABBL, 14}, {0x000CBEL, 13}, 
X	{0x000ABAL, 14}, {0x000CBDL, 13}, {0x000AB9L, 14}, {0x00090CL, 12}, 
X	{0x000AB8L, 14}, {0x000CBCL, 13}, {0x0019EFL, 13}, {0x0006DFL, 12}
X};
X
Xtree_t tree_char = {		/* {link 0, link 1} pairs. */
X	{17 ,  12}, {129, 127}, {133, 131}, {137, 135}, 
X	{139, 138}, {142, 140}, {145, 143}, {147, 146}, 
X	{151, 149}, {188, 152}, {200, 190}, {208, 206}, 
X	{212, 210}, {216, 214}, {220, 218}, {224, 222}, 
X	{232, 230}, {236, 234}, {256, 244}, {258, 257}, 
X	{260, 259}, {262, 261}, {264, 263}, {266, 265}, 
X	{268, 267}, {270, 269}, {272, 271}, {274, 273}, 
X	{276, 275}, {278, 277}, {280, 279}, {282, 281}, 
X	{284, 283}, {286, 285}, {288, 287}, {290, 289}, 
X	{4  , 291}, {19 ,  11}, {26 ,  20}, {31 ,  27}, 
X	{132, 130}, {141, 134}, {150, 144}, {155, 153}, 
X	{157, 156}, {159, 158}, {167, 160}, {170, 168}, 
X	{174, 172}, {178, 175}, {182, 180}, {185, 184}, 
X	{191, 186}, {195, 192}, {198, 196}, {201, 199}, 
X	{203, 202}, {205, 204}, {209, 207}, {215, 213}, 
X	{219, 217}, {223, 221}, {226, 225}, {228, 227}, 
X	{231, 229}, {239, 238}, {242, 240}, {248, 246}, 
X	{252, 250}, {292, 254}, {6  ,   5}, {24 ,  21}, 
X	{136,  96}, {154, 148}, {162, 161}, {165, 163}, 
X	{169, 166}, {173, 171}, {179, 177}, {187, 183}, 
X	{194, 189}, {211, 197}, {235, 233}, {247, 245}, 
X	{253, 249}, {294, 293}, {296, 295}, {298, 297}, 
X	{300, 299}, {302, 301}, {304, 303}, {306, 305}, 
X	{308, 307}, {310, 309}, {312, 311}, {314, 313}, 
X	{316, 315}, {318, 317}, {320, 319}, {322, 321}, 
X	{324, 323}, {8  , 325}, {25 ,  23}, {29 ,  28}, 
X	{128,  30}, {181, 176}, {251, 241}, {16 , 255}, 
X	{237,  18}, {326, 243}, {328, 327}, {330, 329}, 
X	{332, 331}, {334, 333}, {336, 335}, {338, 337}, 
X	{340, 339}, {342, 341}, {344, 343}, {346, 345}, 
X	{348, 347}, {350, 349}, {352, 351}, {354, 353}, 
X	{356, 355}, {22 ,   7}, {2  , 357}, {358, 126}, 
X	{360, 359}, {362, 361}, {193, 363}, {365, 364}, 
X	{367, 366}, {369, 368}, {371, 370}, {373, 372}, 
X	{375, 374}, {377, 376}, {379, 378}, {81 , 380}, 
X	{1  , 164}, {36 , 381}, {94 , 382}, {384, 383}, 
X	{3  , 385}, {13 , 386}, {388, 387}, {390, 389}, 
X	{392, 391}, {394, 393}, {14 , 395}, {397, 396}, 
X	{398,  74}, {113, 399}, {90 ,  15}, {35 , 400}, 
X	{88 , 401}, {403, 402}, {405, 404}, {89 ,  86}, 
X	{124,  75}, {0  , 406}, {63 ,  92}, {122, 407}, 
X	{106, 408}, {409,  72}, {87 , 410}, {411, 123}, 
X	{413, 412}, {415, 414}, {416,  71}, {43 ,  37}, 
X	{417,  66}, {418, 120}, {64 ,  57}, {419,  60}, 
X	{54 ,  38}, {68 ,  77}, {70 , 420}, {80 ,  55}, 
X	{421,  85}, {62 ,  78}, {53 ,  56}, {422,  33}, 
X	{423, 125}, {82 ,  73}, {52 , 118}, {91 ,  79}, 
X	{47 , 107}, {424,  76}, {425, 104}, {84 ,  67}, 
X	{426,  61}, {42 ,  58}, {427,  93}, {65 , 428}, 
X	{119,  69}, {429,  83}, {103, 430}, {121,  51}, 
X	{432, 431}, {95 , 433}, {98 , 434}, {435,  46}, 
X	{10 , 436}, {438, 437}, {39 , 117}, {45 , 439}, 
X	{440, 108}, {441, 109}, {443, 442}, {34 , 444}, 
X	{114, 445}, {112, 446}, {102, 447}, {448,  48}, 
X	{449,  59}, {450,  97}, {451,  50}, {100, 452}, 
X	{105, 453}, {454, 110}, {49 ,  44}, {455, 111}, 
X	{116, 101}, {99 , 456}, {40 , 457}, {459, 458}, 
X	{460,   9}, {462, 461}, {464, 463}, {41 , 465}, 
X	{467, 466}, {469, 468}, {471, 470}, {32 , 115}, 
X	{473, 472}, {475, 474}, {477, 476}, {479, 478}, 
X	{481, 480}, {483, 482}, {485, 484}, {487, 486}, 
X	{489, 488}, {491, 490}, {493, 492}, {495, 494}, 
X	{497, 496}, {499, 498}, {501, 500}, {503, 502}, 
X	{505, 504}, {507, 506}, {509, 508}
X};
X
Xctab_t ctab_len = {		/* {code, length} pairs */
X	{0x000002L,  3}, {0x000000L,  3}, {0x000003L,  3}, {0x000005L,  3}, 
X	{0x000006L,  3}, {0x000003L,  4}, {0x000009L,  4}, {0x00000FL,  4}, 
X	{0x000005L,  5}, {0x00001CL,  5}, {0x000008L,  6}, {0x000021L,  6}, 
X	{0x00003AL,  6}, {0x000013L,  7}, {0x000041L,  7}, {0x000045L,  7}, 
X	{0x000076L,  7}, {0x000024L,  8}, {0x00008CL,  8}, {0x000088L,  8}, 
X	{0x00008EL,  8}, {0x0000EEL,  8}, {0x00004AL,  9}, {0x000100L,  9}, 
X	{0x000102L,  9}, {0x000101L,  9}, {0x00011EL,  9}, {0x000206L, 10}, 
X	{0x000225L, 10}, {0x000207L, 10}, {0x000235L, 10}, {0x0001DFL,  9}, 
X	{0x000237L, 10}, {0x00047DL, 11}, {0x0003BDL, 10}, {0x000448L, 11}, 
X	{0x000234L, 10}, {0x00044CL, 11}, {0x00012EL, 11}, {0x00047CL, 11}, 
X	{0x00046DL, 11}, {0x000258L, 12}, {0x000779L, 11}, {0x000778L, 11}, 
X	{0x00025EL, 12}, {0x0008D9L, 12}, {0x259D41L, 24}, {0x0004BEL, 13}, 
X	{0x000892L, 12}, {0x0008D8L, 12}, {0x00089FL, 12}, {0x000966L, 14}, 
X	{0x0008FCL, 12}, {0x0004B7L, 13}, {0x0004B6L, 13}, {0x0011FFL, 13}, 
X	{0x00113DL, 13}, {0x0011FEL, 13}, {0x259D40L, 24}, {0x0011FDL, 13}, 
X	{0x0004B5L, 13}, {0x002275L, 14}, {0x0011FCL, 13}, {0x00259CL, 16}, 
X	{0x002274L, 14}, {0x259D3FL, 24}, {0x002273L, 14}, {0x002272L, 14}, 
X	{0x002271L, 14}, {0x002270L, 14}, {0x00226FL, 14}, {0x0004B4L, 13}, 
X	{0x00226EL, 14}, {0x00226DL, 14}, {0x259D3EL, 24}, {0x0044D1L, 15}, 
X	{0x00226CL, 14}, {0x0004B2L, 13}, {0x00113CL, 13}, {0x00113BL, 13}, 
X	{0x0044D0L, 15}, {0x00449FL, 15}, {0x00449EL, 15}, {0x0011FBL, 13}, 
X	{0x259D3DL, 24}, {0x259D3CL, 24}, {0x259D3BL, 24}, {0x259D3AL, 24}, 
X	{0x00226BL, 14}, {0x259D39L, 24}, {0x00449DL, 15}, {0x00449CL, 15}, 
X	{0x00449BL, 15}, {0x00449AL, 15}, {0x259D38L, 24}, {0x00226AL, 14}, 
X	{0x0011FAL, 13}, {0x004499L, 15}, {0x259D37L, 24}, {0x259D36L, 24}, 
X	{0x004498L, 15}, {0x002269L, 14}, {0x259D35L, 24}, {0x259D34L, 24}, 
X	{0x259D33L, 24}, {0x259D32L, 24}, {0x259D31L, 24}, {0x259D30L, 24}, 
X	{0x259D2FL, 24}, {0x259D2EL, 24}, {0x259D2DL, 24}, {0x259D2CL, 24}, 
X	{0x259D2BL, 24}, {0x259D2AL, 24}, {0x259D29L, 24}, {0x0012FFL, 15}, 
X	{0x259D28L, 24}, {0x259D27L, 24}, {0x259D26L, 24}, {0x259D25L, 24}, 
X	{0x259D24L, 24}, {0x259D23L, 24}, {0x259D22L, 24}, {0x259D21L, 24}, 
X	{0x259D20L, 24}, {0x259D1FL, 24}, {0x0012FEL, 15}, {0x259D1EL, 24}, 
X	{0x259D1DL, 24}, {0x259D1CL, 24}, {0x259D1BL, 24}, {0x259D1AL, 24}, 
X	{0x259D19L, 24}, {0x259D18L, 24}, {0x259D17L, 24}, {0x259D16L, 24}, 
X	{0x259D15L, 24}, {0x0012FDL, 15}, {0x259D14L, 24}, {0x259D13L, 24}, 
X	{0x259D12L, 24}, {0x259D11L, 24}, {0x259D10L, 24}, {0x259D0FL, 24}, 
X	{0x259D0EL, 24}, {0x259D0DL, 24}, {0x259D0CL, 24}, {0x259D0BL, 24}, 
X	{0x259D0AL, 24}, {0x259D09L, 24}, {0x259D08L, 24}, {0x259D07L, 24}, 
X	{0x259D06L, 24}, {0x259D05L, 24}, {0x0012FCL, 15}, {0x259D04L, 24}, 
X	{0x259D03L, 24}, {0x259D02L, 24}, {0x259D01L, 24}, {0x259D00L, 24}, 
X	{0x12CEFFL, 23}, {0x12CEFEL, 23}, {0x12CEFDL, 23}, {0x12CEFCL, 23}, 
X	{0x12CEFBL, 23}, {0x12CEFAL, 23}, {0x12CEF9L, 23}, {0x12CEF8L, 23}, 
X	{0x12CEF7L, 23}, {0x12CEF6L, 23}, {0x12CEF5L, 23}, {0x0012CFL, 15}, 
X	{0x12CEF4L, 23}, {0x12CEF3L, 23}, {0x12CEF2L, 23}, {0x12CEF1L, 23}, 
X	{0x12CEF0L, 23}, {0x12CEEFL, 23}, {0x12CEEEL, 23}, {0x12CEEDL, 23}, 
X	{0x12CEECL, 23}, {0x12CEEBL, 23}, {0x12CEEAL, 23}, {0x12CEE9L, 23}, 
X	{0x12CEE8L, 23}, {0x12CEE7L, 23}, {0x12CEE6L, 23}, {0x12CEE5L, 23}, 
X	{0x12CEE4L, 23}, {0x12CEE3L, 23}, {0x12CEE2L, 23}, {0x12CEE1L, 23}, 
X	{0x12CEE0L, 23}, {0x12CEDFL, 23}, {0x12CEDEL, 23}, {0x12CEDDL, 23}, 
X	{0x12CEDCL, 23}, {0x12CEDBL, 23}, {0x12CEDAL, 23}, {0x12CED9L, 23}, 
X	{0x12CED8L, 23}, {0x12CED7L, 23}, {0x12CED6L, 23}, {0x12CED5L, 23}, 
X	{0x12CED4L, 23}, {0x12CED3L, 23}, {0x12CED2L, 23}, {0x12CED1L, 23}, 
X	{0x12CED0L, 23}, {0x12CECFL, 23}, {0x12CECEL, 23}, {0x12CECDL, 23}, 
X	{0x12CECCL, 23}, {0x12CECBL, 23}, {0x12CECAL, 23}, {0x12CEC9L, 23}, 
X	{0x12CEC8L, 23}, {0x12CEC7L, 23}, {0x12CEC6L, 23}, {0x12CEC5L, 23}, 
X	{0x12CEC4L, 23}, {0x12CEC3L, 23}, {0x12CEC2L, 23}, {0x12CEC1L, 23}, 
X	{0x12CEC0L, 23}, {0x12CEBFL, 23}, {0x12CEBEL, 23}, {0x12CEBDL, 23}, 
X	{0x12CEBCL, 23}, {0x12CEBBL, 23}, {0x12CEBAL, 23}, {0x12CEB9L, 23}, 
X	{0x12CEB8L, 23}, {0x12CEB7L, 23}, {0x12CEB6L, 23}, {0x12CEB5L, 23}, 
X	{0x12CEB4L, 23}, {0x12CEB3L, 23}, {0x12CEB2L, 23}, {0x12CEB1L, 23}, 
X	{0x12CEB0L, 23}, {0x12CEAFL, 23}, {0x12CEAEL, 23}, {0x12CEADL, 23}, 
X	{0x12CEACL, 23}, {0x12CEABL, 23}, {0x12CEAAL, 23}, {0x12CEA9L, 23}, 
X	{0x12CEA8L, 23}, {0x12CEA7L, 23}, {0x12CEA6L, 23}, {0x12CEA5L, 23}, 
X	{0x12CEA4L, 23}, {0x12CEA3L, 23}, {0x12CEA2L, 23}, {0x12CEA1L, 23}
X};
X
Xtree_t tree_len = {		/* {link 0, link 1} pairs. */
X	{58 ,  46}, {74 ,  65}, {85 ,  84}, {87 ,  86}, 
X	{94 ,  89}, {99 ,  98}, {103, 102}, {105, 104}, 
X	{107, 106}, {109, 108}, {111, 110}, {113, 112}, 
X	{116, 114}, {118, 117}, {120, 119}, {122, 121}, 
X	{124, 123}, {127, 125}, {129, 128}, {131, 130}, 
X	{133, 132}, {135, 134}, {138, 136}, {140, 139}, 
X	{142, 141}, {144, 143}, {146, 145}, {148, 147}, 
X	{150, 149}, {152, 151}, {155, 153}, {157, 156}, 
X	{159, 158}, {161, 160}, {163, 162}, {165, 164}, 
X	{167, 166}, {169, 168}, {172, 170}, {174, 173}, 
X	{176, 175}, {178, 177}, {180, 179}, {182, 181}, 
X	{184, 183}, {186, 185}, {188, 187}, {190, 189}, 
X	{192, 191}, {194, 193}, {196, 195}, {198, 197}, 
X	{200, 199}, {202, 201}, {204, 203}, {206, 205}, 
X	{208, 207}, {210, 209}, {212, 211}, {214, 213}, 
X	{216, 215}, {218, 217}, {220, 219}, {222, 221}, 
X	{224, 223}, {226, 225}, {228, 227}, {230, 229}, 
X	{232, 231}, {234, 233}, {236, 235}, {238, 237}, 
X	{240, 239}, {242, 241}, {244, 243}, {246, 245}, 
X	{248, 247}, {250, 249}, {252, 251}, {254, 253}, 
X	{256, 255}, {258, 257}, {260, 259}, {262, 261}, 
X	{264, 263}, {266, 265}, {268, 267}, {270, 269}, 
X	{272, 271}, {274, 273}, {276, 275}, {278, 277}, 
X	{280, 279}, {282, 281}, {284, 283}, {286, 285}, 
X	{288, 287}, {290, 289}, {292, 291}, {294, 293}, 
X	{296, 295}, {298, 297}, {300, 299}, {302, 301}, 
X	{304, 303}, {306, 305}, {308, 307}, {310, 309}, 
X	{312, 311}, {314, 313}, {316, 315}, {318, 317}, 
X	{320, 319}, {322, 321}, {324, 323}, {326, 325}, 
X	{328, 327}, {330, 329}, {332, 331}, {334, 333}, 
X	{336, 335}, {338, 337}, {340, 339}, {342, 341}, 
X	{344, 343}, {346, 345}, {348, 347}, {350, 349}, 
X	{352, 351}, {354, 353}, {356, 355}, {358, 357}, 
X	{360, 359}, {362, 361}, {364, 363}, {366, 365}, 
X	{368, 367}, {370, 369}, {372, 371}, {374, 373}, 
X	{376, 375}, {378, 377}, {380, 379}, {382, 381}, 
X	{384, 383}, {386, 385}, {388, 387}, {390, 389}, 
X	{392, 391}, {394, 393}, {396, 395}, {398, 397}, 
X	{400, 399}, {402, 401}, {404, 403}, {406, 405}, 
X	{408, 407}, {410, 409}, {412, 411}, {414, 413}, 
X	{63 , 415}, {80 ,  75}, {82 ,  81}, {91 ,  90}, 
X	{93 ,  92}, {100,  97}, {126, 115}, {154, 137}, 
X	{416, 171}, {64 ,  61}, {67 ,  66}, {69 ,  68}, 
X	{72 ,  70}, {76 ,  73}, {95 ,  88}, {417, 101}, 
X	{419, 418}, {421, 420}, {423, 422}, {51 , 424}, 
X	{57 ,  55}, {62 ,  59}, {96 ,  83}, {78 ,  56}, 
X	{425,  79}, {427, 426}, {429, 428}, {431, 430}, 
X	{433, 432}, {47 , 434}, {54 ,  53}, {71 ,  60}, 
X	{77 , 435}, {437, 436}, {52 , 438}, {49 ,  45}, 
X	{439,  50}, {441, 440}, {443, 442}, {48 , 444}, 
X	{44 , 445}, {447, 446}, {41 , 448}, {43 ,  42}, 
X	{450, 449}, {39 ,  33}, {451,  40}, {453, 452}, 
X	{37 , 454}, {35 , 455}, {38 , 456}, {458, 457}, 
X	{459,  34}, {461, 460}, {462,  32}, {36 ,  30}, 
X	{464, 463}, {465,  28}, {27 ,  29}, {467, 466}, 
X	{468,  31}, {26 , 469}, {471, 470}, {473, 472}, 
X	{24 , 474}, {23 ,  25}, {22 , 475}, {21 , 476}, 
X	{20 , 477}, {18 , 478}, {19 , 479}, {481, 480}, 
X	{17 , 482}, {16 , 483}, {485, 484}, {486,  15}, 
X	{487,  14}, {488,  13}, {12 , 489}, {491, 490}, 
X	{492,  11}, {10 , 493}, {9  , 494}, {496, 495}, 
X	{497,   8}, {498,   7}, {499,   6}, {500,   5}, 
X	{4  , 501}, {502,   3}, {0  ,   2}, {1  , 503}, 
X	{505, 504}, {507, 506}, {509, 508}
X};
X
Xctab_t ctab_off = {		/* {code, length} pairs */
X	{0x000007L,  3}, {0x000003L,  4}, {0x00000CL,  4}, {0x00000AL,  5}, 
X	{0x000012L,  5}, {0x00001BL,  5}, {0x000008L,  6}, {0x000010L,  6}, 
X	{0x00001CL,  6}, {0x00001FL,  6}, {0x000028L,  6}, {0x000008L,  7}, 
X	{0x000035L,  6}, {0x000003L,  7}, {0x00000BL,  7}, {0x00002FL,  6}, 
X	{0x00000EL,  7}, {0x000024L,  7}, {0x000026L,  7}, {0x00003AL,  7}, 
X	{0x00003CL,  7}, {0x000040L,  7}, {0x00004EL,  7}, {0x000045L,  7}, 
X	{0x000005L,  8}, {0x000057L,  7}, {0x00005AL,  7}, {0x000003L,  8}, 
X	{0x00000CL,  8}, {0x00002AL,  8}, {0x00001FL,  8}, {0x000002L,  8}, 
X	{0x00000AL,  8}, {0x00004CL,  7}, {0x000009L,  8}, {0x00002CL,  8}, 
X	{0x00004FL,  8}, {0x000019L,  8}, {0x000065L,  8}, {0x000089L,  8}, 
X	{0x000087L,  8}, {0x000029L,  8}, {0x00002FL,  8}, {0x00008DL,  8}, 
X	{0x00006BL,  8}, {0x000063L,  8}, {0x00006DL,  8}, {0x00005AL,  8}, 
X	{0x000085L,  8}, {0x000060L,  8}, {0x00005CL,  8}, {0x00009BL,  8}, 
X	{0x0000A5L,  8}, {0x00006FL,  8}, {0x0000A4L,  8}, {0x000083L,  8}, 
X	{0x0000ACL,  8}, {0x000084L,  8}, {0x00008EL,  8}, {0x00009AL,  8}, 
X	{0x0000D2L,  8}, {0x0000BBL,  8}, {0x00002BL,  9}, {0x0000ABL,  8}, 
X	{0x000017L,  9}, {0x0000BAL,  8}, {0x0000AAL,  8}, {0x000035L,  9}, 
X	{0x0000A8L,  8}, {0x000016L,  9}, {0x0000B9L,  8}, {0x000008L,  9}, 
X	{0x00003DL,  9}, {0x00008AL,  9}, {0x000026L,  9}, {0x000009L,  9}, 
X	{0x0000B8L,  8}, {0x00001DL,  9}, {0x000000L,  9}, {0x0000B7L,  8}, 
X	{0x00002AL,  9}, {0x00005DL,  9}, {0x000095L,  9}, {0x000050L,  9}, 
X	{0x00004AL,  9}, {0x0000BFL,  9}, {0x00004FL,  9}, {0x0000BBL,  9}, 
X	{0x00008DL,  9}, {0x00004EL,  9}, {0x00003CL,  9}, {0x00009CL,  9}, 
X	{0x0000CFL,  9}, {0x0000C5L,  9}, {0x000057L,  9}, {0x000088L,  9}, 
X	{0x0000D8L,  9}, {0x000037L,  9}, {0x00014FL,  9}, {0x000056L,  9}, 
X	{0x000094L,  9}, {0x000051L,  9}, {0x0000B0L,  9}, {0x0000CEL,  9}, 
X	{0x00005CL,  9}, {0x0000F7L,  9}, {0x000097L,  9}, {0x0000DDL,  9}, 
X	{0x0000D5L,  9}, {0x0000D4L,  9}, {0x00008CL,  9}, {0x0000B6L,  9}, 
X	{0x0000F6L,  9}, {0x0000D3L,  9}, {0x0000BEL,  9}, {0x000118L,  9}, 
X	{0x00016CL,  9}, {0x0000D2L,  9}, {0x0000BDL,  9}, {0x000023L, 10}, 
X	{0x0000DCL,  9}, {0x000105L,  9}, {0x000167L,  9}, {0x0000F5L,  9}, 
X	{0x000111L,  9}, {0x00004BL, 10}, {0x0000F4L,  9}, {0x0000C4L,  9}, 
X	{0x00013EL,  9}, {0x0000C9L,  9}, {0x0000CDL,  9}, {0x00004AL, 10}, 
X	{0x0000C3L,  9}, {0x00011FL,  9}, {0x00014EL,  9}, {0x000167L, 10}, 
X	{0x0001A1L,  9}, {0x000153L,  9}, {0x000119L,  9}, {0x0000EDL,  9}, 
X	{0x000039L, 10}, {0x00009BL, 10}, {0x0000D1L,  9}, {0x000163L,  9}, 
X	{0x0000B7L, 10}, {0x000162L,  9}, {0x000052L, 10}, {0x000152L,  9}, 
X	{0x000051L, 10}, {0x000068L, 10}, {0x000038L, 10}, {0x0000BCL,  9}, 
X	{0x000037L, 10}, {0x00014DL,  9}, {0x00013DL,  9}, {0x000007L, 10}, 
X	{0x00010CL,  9}, {0x000161L,  9}, {0x000049L, 10}, {0x000006L, 10}, 
X	{0x00011EL,  9}, {0x00006DL, 10}, {0x000160L,  9}, {0x0001A6L,  9}, 
X	{0x000104L,  9}, {0x000166L,  9}, {0x000048L, 10}, {0x0001A3L,  9}, 
X	{0x00014CL,  9}, {0x00015BL,  9}, {0x000165L,  9}, {0x000036L, 10}, 
X	{0x000063L, 10}, {0x0001A0L,  9}, {0x000005L, 10}, {0x000164L,  9}, 
X	{0x000093L, 10}, {0x000022L, 10}, {0x000110L,  9}, {0x00006CL, 10}, 
X	{0x000004L, 10}, {0x00013CL,  9}, {0x000003L, 10}, {0x00003FL, 10}, 
X	{0x000002L, 10}, {0x0001A2L,  9}, {0x00009AL, 10}, {0x000035L, 10}, 
X	{0x000116L, 10}, {0x0001A7L,  9}, {0x00013FL,  9}, {0x000050L, 10}, 
X	{0x00004FL, 10}, {0x000113L, 10}, {0x00012CL, 10}, {0x000092L, 10}, 
X	{0x000034L, 10}, {0x000175L, 10}, {0x000166L, 10}, {0x000091L, 10}, 
X	{0x000099L, 10}, {0x0001D8L, 10}, {0x00003EL, 10}, {0x000112L, 10}, 
X	{0x0000B6L, 10}, {0x000190L, 10}, {0x0001A0L, 10}, {0x00004EL, 10}, 
X	{0x00013AL, 10}, {0x00015AL,  9}, {0x0001B3L, 10}, {0x00021BL, 10}, 
X	{0x000165L, 10}, {0x000062L, 10}, {0x000098L, 10}, {0x000097L, 10}, 
X	{0x000021L, 10}, {0x000069L, 10}, {0x000061L, 10}, {0x000164L, 10}, 
X	{0x00011FL, 10}, {0x000163L, 10}, {0x000174L, 10}, {0x00012DL, 10}, 
X	{0x0001B2L, 10}, {0x000096L, 10}, {0x00011EL, 10}, {0x00011DL, 10}, 
X	{0x0001A1L, 10}, {0x000090L, 10}, {0x000199L, 10}, {0x00003DL, 10}, 
X	{0x0000B5L, 10}, {0x000162L, 10}, {0x0001DFL, 10}, {0x00016FL, 10}, 
X	{0x000185L, 10}, {0x00003CL, 10}, {0x0001DEL, 10}, {0x00011CL, 10}, 
X	{0x00013BL, 10}, {0x000184L, 10}, {0x0002DBL, 10}, {0x000198L, 10}, 
X	{0x00021AL, 10}, {0x0000B4L, 10}, {0x0002DAL, 10}, {0x000060L, 10}, 
X	{0x0001DDL, 10}, {0x0001DCL, 10}, {0x0001D9L, 10}, {0x000053L, 10}, 
X	{0x000117L, 10}, {0x000020L, 10}, {0x000191L, 10}, {0x00016EL, 10}
X};
X
Xtree_t tree_off = {		/* {link 0, link 1} pairs. */
X	{246, 242}, {244, 211}, {238, 234}, {249, 248}, 
X	{201, 250}, {224, 210}, {206, 228}, {243, 230}, 
X	{205, 254}, {241, 236}, {222, 197}, {255, 235}, 
X	{198, 135}, {219, 212}, {233, 221}, {208, 240}, 
X	{194, 223}, {226, 220}, {239, 227}, {188, 252}, 
X	{203, 193}, {204, 144}, {245, 232}, {186, 141}, 
X	{214, 200}, {225, 215}, {195, 176}, {229, 199}, 
X	{179, 161}, {149, 217}, {213, 172}, {247, 218}, 
X	{146, 251}, {191, 148}, {207, 192}, {131, 125}, 
X	{166, 158}, {202, 183}, {237, 231}, {150, 140}, 
X	{171, 152}, {196, 187}, {177, 119}, {253, 216}, 
X	{159, 155}, {180, 174}, {184, 182}, {163, 189}, 
X	{185, 167}, {173, 136}, {116, 256}, {165, 122}, 
X	{175, 170}, {145, 143}, {162, 157}, {209, 169}, 
X	{147, 137}, {134,  98}, {168, 153}, {128, 190}, 
X	{181, 154}, {160, 133}, {115, 138}, {178, 124}, 
X	{156, 257}, {164, 121}, {112, 105}, {126, 123}, 
X	{259, 258}, {260, 139}, {120, 107}, {96 , 261}, 
X	{109, 108}, {117, 113}, {262, 142}, {103,  92}, 
X	{263, 130}, {264, 129}, {127,  93}, {265, 132}, 
X	{114,  85}, {151, 118}, {266,  87}, {111, 267}, 
X	{269, 268}, {102, 270}, {91 , 271}, {272, 106}, 
X	{100,  82}, {274, 273}, {110,  88}, {73 , 275}, 
X	{95 , 276}, {104,  81}, {278, 277}, {99 ,  94}, 
X	{83 , 101}, {89 ,  86}, {280, 279}, {84 , 281}, 
X	{283, 282}, {90 ,  72}, {284,  97}, {285,  67}, 
X	{287, 286}, {80 ,  62}, {289, 288}, {74 , 290}, 
X	{292, 291}, {294, 293}, {295,  77}, {297, 296}, 
X	{69 ,  64}, {299, 298}, {71 ,  75}, {301, 300}, 
X	{78 , 302}, {60 , 303}, {305, 304}, {65 ,  61}, 
X	{76 ,  70}, {306,  79}, {308, 307}, {310, 309}, 
X	{56 , 311}, {66 ,  63}, {68 , 312}, {314, 313}, 
X	{54 ,  52}, {316, 315}, {59 ,  51}, {58 , 317}, 
X	{318,  43}, {319,  39}, {320,  40}, {57 ,  48}, 
X	{321,  55}, {323, 322}, {325, 324}, {326,  53}, 
X	{327,  46}, {328,  44}, {330, 329}, {332, 331}, 
X	{333,  38}, {334,  45}, {49 , 335}, {337, 336}, 
X	{50 , 338}, {47 , 339}, {341, 340}, {342,  36}, 
X	{344, 343}, {346, 345}, {348, 347}, {349,  42}, 
X	{35 , 350}, {29 , 351}, {352,  41}, {354, 353}, 
X	{356, 355}, {357,  30}, {359, 358}, {360,  37}, 
X	{362, 361}, {364, 363}, {366, 365}, {28 , 367}, 
X	{32 , 368}, {369,  34}, {370,  24}, {31 ,  27}, 
X	{372, 371}, {374, 373}, {376, 375}, {26 , 377}, 
X	{379, 378}, {380,  25}, {382, 381}, {384, 383}, 
X	{22 , 385}, {33 , 386}, {388, 387}, {389,  23}, 
X	{391, 390}, {21 , 392}, {20 , 393}, {19 , 394}, 
X	{396, 395}, {398, 397}, {400, 399}, {402, 401}, 
X	{404, 403}, {406, 405}, {18 , 407}, {17 , 408}, 
X	{410, 409}, {412, 411}, {414, 413}, {416, 415}, 
X	{16 , 417}, {419, 418}, {420,  14}, {11 , 421}, 
X	{423, 422}, {425, 424}, {426,  13}, {428, 427}, 
X	{429,  12}, {430,  15}, {432, 431}, {434, 433}, 
X	{10 , 435}, {437, 436}, {439, 438}, {441, 440}, 
X	{442,   9}, {8  , 443}, {445, 444}, {447, 446}, 
X	{449, 448}, {451, 450}, {7  , 452}, {454, 453}, 
X	{6  , 455}, {457, 456}, {459, 458}, {461, 460}, 
X	{463, 462}, {464,   5}, {466, 465}, {468, 467}, 
X	{4  , 469}, {471, 470}, {473, 472}, {475, 474}, 
X	{3  , 476}, {478, 477}, {480, 479}, {482, 481}, 
X	{484, 483}, {2  , 485}, {487, 486}, {489, 488}, 
X	{491, 490}, {493, 492}, {494,   1}, {496, 495}, 
X	{497,   0}, {499, 498}, {501, 500}, {503, 502}, 
X	{505, 504}, {507, 506}, {509, 508}
X};
+ END-OF-FILE tables.h
chmod 'u=rw,g=r,o=r' 'tables.h'
set `wc -c 'tables.h'`
count=$1
case $count in
23395)	:;;
*)	echo 'Bad character count in ''tables.h' >&2
		echo 'Count should be 23395' >&2
esac
exit 0