File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / usr.bin / diction / wdslex.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:25:31 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

# include "stdio.h"
# define U(x) x
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
# define INITIAL 0
# define YYLERR yysvec
# define YYSTATE (yyestate-yysvec-1)
# define YYOPTIM 1
# define YYLMAX 200
# define output(c) putc(c,yyout)
# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
# define yymore() (yymorfg=1)
# define ECHO fprintf(yyout, "%s",yytext)
# define REJECT { nstr = yyreject(); goto yyfussy;}
int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
FILE *yyin ={stdin}, *yyout ={stdout};
extern int yylineno;
struct yysvf { 
	struct yywork *yystoff;
	struct yysvf *yyother;
	int *yystops;};
struct yysvf *yyestate;
extern struct yysvf yysvec[], *yybgin;
/* break out words, output cap + word(inverted) */

#ifndef lint
static char sccsid[] = "@(#)nwords.l	4.2	(Berkeley)	82/11/06";
#endif not lint

#include <stdio.h>
#include <ctype.h>
#define OUT()	for(i=yyleng-1;i>=0; i--)putchar(yytext[i]); putchar('\n')
#define OUT1(nam)	printf("%c:%s\n",nam,yytext)
#define OUTN(string)	printf("%s\n",string)
#include "names.h"
#include "nhash.c"
#include "dict.c"
#include "ydict.c"
#include "abbrev.c"
char nt[]  = "D:n't";
char qs[]  = "c:'s";
char fin[]  = "E:.";
int NOCAPS = 0;		/* if set all caps are turned to lower case */
int i,j;
int dot = 0;
int first  = 1;
int qflg,nflg;
int cap  = 0;
# define YYNEWLINE 10
yylex(){
int nstr; extern int yyprevious;
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:
{
	if(dot){
		OUTN(fin);
		dot = 0;
		first = 1;
	}
	printf(":%s",yytext);
	}
break;
case 2:
{
		if(first == 0){
			OUT1(NOUN);
		}
		else {
			first = 0;
			yytext[0] = tolower(yytext[0]);
			cap = 1;
			goto wd;
		}
	}
break;
case 3:
	{
		OUT1(NOUN);
		}
break;
case 4:
{
		pos(1);
		if(first==1)first=0;
		}
break;
case 5:
{
		if(NOCAPS)
			for(i=0;i<yyleng;i++)
				if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
		OUT1(POS);
		}
break;
case 6:
{
		if(NOCAPS)
			for(i=0;i<yyleng;i++)
				if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
		OUT1(NOUN_ADJ);
		}
break;
case 7:
{
		if(NOCAPS)
			for(i=0;i<yyleng;i++)
				yytext[i] = tolower(yytext[i]);
		if((i=input()) == 's'){
			yytext[yyleng++] = 's';
			yytext[yyleng] = '\0';
			OUT1(PNOUN);
		}
		else {
			unput(i);
			if(!NOCAPS)
				for(i=0;i<yyleng;i++)yytext[i] = tolower(yytext[i]);
				goto wd;
		}
		}
break;
case 8:
{
		if(NOCAPS){
			yytext[0] = tolower(yytext[0]);
			yytext[2] = tolower(yytext[2]);
		}
		OUT1(NOUN_ADJ);
		}
break;
case 9:
{
		if(first==1)
			first=0;
		else cap = 1;
		if(yyleng==1 && yytext[0] == 'I'){
			cap = 0;
			goto wd;
		}
		yytext[0] = tolower(yytext[0]);
		goto wd;
	}
break;
case 10:
{
		OUT1(NOUN_ADJ);
		}
break;
case 11:
{
		for(i=yyleng-1;i>0;i--)
			if(yytext[i] == '.')break;
		unput(yytext[yyleng-1]);
		yytext[i] = '\0';
		OUT1(NOUN_ADJ);
		OUTN(fin);
		first = 1;
	}
break;
case 12:
	{
	if(NOCAPS)
		if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
	OUT1(PRONS);
	}
break;
case 13:
{
	if(NOCAPS)
		if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
	OUT1(POS);
	}
break;
case 14:
{
		if(yytext[yyleng-1] == '.'){
			if(ahead() == 0)dot=1;
		}
		if(NOCAPS)
			for(i=0;i<yyleng;i++)
				if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
		OUT1(NOUN_ADJ);
		}
break;
case 15:
{
	OUT1(NOUN_ADJ);
	}
break;
case 16:
{
	OUT1(NOUN_ADJ);
	}
break;
case 17:
{
	if(yytext[yyleng-1] == '.')dot=1;
	OUT1(NOUN_ADJ);
	}
break;
case 18:
{
	if(input() == '.')
		ahead();
	if(NOCAPS)
		for(i=0;i<yyleng;i++)
			if(isupper(yytext[i]))yytext[i]=tolower(yytext[i]);
	OUT1(NOUN_ADJ);
	}
break;
case 19:
	{
		OUT1(NOUN_ADJ);
		}
break;
case 20:
{
		if(yytext[yyleng-1] == '.')dot=1;
		OUT1(NOUN);
		}
break;
case 21:
{
		OUT1(ADJ_ADV);
		}
break;
case 22:
{
		OUT1(ADJ_ADV);
		}
break;
case 23:
{
		OUT1(ADJ_ADV);
		}
break;
case 24:
{
		OUT1(ADJ_ADV);
		}
break;
case 25:
{
		OUT1(PREP);
		}
break;
case 26:
{
		OUT1(PREP);
		}
break;
case 27:
{
		i = yytext[4];
		yytext[4] = '\0';
		OUT1(NOUN);
		yytext[4] = i;
		yytext[0] = yytext[yyleng-1];
		yytext[1] = '\0';
		if(yytext[0] == ',' || yytext[0] == ')')
			OUT1(',');
		else {
			OUTN(fin);
			first = 1;
		}
	}
break;
case 28:
{
		OUT1(NOUN);
		}
break;
case 29:
{
		unput(yytext[yyleng-1]);
		yytext[2] = '\0';
		OUT1(PREP);
		OUTN(fin);
		first = 1;
		}
break;
case 30:
{
		OUT1(ADJ);
		}
break;
case 31:
{
		dot=1;
		OUT1(NOUN);
		}
break;
case 32:
	{
		yytext[3]='\0';
		yyleng -= 2;
		nflg=1;
		goto wd;
		}
break;
case 33:
	{
		OUT1('X');
		}
break;
case 34:
	{
		OUT1('g');
		}
break;
case 35:
	{
		nflg=1;
		yytext[yyleng-3]='\0';
		yyleng -= 3;
		goto wd;
		}
break;
case 36:
{
		yytext[0] = tolower(yytext[0]);
		nflg=1;
		yytext[yyleng-3]='\0';
		yyleng -= 3;
		goto wd;
		}
break;
case 37:
	{
		OUT1(ADV);
	}
break;
case 38:
{
		pos(0);
		}
break;
case 39:
{
		OUT1(lookup("will",1,0));
	}
break;
case 40:
{
		OUT1(lookup("have",1,0));
	}
break;
case 41:
{
		OUT1(lookup("are",1,0));
	}
break;
case 42:
{
		OUT1(lookup("had",1,0));
	}
break;
case 43:
{
		OUT1(lookup("am",1,0));
	}
break;
case 44:
{
		OUT1(lookup("would",1,0));
	}
break;
case 45:
{
wd:
	if((j = lookup(yytext,1,0)) != 0){
		first=0;
		if(cap){
			if(!NOCAPS)
				yytext[0] = toupper(yytext[0]);
			cap = 0;
			if(dot)OUTN(fin);
		}
		dot=0;
		OUT1(j);
		if(nflg==1){
			nflg=0;
			OUTN(nt);
		}
	}
	else{
		first = dot=0;
		if(yytext[yyleng-1] == 'y' && cap == 0){
			switch(yytext[yyleng-2]){
			case 'c': look(cy,yyleng-2,NOUN);
					break;
			case 'f': look(fy,yyleng-2,VERB);
					break;
			case 'l': look(ly,yyleng-2,ADV);
					break;
			case 'g': if(yytext[yyleng-3] == 'o'){
					OUT1(NOUN);
					break;
				}
				look(gy,yyleng-2,ADJ);
				break;
			case 'r':	switch(yytext[yyleng-3]){
				case 'a': look(ary,yyleng-3,ADJ);
						break;
				case 'o': look(ory,yyleng-3,ADJ);
						break;
				case 'e': look(ery,yyleng-3,NOUN);
						break;
				default: look(ry,yyleng-2,NOUN);
				}
				break;
			case 't': if(yytext[yyleng-3] == 'i')look(ity,yyleng-3,NOUN);
				else look(ty,yyleng-2,ADJ);
				break;
			default: OUT();
			}
	}
		else {
			if(cap){
				if(!NOCAPS)yytext[0] = toupper(yytext[0]);
				cap = 0;
				OUT1(NOUN_ADJ);
			}
			else {
				OUT();
			}
		}
	}
	}
break;
case 46:
;
break;
case 47:
;
break;
case 48:
;
break;
case 49:
{
	OUT1(';');
	first=1;
	}
break;
case 50:
{
	if(dot){
		OUTN(fin);
		dot=0;
	}
	if(qflg==1){
		qflg=0;
		OUT1('"');
	}
	else {
		qflg=1;
		first=1;
		OUT1('"');
	}
	}
break;
case 51:
{
	qflg=0;
	first=1;
	OUT1(END);
	}
break;
case 52:
{
	OUT1(',');
	}
break;
case 53:
{
	first = 1;
	OUT1(END);
	}
break;
case 54:
{
		yytext[yyleng-1] = '\0';
		if((j=abbrev(yytext,1,0)) != 0){
			if(isupper(yytext[0])){
				if(NOCAPS)yytext[0] = tolower(yytext[0]);
				if(first == 1)first=0;
			}
			yytext[yyleng-1] = '.';
			OUT1(j);
		}
		else {
			j = ahead();
			if(j == 0)
				yyleng--;
			for(i=0;i<yyleng;i++)
				if(isupper(yytext[i])){
					yytext[i] = tolower(yytext[i]);
					if(i == 0)cap = 1;
					else cap = 0;
				}
			if(j == 0)goto wd;
			OUT1(NOUN_ADJ);
		}
	}
break;
case 55:
{
	first=1;
	OUT1(END);
	}
break;
case 56:
{
	qflg=0;
	first=1;
	OUT1(END);
	}
break;
case 57:
{
	first=1;
	OUT1(END);
	}
break;
case 58:
{
	qflg=0;
	first=1;
	OUT1(END);
	}
break;
case 59:
{
	first=1;
	OUT1(END);
	}
break;
case 60:
{
	OUT1(',');
	first=1;
	}
break;
case 61:
{
	OUT1(',');
	first=1;
	}
break;
case 62:
{
	OUT1(',');
	}
break;
case 63:
{
	OUT1(',');
	}
break;
case 64:
{
/*	fprintf(stderr,"nwords funny char: %c\n",yytext[0])*/ ;
	}
break;
case -1:
break;
default:
fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */
look(f,n,cc)
char (*f)();
int n;
char cc;
{
	int nn;
	char  save;
	save=yytext[n];
	yytext[n] = '\0';
	nn=(*f)(yytext,1,0);
	yytext[n] = save;
	if(nn != 0){
		OUT1(nn);
	}
	else {
		OUT1(cc);
	}
}
pos(flg){
	int ii,j;
	if(flg == 1)yytext[0] = tolower(yytext[0]);
	for(ii=yyleng-1;yytext[ii] != '\''; ii--);
	yytext[ii] = '\0';
	if((j=lookup(yytext,1,0)) != 0){
		yyleng = ii;
		OUT1(j);
		OUTN(qs);
	}
	else{
		if(flg==1 && !NOCAPS)yytext[0] = toupper(yytext[0]);
		yytext[ii] = '\'';
		OUT1(POS);
	}
}
char	*filename="-";

main(argc,argv)
int	argc;
char	*argv[];
{
	register int rc=0;
	putchar(':'); putchar('\n');
	getd();
	getab();
	ygetd();
	if(argc<=1) {
		yylex();
		OUTN(fin);
	}else{
		while(argc>1) {
			if(freopen(argv[1],"r",stdin)==NULL) {
				fprintf(stderr,"%s: cannot open\n", argv[1]);
				rc++;
			}else{
				filename=argv[1];
				yylex();
				OUTN(fin);
			}
			argc--; argv++;
		}
	}
	return(rc);
}
ahead(){
	register int c;
	if(isalnum((c=input()))){
		yytext[yyleng++] = '.';
		while(!isspace((c=input() )))
			yytext[yyleng++] = c;
		yytext[yyleng] = '\0';
		unput(c);
		return(1);
	}
	unput(c);
	unput('.');
	return(0);
}
int yyvstop[] ={
0,

64,
0,

48,
64,
0,

46,
0,

47,
64,
0,

57,
64,
0,

50,
64,
0,

64,
0,

50,
64,
0,

63,
64,
0,

62,
64,
0,

61,
64,
0,

55,
64,
0,

64,
0,

15,
17,
18,
64,
0,

60,
64,
0,

49,
64,
0,

59,
64,
0,

9,
64,
0,

9,
64,
0,

9,
64,
0,

9,
64,
0,

9,
64,
0,

9,
64,
0,

9,
64,
0,

9,
64,
0,

50,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

45,
64,
0,

57,
64,
0,

55,
64,
0,

48,
0,

47,
0,

56,
0,

50,
0,

20,
0,

42,
0,

43,
0,

61,
0,

51,
0,

16,
0,

14,
53,
0,

14,
0,

19,
0,

15,
17,
0,

17,
0,

15,
17,
18,
0,

18,
0,

15,
17,
18,
0,

58,
0,

31,
0,

7,
0,

9,
0,

31,
0,

9,
0,

9,
0,

9,
0,

31,
0,

9,
0,

9,
0,

31,
0,

50,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

56,
0,

51,
0,

16,
0,

20,
0,

44,
0,

39,
0,

41,
0,

40,
0,

52,
0,

16,
0,

16,
0,

14,
0,

15,
17,
0,

15,
17,
0,

6,
0,

17,
0,

17,
0,

15,
16,
17,
0,

17,
0,

4,
5,
0,

54,
0,

9,
0,

8,
0,

9,
0,

9,
0,

2,
9,
0,

54,
0,

9,
0,

38,
0,

45,
0,

45,
0,

45,
0,

45,
0,

45,
0,

54,
0,

45,
0,

45,
0,

1,
0,

52,
0,

14,
0,

16,
0,

16,
0,

20,
0,

16,
0,

16,
0,

17,
0,

11,
0,

17,
0,

15,
16,
17,
0,

15,
16,
17,
0,

10,
0,

21,
0,

5,
0,

4,
0,

14,
0,

22,
0,

3,
0,

23,
0,

35,
0,

24,
0,

26,
0,

27,
54,
0,

25,
0,

29,
0,

14,
0,

16,
0,

17,
0,

15,
16,
17,
0,

15,
16,
17,
0,

21,
0,

36,
0,

14,
0,

14,
0,

14,
0,

22,
0,

30,
0,

14,
0,

23,
0,

34,
35,
0,

24,
0,

32,
35,
0,

26,
0,

27,
0,

27,
0,

25,
0,

29,
0,

33,
35,
0,

12,
14,
0,

14,
0,

14,
0,

30,
0,

28,
0,

13,
14,
0,

37,
0,
0};
# define YYTYPE int
struct yywork { YYTYPE verify, advance; } yycrank[] ={
0,0,	0,0,	1,3,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	1,4,	1,5,	
0,0,	6,43,	0,0,	0,0,	
0,0,	43,43,	0,0,	0,0,	
0,0,	46,43,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	1,6,	1,7,	1,8,	
6,46,	1,9,	1,3,	7,47,	
1,10,	1,11,	1,11,	19,72,	
46,46,	1,12,	1,13,	1,14,	
1,15,	1,16,	13,57,	21,77,	
0,0,	0,0,	22,78,	27,85,	
45,62,	59,121,	0,0,	1,17,	
1,18,	22,77,	64,64,	8,48,	
1,19,	0,0,	1,20,	1,21,	
8,48,	1,22,	49,112,	0,0,	
49,113,	1,23,	23,77,	0,0,	
0,0,	1,22,	1,24,	25,82,	
24,77,	1,25,	61,125,	56,119,	
1,26,	56,120,	1,27,	125,125,	
62,125,	61,62,	61,45,	128,66,	
1,11,	137,189,	1,11,	62,62,	
62,45,	1,28,	1,29,	1,30,	
1,31,	1,32,	1,33,	1,32,	
1,32,	1,34,	1,35,	1,32,	
1,32,	1,32,	1,32,	1,32,	
1,36,	1,37,	1,32,	1,32,	
1,38,	1,32,	1,32,	1,32,	
1,39,	1,32,	1,32,	1,32,	
1,11,	8,48,	1,11,	2,40,	
2,8,	23,79,	2,9,	24,81,	
26,77,	23,80,	2,11,	53,116,	
54,117,	25,83,	64,126,	73,135,	
2,41,	2,15,	9,49,	9,49,	
9,49,	9,49,	9,49,	9,49,	
9,49,	9,49,	9,49,	9,49,	
2,17,	2,18,	12,55,	85,151,	
87,152,	2,19,	12,56,	12,56,	
12,56,	12,56,	12,56,	12,56,	
12,56,	12,56,	12,56,	12,56,	
51,114,	93,157,	101,169,	124,124,	
126,126,	133,133,	138,190,	140,191,	
51,115,	148,197,	151,201,	2,27,	
154,203,	156,152,	156,205,	4,42,	
158,207,	2,11,	101,152,	2,11,	
74,136,	82,147,	26,84,	122,122,	
130,130,	2,31,	161,210,	2,33,	
2,32,	2,32,	95,160,	2,35,	
2,32,	2,32,	2,32,	162,211,	
2,32,	2,36,	4,43,	2,32,	
2,32,	167,214,	2,32,	2,32,	
2,32,	2,39,	2,32,	2,32,	
2,32,	2,11,	169,217,	2,11,	
4,44,	4,45,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
99,166,	74,137,	82,148,	160,160,	
93,158,	153,153,	181,181,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	74,137,	82,148,	122,181,	
130,184,	95,161,	4,43,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	4,44,	4,44,	4,44,	
4,44,	10,48,	143,62,	157,157,	
149,198,	99,167,	10,48,	102,147,	
166,166,	153,202,	160,209,	28,43,	
55,118,	55,118,	55,118,	55,118,	
55,118,	55,118,	55,118,	55,118,	
55,118,	55,118,	65,127,	65,127,	
65,127,	65,127,	65,127,	65,127,	
65,127,	65,127,	65,127,	65,127,	
178,112,	184,184,	178,113,	186,186,	
28,48,	188,225,	196,230,	143,193,	
149,199,	28,48,	69,134,	69,134,	
69,134,	69,134,	69,134,	69,134,	
69,134,	69,134,	69,134,	69,134,	
102,148,	112,178,	112,178,	112,178,	
112,178,	112,178,	112,178,	112,178,	
112,178,	112,178,	112,178,	10,48,	
192,191,	192,226,	199,232,	10,50,	
202,234,	204,235,	157,206,	143,193,	
149,199,	206,236,	14,58,	10,51,	
10,52,	166,213,	194,62,	208,237,	
209,238,	10,53,	211,239,	213,242,	
102,148,	10,54,	14,59,	14,45,	
14,60,	14,60,	14,60,	14,60,	
14,60,	14,60,	14,60,	14,60,	
14,60,	14,60,	28,86,	175,175,	
217,244,	218,245,	185,185,	219,219,	
194,228,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	136,136,	
147,147,	220,220,	224,224,	231,249,	
194,228,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	14,44,	
14,44,	14,44,	14,44,	15,61,	
239,250,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	175,220,	
136,188,	147,196,	185,224,	244,251,	
251,253,	0,0,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
136,188,	147,196,	241,241,	0,0,	
0,0,	241,241,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
15,62,	15,62,	15,62,	15,62,	
16,63,	195,62,	16,64,	0,0,	
0,0,	0,0,	0,0,	16,65,	
16,66,	16,67,	16,45,	16,68,	
16,68,	16,68,	16,68,	16,68,	
16,68,	16,68,	16,68,	16,68,	
16,68,	16,69,	198,198,	0,0,	
0,0,	0,0,	0,0,	195,229,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	0,0,	0,0,	
0,0,	0,0,	198,231,	195,229,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	16,71,	16,70,	
16,70,	16,70,	16,70,	16,70,	
16,70,	16,70,	20,73,	0,0,	
0,0,	0,0,	198,231,	0,0,	
20,66,	20,74,	20,45,	20,70,	
20,70,	20,70,	20,70,	20,70,	
20,70,	20,70,	20,70,	20,70,	
20,70,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
20,75,	20,75,	20,75,	20,75,	
20,75,	20,75,	20,75,	20,75,	
20,75,	20,75,	20,75,	20,75,	
20,75,	20,75,	20,75,	20,75,	
20,75,	20,75,	20,75,	20,75,	
20,75,	20,75,	20,75,	20,75,	
20,75,	20,75,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
20,76,	20,76,	20,76,	20,76,	
20,76,	20,76,	20,76,	20,76,	
20,76,	20,76,	20,76,	20,76,	
20,76,	20,76,	20,76,	20,76,	
20,76,	20,76,	20,76,	20,76,	
20,76,	20,76,	20,76,	20,76,	
20,76,	20,76,	29,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
113,113,	29,88,	113,113,	113,113,	
113,113,	113,113,	113,113,	113,113,	
113,113,	113,113,	113,113,	113,113,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
29,89,	29,89,	29,89,	29,89,	
29,89,	29,89,	29,89,	29,89,	
29,89,	29,89,	29,89,	29,89,	
29,89,	29,89,	29,89,	29,89,	
29,89,	29,89,	29,89,	29,89,	
29,89,	29,89,	29,89,	29,89,	
29,89,	29,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
29,90,	29,90,	29,90,	29,90,	
29,90,	29,90,	29,90,	29,90,	
29,91,	29,90,	29,90,	29,90,	
29,90,	29,92,	29,90,	29,90,	
29,90,	29,90,	29,90,	29,90,	
29,90,	29,90,	29,90,	29,90,	
29,90,	29,90,	30,87,	0,0,	
0,0,	0,0,	118,55,	0,0,	
118,179,	30,93,	118,118,	118,118,	
118,118,	118,118,	118,118,	118,118,	
118,118,	118,118,	118,118,	118,118,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
30,89,	30,89,	30,89,	30,89,	
30,89,	30,89,	30,89,	30,89,	
30,89,	30,89,	30,89,	30,89,	
30,89,	30,89,	30,89,	30,89,	
30,89,	30,89,	30,89,	30,89,	
30,89,	30,89,	30,89,	30,89,	
30,89,	30,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
30,90,	30,90,	30,90,	30,90,	
30,90,	30,90,	30,90,	30,90,	
30,90,	30,90,	30,90,	30,90,	
30,90,	30,92,	30,90,	30,90,	
30,90,	30,90,	30,90,	30,90,	
30,90,	30,90,	30,90,	30,90,	
30,90,	30,90,	31,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	31,44,	123,60,	123,60,	
123,60,	123,60,	123,60,	123,60,	
123,60,	123,60,	123,60,	123,60,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
31,89,	31,89,	31,89,	31,89,	
31,89,	31,89,	31,89,	31,89,	
31,89,	31,89,	31,89,	31,89,	
31,89,	31,89,	31,89,	31,89,	
31,89,	31,89,	31,89,	31,89,	
31,89,	31,89,	31,89,	31,89,	
31,89,	31,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
31,94,	31,90,	31,90,	31,90,	
31,90,	31,90,	31,90,	31,90,	
31,90,	31,90,	31,90,	31,90,	
31,90,	31,92,	31,90,	31,90,	
31,90,	31,90,	31,90,	31,90,	
31,90,	31,90,	31,90,	31,90,	
31,90,	31,90,	32,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	32,44,	134,187,	134,187,	
134,187,	134,187,	134,187,	134,187,	
134,187,	134,187,	134,187,	134,187,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
32,89,	32,89,	32,89,	32,89,	
32,89,	32,89,	32,89,	32,89,	
32,89,	32,89,	32,89,	32,89,	
32,89,	32,89,	32,89,	32,89,	
32,89,	32,89,	32,89,	32,89,	
32,89,	32,89,	32,89,	32,89,	
32,89,	32,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
32,90,	32,90,	32,90,	32,90,	
32,90,	32,90,	32,90,	32,90,	
32,90,	32,90,	32,90,	32,90,	
32,90,	32,92,	32,90,	32,90,	
32,90,	32,90,	32,90,	32,90,	
32,90,	32,90,	32,90,	32,90,	
32,90,	32,90,	33,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	33,95,	179,221,	179,221,	
179,221,	179,221,	179,221,	179,221,	
179,221,	179,221,	179,221,	179,221,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
33,89,	33,89,	33,89,	33,89,	
33,89,	33,89,	33,89,	33,89,	
33,89,	33,89,	33,89,	33,89,	
33,89,	33,89,	33,89,	33,89,	
33,89,	33,89,	33,89,	33,89,	
33,89,	33,89,	33,89,	33,89,	
33,89,	33,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
33,90,	33,90,	33,90,	33,90,	
33,90,	33,90,	33,90,	33,90,	
33,90,	33,90,	33,90,	33,90,	
33,90,	33,92,	33,90,	33,90,	
33,90,	33,90,	33,90,	33,96,	
33,90,	33,90,	33,90,	33,90,	
33,90,	33,90,	34,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
221,179,	34,44,	221,221,	221,221,	
221,221,	221,221,	221,221,	221,221,	
221,221,	221,221,	221,221,	221,221,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
34,89,	34,89,	34,89,	34,89,	
34,89,	34,89,	34,89,	34,89,	
34,89,	34,89,	34,89,	34,89,	
34,89,	34,89,	34,89,	34,89,	
34,89,	34,89,	34,89,	34,89,	
34,89,	34,89,	34,89,	34,89,	
34,89,	34,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
34,90,	34,90,	34,90,	34,90,	
34,97,	34,90,	34,90,	34,90,	
34,98,	34,90,	34,90,	34,90,	
34,90,	34,92,	34,90,	34,90,	
34,90,	34,90,	34,90,	34,90,	
34,90,	34,90,	34,90,	34,90,	
34,90,	34,90,	35,87,	246,125,	
0,0,	0,0,	0,0,	0,0,	
252,125,	35,99,	246,62,	246,45,	
247,125,	0,0,	248,125,	252,62,	
252,45,	0,0,	0,0,	247,62,	
247,45,	248,62,	248,45,	0,0,	
0,0,	0,0,	0,0,	0,0,	
35,89,	35,89,	35,89,	35,89,	
35,89,	35,89,	35,89,	35,89,	
35,89,	35,89,	35,89,	35,89,	
35,89,	35,89,	35,89,	35,89,	
35,89,	35,89,	35,89,	35,89,	
35,89,	35,89,	35,89,	35,89,	
35,89,	35,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
35,90,	35,90,	35,90,	35,90,	
35,90,	35,90,	35,90,	35,90,	
35,90,	35,90,	35,90,	35,90,	
35,90,	35,100,	35,90,	35,90,	
35,90,	35,90,	35,90,	35,90,	
35,90,	35,90,	35,90,	35,90,	
35,90,	35,90,	36,101,	0,0,	
247,252,	248,252,	0,0,	0,0,	
0,0,	36,44,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
36,89,	36,89,	36,89,	36,89,	
36,89,	36,89,	36,89,	36,89,	
36,89,	36,89,	36,89,	36,89,	
36,89,	36,89,	36,89,	36,89,	
36,89,	36,89,	36,89,	36,89,	
36,89,	36,89,	36,89,	36,89,	
36,89,	36,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
36,90,	36,90,	36,90,	36,90,	
36,90,	36,90,	36,90,	36,90,	
36,90,	36,90,	36,90,	36,90,	
36,90,	36,92,	36,90,	36,90,	
36,90,	36,90,	36,90,	36,90,	
36,90,	36,90,	36,90,	36,90,	
36,90,	36,90,	37,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	37,102,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
37,89,	37,89,	37,89,	37,89,	
37,89,	37,89,	37,89,	37,89,	
37,89,	37,89,	37,89,	37,89,	
37,89,	37,89,	37,89,	37,89,	
37,89,	37,89,	37,89,	37,89,	
37,89,	37,89,	37,89,	37,89,	
37,89,	37,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
37,90,	37,90,	37,90,	37,90,	
37,90,	37,90,	37,90,	37,90,	
37,90,	37,90,	37,90,	37,90,	
37,90,	37,92,	37,90,	37,90,	
37,90,	37,90,	37,90,	37,90,	
37,90,	37,90,	37,90,	37,90,	
37,90,	37,90,	38,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	38,44,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
38,89,	38,89,	38,89,	38,89,	
38,89,	38,89,	38,89,	38,89,	
38,89,	38,89,	38,89,	38,89,	
38,89,	38,89,	38,89,	38,89,	
38,89,	38,89,	38,89,	38,89,	
38,89,	38,89,	38,89,	38,89,	
38,89,	38,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
38,90,	38,90,	38,90,	38,90,	
38,90,	38,90,	38,90,	38,103,	
38,90,	38,90,	38,90,	38,90,	
38,90,	38,92,	38,90,	38,90,	
38,90,	38,90,	38,90,	38,90,	
38,90,	38,90,	38,90,	38,90,	
38,90,	38,90,	39,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	39,44,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
39,89,	39,89,	39,89,	39,89,	
39,89,	39,89,	39,89,	39,89,	
39,89,	39,89,	39,89,	39,89,	
39,89,	39,89,	39,89,	39,89,	
39,89,	39,89,	39,89,	39,89,	
39,89,	39,89,	39,89,	39,89,	
39,89,	39,89,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
39,90,	39,90,	39,90,	39,90,	
39,90,	39,90,	39,90,	39,90,	
39,90,	39,90,	39,90,	39,90,	
39,90,	39,92,	39,104,	39,90,	
39,90,	39,90,	39,90,	39,90,	
39,90,	39,90,	39,90,	39,90,	
39,90,	39,90,	40,105,	200,62,	
0,0,	0,0,	60,122,	0,0,	
0,0,	0,0,	40,105,	40,0,	
0,0,	60,123,	0,0,	60,60,	
60,60,	60,60,	60,60,	60,60,	
60,60,	60,60,	60,60,	60,60,	
60,60,	0,0,	212,240,	88,153,	
86,43,	200,233,	0,0,	0,0,	
0,0,	40,105,	40,105,	40,106,	
0,0,	0,0,	40,105,	0,0,	
40,105,	0,0,	40,105,	193,125,	
0,0,	40,105,	40,105,	40,105,	
212,240,	40,105,	193,62,	193,45,	
0,0,	86,48,	0,0,	227,125,	
41,0,	212,241,	86,48,	0,0,	
212,241,	200,233,	227,62,	227,45,	
0,0,	0,0,	40,105,	40,105,	
228,125,	40,105,	0,0,	0,0,	
88,137,	40,105,	0,0,	228,62,	
228,45,	40,105,	40,105,	229,125,	
41,107,	40,105,	60,124,	233,125,	
40,105,	0,0,	229,62,	229,45,	
0,0,	0,0,	233,62,	233,45,	
41,108,	41,109,	41,110,	88,154,	
0,0,	40,105,	40,105,	40,105,	
0,0,	40,105,	240,240,	0,0,	
88,137,	40,105,	0,0,	0,0,	
193,227,	0,0,	40,105,	41,111,	
41,111,	40,105,	41,111,	86,86,	
40,105,	227,246,	41,111,	0,0,	
0,0,	0,0,	41,111,	41,111,	
240,240,	0,0,	41,111,	0,0,	
0,0,	41,111,	0,0,	0,0,	
0,0,	240,241,	228,247,	0,0,	
240,241,	0,0,	0,0,	0,0,	
0,0,	229,248,	0,0,	41,111,	
41,111,	233,246,	41,111,	0,0,	
0,0,	0,0,	41,111,	0,0,	
0,0,	0,0,	0,0,	41,111,	
0,0,	0,0,	41,111,	0,0,	
0,0,	41,111,	44,44,	44,45,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	44,44,	
44,44,	44,44,	44,44,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	66,128,	66,128,	
66,128,	66,128,	67,129,	67,129,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	67,129,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
67,130,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	67,131,	
0,0,	67,132,	67,132,	67,132,	
67,132,	67,132,	67,132,	67,132,	
67,132,	67,132,	67,132,	68,63,	
0,0,	68,64,	0,0,	0,0,	
0,0,	0,0,	68,65,	68,66,	
68,67,	68,45,	68,68,	68,68,	
68,68,	68,68,	68,68,	68,68,	
68,68,	68,68,	68,68,	68,68,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	0,0,	0,0,	0,0,	
67,133,	0,0,	0,0,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	68,71,	68,70,	68,70,	
68,70,	68,70,	68,70,	68,70,	
68,70,	70,66,	0,0,	0,0,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	70,70,	
70,70,	70,70,	70,70,	71,66,	
0,0,	0,0,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	90,87,	0,0,	0,0,	
0,0,	0,0,	0,0,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	71,71,	71,70,	71,70,	
71,70,	71,70,	71,70,	71,70,	
71,70,	75,138,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
75,139,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	90,90,	
90,90,	90,90,	90,90,	90,90,	
90,90,	90,90,	90,90,	90,90,	
90,90,	90,90,	90,90,	90,90,	
90,92,	90,90,	90,90,	90,90,	
90,90,	90,90,	90,90,	90,90,	
90,90,	90,90,	90,90,	90,90,	
90,90,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	75,89,	
75,89,	75,89,	75,89,	75,89,	
75,89,	75,89,	75,89,	75,89,	
75,89,	75,89,	75,89,	75,89,	
75,89,	75,89,	75,89,	75,89,	
75,89,	75,89,	75,89,	75,89,	
75,89,	75,89,	75,89,	75,89,	
75,89,	76,140,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
76,139,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	76,89,	
76,89,	76,89,	76,89,	76,89,	
76,89,	76,89,	76,89,	76,89,	
76,89,	76,89,	76,89,	76,89,	
76,89,	76,89,	76,89,	76,89,	
76,89,	76,89,	76,89,	76,89,	
76,89,	76,89,	76,89,	76,89,	
76,89,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
76,141,	78,142,	78,142,	78,142,	
78,142,	78,142,	78,142,	78,142,	
78,142,	78,142,	78,142,	78,142,	
78,142,	78,142,	78,142,	78,142,	
78,142,	78,142,	78,142,	78,142,	
78,142,	78,142,	78,142,	78,142,	
78,142,	78,142,	78,142,	79,140,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	79,139,	79,143,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	78,135,	
0,0,	79,89,	79,89,	79,89,	
79,89,	79,89,	79,89,	79,89,	
79,89,	79,89,	79,89,	79,89,	
79,89,	79,89,	79,89,	79,89,	
79,89,	79,89,	79,89,	79,89,	
79,89,	79,89,	79,89,	79,89,	
79,89,	79,89,	79,89,	80,140,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	80,139,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	79,141,	0,0,	
0,0,	0,0,	79,144,	0,0,	
0,0,	80,89,	80,89,	80,89,	
80,89,	80,89,	80,89,	80,89,	
80,89,	80,89,	80,89,	80,89,	
80,89,	80,89,	80,89,	80,89,	
80,89,	80,89,	80,89,	80,89,	
80,89,	80,89,	80,89,	80,89,	
80,89,	80,89,	80,89,	81,140,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	81,139,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	80,141,	0,0,	
0,0,	0,0,	0,0,	80,145,	
0,0,	81,89,	81,89,	81,89,	
81,89,	81,89,	81,89,	81,89,	
81,89,	81,89,	81,89,	81,89,	
81,89,	81,89,	81,89,	81,89,	
81,89,	81,89,	81,89,	81,89,	
81,89,	81,89,	81,89,	81,89,	
81,89,	81,89,	81,89,	0,0,	
0,0,	0,0,	0,0,	0,0,	
83,140,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	83,149,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	81,141,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	81,146,	83,89,	83,89,	
83,89,	83,89,	83,89,	83,89,	
83,89,	83,89,	83,89,	83,89,	
83,89,	83,89,	83,89,	83,89,	
83,89,	83,89,	83,89,	83,89,	
83,89,	83,89,	83,89,	83,89,	
83,89,	83,89,	83,89,	83,89,	
84,140,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	84,139,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	83,141,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	84,89,	84,89,	
84,89,	84,89,	84,89,	84,89,	
84,89,	84,89,	84,89,	84,89,	
84,89,	84,89,	84,89,	84,89,	
84,89,	84,89,	84,89,	84,89,	
84,89,	84,89,	84,89,	84,89,	
84,89,	84,89,	84,89,	84,89,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	84,150,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	84,141,	
89,66,	89,139,	89,45,	89,70,	
89,70,	89,70,	89,70,	89,70,	
89,70,	89,70,	89,70,	89,70,	
89,70,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	91,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	89,89,	89,89,	
89,89,	89,89,	92,156,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
91,90,	91,90,	91,90,	91,90,	
91,90,	91,90,	91,90,	91,90,	
91,90,	91,90,	91,90,	91,90,	
91,90,	91,155,	91,90,	91,90,	
91,90,	91,90,	91,90,	91,90,	
91,90,	91,90,	91,90,	91,90,	
91,90,	91,90,	94,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
92,90,	92,90,	92,90,	92,90,	
92,90,	92,90,	92,90,	92,90,	
92,90,	92,90,	92,90,	92,90,	
92,90,	92,92,	92,90,	92,90,	
92,90,	92,90,	92,90,	92,90,	
92,90,	92,90,	92,90,	92,90,	
92,90,	92,90,	96,162,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	96,87,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
94,90,	94,90,	94,90,	94,90,	
94,90,	94,90,	94,90,	94,90,	
94,90,	94,90,	94,90,	94,90,	
94,90,	94,159,	94,90,	94,90,	
94,90,	94,90,	94,90,	94,90,	
94,90,	94,90,	94,90,	94,90,	
94,90,	94,90,	97,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	97,143,	0,0,	
0,0,	0,0,	0,0,	96,90,	
96,90,	96,163,	96,90,	96,90,	
96,90,	96,90,	96,90,	96,90,	
96,90,	96,90,	96,90,	96,90,	
96,92,	96,90,	96,90,	96,90,	
96,90,	96,90,	96,90,	96,90,	
96,90,	96,90,	96,90,	96,90,	
96,90,	98,87,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
97,90,	97,90,	97,90,	97,90,	
97,90,	97,90,	97,90,	97,90,	
97,90,	97,90,	97,90,	97,90,	
97,90,	97,92,	97,90,	97,90,	
97,90,	97,164,	97,90,	97,90,	
97,90,	97,90,	97,90,	97,90,	
97,90,	97,90,	100,156,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	100,168,	0,0,	0,0,	
0,0,	0,0,	0,0,	98,90,	
98,90,	98,90,	98,90,	98,90,	
98,90,	98,90,	98,90,	98,90,	
98,90,	98,90,	98,90,	98,90,	
98,92,	98,90,	98,90,	98,90,	
98,90,	98,165,	98,90,	98,90,	
98,90,	98,90,	98,90,	98,90,	
98,90,	103,87,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
100,90,	100,90,	100,90,	100,90,	
100,90,	100,90,	100,90,	100,90,	
100,90,	100,90,	100,90,	100,90,	
100,90,	100,92,	100,90,	100,90,	
100,90,	100,90,	100,90,	100,90,	
100,90,	100,90,	100,90,	100,90,	
100,90,	100,90,	104,87,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	103,90,	
103,90,	103,90,	103,90,	103,170,	
103,90,	103,90,	103,90,	103,90,	
103,90,	103,90,	103,90,	103,90,	
103,92,	103,90,	103,90,	103,90,	
103,90,	103,90,	103,90,	103,90,	
103,90,	103,90,	103,90,	103,90,	
103,90,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
104,90,	104,90,	104,90,	104,90,	
104,90,	104,90,	104,90,	104,90,	
104,90,	104,90,	104,90,	104,90,	
104,90,	104,171,	104,90,	104,90,	
104,90,	104,90,	104,90,	104,90,	
104,90,	104,90,	104,90,	104,90,	
104,90,	104,90,	105,105,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	127,64,	105,105,	105,172,	
120,129,	120,129,	127,65,	0,0,	
127,182,	0,0,	127,127,	127,127,	
127,127,	127,127,	127,127,	127,127,	
127,127,	127,127,	127,127,	127,127,	
0,0,	0,0,	0,0,	0,0,	
0,0,	105,105,	105,105,	120,129,	
0,0,	0,0,	105,105,	0,0,	
105,105,	0,0,	105,105,	0,0,	
0,0,	105,105,	105,105,	105,105,	
0,0,	105,105,	0,0,	120,180,	
120,180,	120,180,	120,180,	120,180,	
120,180,	120,180,	120,180,	120,180,	
120,180,	0,0,	0,0,	0,0,	
0,0,	0,0,	105,105,	105,105,	
0,0,	105,105,	0,0,	0,0,	
0,0,	105,105,	0,0,	0,0,	
0,0,	105,105,	105,105,	0,0,	
0,0,	105,105,	0,0,	0,0,	
105,105,	127,126,	0,0,	0,0,	
0,0,	108,173,	108,109,	108,111,	
0,0,	0,0,	0,0,	0,0,	
0,0,	105,105,	105,105,	105,105,	
0,0,	105,105,	109,174,	0,0,	
109,174,	105,105,	0,0,	0,0,	
108,111,	108,111,	105,105,	108,111,	
0,0,	105,105,	0,0,	108,111,	
105,105,	0,0,	0,0,	108,111,	
108,111,	109,174,	109,174,	108,111,	
109,174,	0,0,	108,111,	0,0,	
109,174,	0,0,	0,0,	0,0,	
109,174,	109,174,	0,0,	0,0,	
109,174,	110,175,	0,0,	109,174,	
108,111,	108,111,	0,0,	108,111,	
110,176,	110,109,	110,110,	108,111,	
0,0,	0,0,	0,0,	0,0,	
108,111,	109,174,	109,174,	108,111,	
109,174,	0,0,	108,111,	0,0,	
109,174,	0,0,	0,0,	110,111,	
110,111,	109,174,	110,111,	0,0,	
109,174,	0,0,	110,111,	109,174,	
0,0,	0,0,	110,111,	110,111,	
0,0,	0,0,	110,111,	0,0,	
0,0,	110,111,	0,0,	0,0,	
0,0,	0,0,	111,111,	111,109,	
111,111,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	110,111,	
110,111,	0,0,	110,111,	0,0,	
0,0,	0,0,	110,111,	129,129,	
129,129,	111,111,	111,111,	110,111,	
111,111,	0,0,	110,111,	0,0,	
111,111,	110,177,	0,0,	0,0,	
111,111,	111,111,	131,130,	0,0,	
111,111,	0,0,	0,0,	111,111,	
0,0,	131,131,	129,129,	131,131,	
131,131,	131,131,	131,131,	131,131,	
131,131,	131,131,	131,131,	131,131,	
131,131,	111,111,	111,111,	0,0,	
111,111,	0,0,	0,0,	0,0,	
111,111,	0,0,	0,0,	141,192,	
0,0,	111,111,	0,0,	0,0,	
111,111,	0,0,	0,0,	111,111,	
0,0,	0,0,	0,0,	129,183,	
129,183,	129,183,	129,183,	129,183,	
129,183,	129,183,	129,183,	129,183,	
129,183,	129,183,	129,183,	129,183,	
129,183,	129,183,	129,183,	129,183,	
129,183,	129,183,	129,183,	129,183,	
129,183,	129,183,	129,183,	129,183,	
129,183,	0,0,	132,185,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	132,67,	131,133,	132,132,	
132,132,	132,132,	132,132,	132,132,	
132,132,	132,132,	132,132,	132,132,	
132,132,	141,76,	141,76,	141,76,	
141,76,	141,76,	141,76,	141,76,	
141,76,	141,76,	141,76,	141,76,	
141,76,	141,76,	141,141,	141,76,	
141,76,	141,76,	141,76,	141,76,	
141,76,	141,76,	141,76,	141,76,	
141,76,	141,76,	141,76,	142,142,	
142,142,	142,142,	142,142,	142,142,	
142,142,	142,142,	142,142,	142,142,	
142,142,	142,142,	142,142,	142,142,	
142,142,	142,142,	142,142,	142,142,	
142,142,	142,142,	142,142,	142,142,	
142,142,	142,142,	142,142,	142,142,	
142,142,	144,140,	0,0,	0,0,	
0,0,	0,0,	132,186,	0,0,	
0,0,	144,194,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	145,140,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	145,195,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	146,140,	0,0,	0,0,	
0,0,	0,0,	0,0,	144,76,	
144,76,	144,76,	144,76,	144,76,	
144,76,	144,76,	144,76,	144,76,	
144,76,	144,76,	144,76,	144,76,	
144,141,	144,76,	144,76,	144,76,	
144,76,	144,76,	144,76,	144,76,	
144,76,	144,76,	144,76,	144,76,	
144,76,	145,76,	145,76,	145,76,	
145,76,	145,76,	145,76,	145,76,	
145,76,	145,76,	145,76,	145,76,	
145,76,	145,76,	145,141,	145,76,	
145,76,	145,76,	145,76,	145,76,	
145,76,	145,76,	145,76,	145,76,	
145,76,	145,76,	145,76,	146,76,	
146,76,	146,76,	146,76,	146,76,	
146,76,	146,76,	146,76,	146,76,	
146,76,	146,76,	146,76,	146,76,	
146,141,	146,76,	146,76,	146,76,	
146,76,	146,76,	146,76,	146,76,	
146,76,	146,76,	146,76,	146,76,	
146,76,	150,140,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	150,200,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	155,204,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	159,208,	0,0,	0,0,	
0,0,	0,0,	0,0,	150,76,	
150,76,	150,76,	150,76,	150,76,	
150,76,	150,76,	150,76,	150,76,	
150,76,	150,76,	150,76,	150,76,	
150,141,	150,76,	150,76,	150,76,	
150,76,	150,76,	150,76,	150,76,	
150,76,	150,76,	150,76,	150,76,	
150,76,	155,90,	155,90,	155,90,	
155,90,	155,90,	155,90,	155,90,	
155,90,	155,90,	155,90,	155,90,	
155,90,	155,90,	155,92,	155,90,	
155,90,	155,90,	155,90,	155,90,	
155,90,	155,90,	155,90,	155,90,	
155,90,	155,90,	155,90,	159,90,	
159,90,	159,90,	159,90,	159,90,	
159,90,	159,90,	159,90,	159,90,	
159,90,	159,90,	159,90,	159,90,	
159,92,	159,90,	159,90,	159,90,	
159,90,	159,90,	159,90,	159,90,	
159,90,	159,90,	159,90,	159,90,	
159,90,	163,87,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
163,212,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	164,87,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	164,194,	
180,122,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	180,120,	
0,0,	180,180,	180,180,	180,180,	
180,180,	180,180,	180,180,	180,180,	
180,180,	180,180,	180,180,	0,0,	
0,0,	0,0,	0,0,	163,90,	
163,90,	163,90,	163,90,	163,90,	
163,90,	163,90,	163,90,	163,90,	
163,90,	163,90,	163,90,	163,90,	
163,92,	163,90,	163,90,	163,90,	
163,90,	163,90,	163,90,	163,90,	
163,90,	163,90,	163,90,	163,90,	
163,90,	164,90,	164,90,	164,90,	
164,90,	164,90,	164,90,	164,90,	
164,90,	164,90,	164,90,	164,90,	
164,90,	164,90,	164,92,	164,90,	
164,90,	164,90,	164,90,	164,90,	
164,90,	164,90,	164,90,	164,90,	
164,90,	164,90,	164,90,	165,87,	
180,181,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	165,195,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
168,215,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	168,215,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	165,90,	165,90,	165,90,	
165,90,	165,90,	165,90,	165,90,	
165,90,	165,90,	165,90,	165,90,	
165,90,	165,90,	165,92,	165,90,	
165,90,	165,90,	165,90,	165,90,	
165,90,	165,90,	165,90,	165,90,	
165,90,	165,90,	165,90,	168,216,	
168,216,	168,216,	168,216,	168,216,	
168,216,	168,216,	168,216,	168,216,	
168,216,	168,216,	168,216,	168,216,	
168,216,	168,216,	168,216,	168,216,	
168,216,	168,216,	168,216,	168,216,	
168,216,	168,216,	168,216,	168,216,	
168,216,	170,87,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	170,200,	182,129,	182,129,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	171,218,	
0,0,	0,0,	0,0,	0,0,	
0,0,	182,129,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
182,130,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	182,222,	
0,0,	182,223,	182,223,	182,223,	
182,223,	182,223,	182,223,	182,223,	
182,223,	182,223,	182,223,	170,90,	
170,90,	170,90,	170,90,	170,90,	
170,90,	170,90,	170,90,	170,90,	
170,90,	170,90,	170,90,	170,90,	
170,92,	170,90,	170,90,	170,90,	
170,90,	170,90,	170,90,	170,90,	
170,90,	170,90,	170,90,	170,90,	
170,90,	171,90,	171,90,	171,90,	
171,90,	171,90,	171,90,	171,90,	
171,90,	171,90,	171,90,	171,90,	
171,90,	171,90,	171,92,	171,90,	
171,90,	171,90,	171,90,	171,90,	
171,90,	171,90,	171,90,	171,90,	
171,90,	171,90,	171,90,	173,111,	
173,109,	173,111,	0,0,	0,0,	
182,184,	174,219,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
174,174,	174,109,	174,174,	0,0,	
0,0,	0,0,	173,111,	173,111,	
0,0,	173,111,	0,0,	0,0,	
0,0,	173,111,	0,0,	0,0,	
0,0,	173,111,	173,111,	174,174,	
174,174,	173,111,	174,174,	0,0,	
173,111,	0,0,	174,174,	0,0,	
0,0,	0,0,	174,174,	174,174,	
0,0,	0,0,	174,174,	0,0,	
0,0,	174,174,	173,111,	173,111,	
0,0,	173,111,	176,111,	176,109,	
176,110,	173,111,	0,0,	0,0,	
0,0,	0,0,	173,111,	174,174,	
174,174,	173,111,	174,174,	0,0,	
173,111,	0,0,	174,174,	0,0,	
0,0,	176,111,	176,111,	174,174,	
176,111,	0,0,	174,174,	0,0,	
176,111,	174,174,	0,0,	0,0,	
176,111,	176,111,	0,0,	0,0,	
176,111,	0,0,	0,0,	176,111,	
0,0,	0,0,	0,0,	0,0,	
177,111,	177,109,	177,111,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	176,111,	176,111,	0,0,	
176,111,	0,0,	0,0,	0,0,	
176,111,	215,215,	0,0,	177,111,	
177,111,	176,111,	177,111,	0,0,	
176,111,	0,0,	177,111,	176,111,	
0,0,	0,0,	177,111,	177,111,	
0,0,	0,0,	177,111,	0,0,	
0,0,	177,111,	0,0,	215,215,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	177,111,	
177,111,	0,0,	177,111,	0,0,	
0,0,	0,0,	177,111,	0,0,	
0,0,	0,0,	0,0,	177,111,	
0,0,	0,0,	177,111,	0,0,	
0,0,	177,177,	0,0,	0,0,	
215,243,	215,243,	215,243,	215,243,	
215,243,	215,243,	215,243,	215,243,	
215,243,	215,243,	215,243,	215,243,	
215,243,	215,243,	215,243,	215,243,	
215,243,	215,243,	215,243,	215,243,	
215,243,	215,243,	215,243,	215,243,	
215,243,	215,243,	222,130,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	222,222,	0,0,	222,222,	
222,222,	222,222,	222,222,	222,222,	
222,222,	222,222,	222,222,	222,222,	
222,222,	223,185,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
223,182,	0,0,	223,223,	223,223,	
223,223,	223,223,	223,223,	223,223,	
223,223,	223,223,	223,223,	223,223,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	222,184,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	223,224,	0,0,	0,0,	
0,0};
struct yysvf yysvec[] ={
0,	0,	0,
yycrank+-1,	0,		0,	
yycrank+-94,	yysvec+1,	0,	
yycrank+0,	0,		yyvstop+1,
yycrank+174,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+6,
yycrank+4,	yysvec+4,	yyvstop+8,
yycrank+5,	0,		yyvstop+11,
yycrank+29,	0,		yyvstop+14,
yycrank+94,	0,		yyvstop+17,
yycrank+263,	0,		yyvstop+19,
yycrank+0,	0,		yyvstop+22,
yycrank+110,	0,		yyvstop+25,
yycrank+5,	0,		yyvstop+28,
yycrank+336,	0,		yyvstop+31,
yycrank+413,	0,		yyvstop+34,
yycrank+499,	0,		yyvstop+36,
yycrank+0,	0,		yyvstop+41,
yycrank+0,	0,		yyvstop+44,
yycrank+9,	0,		yyvstop+47,
yycrank+583,	0,		yyvstop+50,
yycrank+5,	yysvec+20,	yyvstop+53,
yycrank+15,	yysvec+20,	yyvstop+56,
yycrank+28,	yysvec+20,	yyvstop+59,
yycrank+34,	yysvec+20,	yyvstop+62,
yycrank+33,	yysvec+20,	yyvstop+65,
yycrank+86,	yysvec+20,	yyvstop+68,
yycrank+9,	yysvec+20,	yyvstop+71,
yycrank+298,	yysvec+4,	yyvstop+74,
yycrank+667,	yysvec+20,	yyvstop+77,
yycrank+751,	yysvec+20,	yyvstop+80,
yycrank+835,	yysvec+20,	yyvstop+83,
yycrank+919,	yysvec+20,	yyvstop+86,
yycrank+1003,	yysvec+20,	yyvstop+89,
yycrank+1087,	yysvec+20,	yyvstop+92,
yycrank+1171,	yysvec+20,	yyvstop+95,
yycrank+1255,	yysvec+20,	yyvstop+98,
yycrank+1339,	yysvec+20,	yyvstop+101,
yycrank+1423,	yysvec+20,	yyvstop+104,
yycrank+1507,	yysvec+20,	yyvstop+107,
yycrank+-1629,	0,		yyvstop+110,
yycrank+-1674,	yysvec+40,	yyvstop+113,
yycrank+0,	yysvec+4,	yyvstop+116,
yycrank+8,	yysvec+4,	0,	
yycrank+1744,	0,		0,	
yycrank+10,	yysvec+15,	0,	
yycrank+12,	yysvec+4,	yyvstop+118,
yycrank+0,	0,		yyvstop+120,
yycrank+0,	yysvec+8,	yyvstop+122,
yycrank+26,	yysvec+9,	yyvstop+124,
yycrank+0,	0,		yyvstop+126,
yycrank+68,	0,		0,	
yycrank+0,	0,		yyvstop+128,
yycrank+34,	0,		0,	
yycrank+35,	0,		0,	
yycrank+260,	yysvec+12,	0,	
yycrank+39,	yysvec+12,	0,	
yycrank+0,	yysvec+13,	yyvstop+130,
yycrank+0,	0,		yyvstop+132,
yycrank+11,	yysvec+44,	0,	
yycrank+1595,	yysvec+44,	yyvstop+134,
yycrank+43,	yysvec+15,	yyvstop+136,
yycrank+49,	yysvec+15,	yyvstop+139,
yycrank+0,	0,		yyvstop+141,
yycrank+23,	0,		yyvstop+143,
yycrank+270,	yysvec+12,	0,	
yycrank+1819,	0,		0,	
yycrank+1933,	yysvec+44,	yyvstop+146,
yycrank+1954,	0,		yyvstop+148,
yycrank+290,	0,		0,	
yycrank+2032,	yysvec+44,	yyvstop+152,
yycrank+2110,	yysvec+44,	yyvstop+154,
yycrank+0,	0,		yyvstop+158,
yycrank+24,	0,		0,	
yycrank+156,	yysvec+44,	yyvstop+160,
yycrank+2194,	yysvec+20,	yyvstop+162,
yycrank+2278,	yysvec+20,	yyvstop+164,
yycrank+0,	yysvec+44,	yyvstop+166,
yycrank+2324,	0,		0,	
yycrank+2376,	yysvec+20,	yyvstop+168,
yycrank+2428,	yysvec+20,	yyvstop+170,
yycrank+2480,	yysvec+20,	yyvstop+172,
yycrank+157,	yysvec+44,	yyvstop+174,
yycrank+2537,	yysvec+20,	yyvstop+176,
yycrank+2589,	yysvec+20,	yyvstop+178,
yycrank+72,	yysvec+44,	yyvstop+180,
yycrank+1647,	yysvec+4,	yyvstop+182,
yycrank+41,	0,		0,	
yycrank+1623,	yysvec+44,	0,	
yycrank+2655,	0,		0,	
yycrank+2162,	yysvec+89,	yyvstop+184,
yycrank+2707,	yysvec+89,	yyvstop+186,
yycrank+2739,	yysvec+89,	yyvstop+188,
yycrank+137,	yysvec+44,	0,	
yycrank+2791,	yysvec+89,	yyvstop+190,
yycrank+166,	yysvec+44,	0,	
yycrank+2830,	yysvec+89,	yyvstop+192,
yycrank+2875,	yysvec+89,	yyvstop+194,
yycrank+2914,	yysvec+89,	yyvstop+196,
yycrank+200,	yysvec+44,	0,	
yycrank+2959,	yysvec+89,	yyvstop+198,
yycrank+71,	0,		0,	
yycrank+271,	yysvec+44,	0,	
yycrank+2998,	yysvec+89,	yyvstop+200,
yycrank+3043,	yysvec+89,	yyvstop+202,
yycrank+-3165,	0,		0,	
yycrank+0,	yysvec+105,	yyvstop+204,
yycrank+0,	yysvec+105,	yyvstop+206,
yycrank+-3207,	yysvec+105,	0,	
yycrank+-3220,	yysvec+105,	0,	
yycrank+-3262,	yysvec+105,	yyvstop+208,
yycrank+-3304,	yysvec+105,	0,	
yycrank+301,	0,		0,	
yycrank+666,	0,		yyvstop+210,
yycrank+0,	0,		yyvstop+212,
yycrank+0,	0,		yyvstop+214,
yycrank+0,	0,		yyvstop+216,
yycrank+0,	0,		yyvstop+218,
yycrank+750,	0,		0,	
yycrank+0,	yysvec+12,	0,	
yycrank+3167,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+220,
yycrank+152,	0,		yyvstop+222,
yycrank+834,	yysvec+44,	0,	
yycrank+56,	yysvec+44,	yyvstop+224,
yycrank+48,	0,		yyvstop+226,
yycrank+57,	0,		yyvstop+228,
yycrank+3134,	0,		yyvstop+231,
yycrank+46,	yysvec+66,	yyvstop+234,
yycrank+3358,	0,		0,	
yycrank+153,	0,		yyvstop+236,
yycrank+3343,	yysvec+44,	yyvstop+238,
yycrank+3411,	yysvec+44,	yyvstop+240,
yycrank+58,	yysvec+44,	yyvstop+244,
yycrank+918,	0,		0,	
yycrank+0,	0,		yyvstop+246,
yycrank+395,	0,		0,	
yycrank+47,	yysvec+44,	0,	
yycrank+59,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+249,
yycrank+60,	0,		0,	
yycrank+3372,	yysvec+89,	yyvstop+251,
yycrank+3398,	0,		yyvstop+253,
yycrank+252,	yysvec+15,	0,	
yycrank+3482,	yysvec+89,	yyvstop+255,
yycrank+3508,	yysvec+89,	yyvstop+257,
yycrank+3534,	yysvec+89,	yyvstop+259,
yycrank+396,	0,		0,	
yycrank+131,	yysvec+44,	0,	
yycrank+268,	yysvec+44,	yyvstop+262,
yycrank+3618,	yysvec+89,	yyvstop+264,
yycrank+132,	yysvec+44,	0,	
yycrank+0,	0,		yyvstop+266,
yycrank+205,	yysvec+136,	0,	
yycrank+134,	yysvec+44,	0,	
yycrank+3644,	yysvec+89,	yyvstop+268,
yycrank+66,	0,		0,	
yycrank+267,	0,		0,	
yycrank+138,	yysvec+44,	0,	
yycrank+3670,	yysvec+89,	yyvstop+270,
yycrank+203,	0,		0,	
yycrank+148,	yysvec+44,	0,	
yycrank+106,	0,		0,	
yycrank+3754,	yysvec+89,	yyvstop+272,
yycrank+3780,	yysvec+89,	yyvstop+274,
yycrank+3864,	yysvec+89,	yyvstop+276,
yycrank+272,	0,		0,	
yycrank+163,	yysvec+44,	0,	
yycrank+3922,	yysvec+44,	yyvstop+278,
yycrank+110,	0,		0,	
yycrank+3974,	yysvec+89,	yyvstop+280,
yycrank+4000,	yysvec+89,	yyvstop+282,
yycrank+0,	0,		yyvstop+284,
yycrank+-4077,	yysvec+105,	yyvstop+286,
yycrank+-4090,	yysvec+105,	yyvstop+288,
yycrank+-356,	yysvec+105,	yyvstop+290,
yycrank+-4132,	yysvec+105,	0,	
yycrank+-4174,	yysvec+105,	yyvstop+292,
yycrank+284,	yysvec+112,	yyvstop+294,
yycrank+1002,	yysvec+120,	0,	
yycrank+3789,	0,		yyvstop+296,
yycrank+123,	0,		yyvstop+298,
yycrank+4013,	0,		yyvstop+300,
yycrank+0,	0,		yyvstop+302,
yycrank+214,	0,		yyvstop+304,
yycrank+359,	0,		yyvstop+306,
yycrank+216,	yysvec+44,	yyvstop+310,
yycrank+0,	0,		yyvstop+314,
yycrank+287,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+316,
yycrank+0,	0,		yyvstop+318,
yycrank+0,	0,		yyvstop+320,
yycrank+245,	0,		0,	
yycrank+1632,	yysvec+15,	yyvstop+322,
yycrank+328,	yysvec+15,	0,	
yycrank+491,	yysvec+15,	0,	
yycrank+288,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+324,
yycrank+526,	0,		0,	
yycrank+316,	yysvec+44,	0,	
yycrank+1585,	yysvec+15,	0,	
yycrank+0,	yysvec+44,	yyvstop+326,
yycrank+318,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+328,
yycrank+249,	yysvec+156,	0,	
yycrank+0,	0,		yyvstop+330,
yycrank+323,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+332,
yycrank+259,	yysvec+156,	0,	
yycrank+330,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+334,
yycrank+270,	0,		0,	
yycrank+1644,	yysvec+44,	yyvstop+336,
yycrank+333,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+339,
yycrank+4227,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+341,
yycrank+285,	0,		0,	
yycrank+281,	yysvec+156,	0,	
yycrank+-360,	yysvec+105,	yyvstop+343,
yycrank+-314,	yysvec+105,	yyvstop+345,
yycrank+1086,	0,		0,	
yycrank+4279,	0,		yyvstop+347,
yycrank+4298,	0,		yyvstop+349,
yycrank+315,	0,		yyvstop+353,
yycrank+0,	0,		yyvstop+357,
yycrank+0,	0,		yyvstop+359,
yycrank+1644,	yysvec+15,	yyvstop+361,
yycrank+1657,	yysvec+15,	yyvstop+363,
yycrank+1668,	yysvec+15,	yyvstop+365,
yycrank+0,	0,		yyvstop+367,
yycrank+385,	0,		0,	
yycrank+0,	yysvec+44,	yyvstop+369,
yycrank+1672,	yysvec+15,	yyvstop+371,
yycrank+0,	0,		yyvstop+373,
yycrank+0,	0,		yyvstop+375,
yycrank+0,	0,		yyvstop+378,
yycrank+0,	0,		yyvstop+380,
yycrank+0,	0,		yyvstop+383,
yycrank+414,	0,		0,	
yycrank+1720,	0,		yyvstop+385,
yycrank+465,	0,		yyvstop+387,
yycrank+0,	0,		yyvstop+389,
yycrank+0,	0,		yyvstop+391,
yycrank+376,	0,		0,	
yycrank+0,	0,		yyvstop+393,
yycrank+1172,	yysvec+15,	yyvstop+396,
yycrank+1181,	yysvec+15,	yyvstop+399,
yycrank+1183,	yysvec+15,	yyvstop+401,
yycrank+0,	0,		yyvstop+403,
yycrank+0,	0,		yyvstop+405,
yycrank+369,	0,		0,	
yycrank+1177,	yysvec+15,	yyvstop+407,
yycrank+0,	0,		yyvstop+410,
0,	0,	0};
struct yywork *yytop = yycrank+4413;
struct yysvf *yybgin = yysvec+1;
char yymatch[] ={
00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
040 ,'!' ,01  ,01  ,01  ,'%' ,01  ,047 ,
01  ,')' ,01  ,01  ,',' ,'-' ,'.' ,01  ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'B' ,'B' ,'D' ,'B' ,'B' ,'B' ,
'H' ,'B' ,'B' ,'B' ,'L' ,'M' ,'B' ,'B' ,
'P' ,'B' ,'B' ,'S' ,'B' ,'B' ,'B' ,'B' ,
'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
'`' ,'a' ,'b' ,'b' ,'d' ,'b' ,'b' ,'b' ,
'h' ,'b' ,'b' ,'b' ,'b' ,'m' ,'b' ,'b' ,
'p' ,'b' ,'b' ,'s' ,'b' ,'b' ,'b' ,'b' ,
'b' ,'b' ,'b' ,01  ,01  ,01  ,01  ,01  ,
0};
char yyextra[] ={
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0};
/*	ncform	4.1	83/08/11	*/

int yylineno =1;
# define YYU(x) x
# define NLSTATE yyprevious=YYNEWLINE
char yytext[YYLMAX];
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
char yysbuf[YYLMAX];
char *yysptr = yysbuf;
int *yyfnd;
extern struct yysvf *yyestate;
int yyprevious = YYNEWLINE;
yylook(){
	register struct yysvf *yystate, **lsp;
	register struct yywork *yyt;
	struct yysvf *yyz;
	int yych;
	struct yywork *yyr;
# ifdef LEXDEBUG
	int debug;
# endif
	char *yylastch;
	/* start off machines */
# ifdef LEXDEBUG
	debug = 0;
# endif
	if (!yymorfg)
		yylastch = yytext;
	else {
		yymorfg=0;
		yylastch = yytext+yyleng;
		}
	for(;;){
		lsp = yylstate;
		yyestate = yystate = yybgin;
		if (yyprevious==YYNEWLINE) yystate++;
		for (;;){
# ifdef LEXDEBUG
			if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
# endif
			yyt = yystate->yystoff;
			if(yyt == yycrank){		/* may not be any transitions */
				yyz = yystate->yyother;
				if(yyz == 0)break;
				if(yyz->yystoff == yycrank)break;
				}
			*yylastch++ = yych = input();
		tryagain:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"char ");
				allprint(yych);
				putchar('\n');
				}
# endif
			yyr = yyt;
			if ( (int)yyt > (int)yycrank){
				yyt = yyr + yych;
				if (yyt <= yytop && yyt->verify+yysvec == yystate){
					if(yyt->advance+yysvec == YYLERR)	/* error transitions */
						{unput(*--yylastch);break;}
					*lsp++ = yystate = yyt->advance+yysvec;
					goto contin;
					}
				}
# ifdef YYOPTIM
			else if((int)yyt < (int)yycrank) {		/* r < yycrank */
				yyt = yyr = yycrank+(yycrank-yyt);
# ifdef LEXDEBUG
				if(debug)fprintf(yyout,"compressed state\n");
# endif
				yyt = yyt + yych;
				if(yyt <= yytop && yyt->verify+yysvec == yystate){
					if(yyt->advance+yysvec == YYLERR)	/* error transitions */
						{unput(*--yylastch);break;}
					*lsp++ = yystate = yyt->advance+yysvec;
					goto contin;
					}
				yyt = yyr + YYU(yymatch[yych]);
# ifdef LEXDEBUG
				if(debug){
					fprintf(yyout,"try fall back character ");
					allprint(YYU(yymatch[yych]));
					putchar('\n');
					}
# endif
				if(yyt <= yytop && yyt->verify+yysvec == yystate){
					if(yyt->advance+yysvec == YYLERR)	/* error transition */
						{unput(*--yylastch);break;}
					*lsp++ = yystate = yyt->advance+yysvec;
					goto contin;
					}
				}
			if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
# ifdef LEXDEBUG
				if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
# endif
				goto tryagain;
				}
# endif
			else
				{unput(*--yylastch);break;}
		contin:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"state %d char ",yystate-yysvec-1);
				allprint(yych);
				putchar('\n');
				}
# endif
			;
			}
# ifdef LEXDEBUG
		if(debug){
			fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
			allprint(yych);
			putchar('\n');
			}
# endif
		while (lsp-- > yylstate){
			*yylastch-- = 0;
			if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
				yyolsp = lsp;
				if(yyextra[*yyfnd]){		/* must backup */
					while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
						lsp--;
						unput(*yylastch--);
						}
					}
				yyprevious = YYU(*yylastch);
				yylsp = lsp;
				yyleng = yylastch-yytext+1;
				yytext[yyleng] = 0;
# ifdef LEXDEBUG
				if(debug){
					fprintf(yyout,"\nmatch ");
					sprint(yytext);
					fprintf(yyout," action %d\n",*yyfnd);
					}
# endif
				return(*yyfnd++);
				}
			unput(*yylastch);
			}
		if (yytext[0] == 0  /* && feof(yyin) */)
			{
			yysptr=yysbuf;
			return(0);
			}
		yyprevious = yytext[0] = input();
		if (yyprevious>0)
			output(yyprevious);
		yylastch=yytext;
# ifdef LEXDEBUG
		if(debug)putchar('\n');
# endif
		}
	}
yyback(p, m)
	int *p;
{
if (p==0) return(0);
while (*p)
	{
	if (*p++ == m)
		return(1);
	}
return(0);
}
	/* the following are only used in the lex library */
yyinput(){
	return(input());
	}
yyoutput(c)
  int c; {
	output(c);
	}
yyunput(c)
   int c; {
	unput(c);
	}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.