# include "stdio.h"
# define U(x) ((x)&0377)
# 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;
#include "y.tab.h"
static int lineno = 1;

#define YYTEXTCOPY textcopy(yytext)
static char *textcopy(char *text);
static char *textcopystringval(char *text);

#define yyeraseunput() (yysptr = yysbuf)
/* The above macro is called by yyerror() to discard any unput() characters
   so the next call to yylex() will only deal with new characters from the new
   input file. It is specific to at&t lex. */

/* #define QQYY fprintf(stderr, "<%s>", yytext) */
#define QQYY 
# 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:
	{ QQYY; lineno++; return '\n'; }
break;
case 2:
{ QQYY; yylval.s = YYTEXTCOPY; return ACTIONLIST; }
break;
case 3:
{ QQYY; yylval.s = YYTEXTCOPY; return BOOLEANINPUT0; }
break;
case 4:
{ QQYY; yylval.s = YYTEXTCOPY; return BOXDISPLAY0; }
break;
case 5:
{ QQYY; yylval.s = YYTEXTCOPY; return CALCULATE; }
break;
case 6:
	{ QQYY; yylval.s = YYTEXTCOPY; return CHAR; }
break;
case 7:
	{ QQYY; yylval.s = YYTEXTCOPY; return CHOICES; }
break;
case 8:
	{ QQYY; yylval.s = YYTEXTCOPY; return COL; }
break;
case 9:
	{ QQYY; yylval.s = YYTEXTCOPY; return COLUMNS; }
break;
case 10:
	{ QQYY; yylval.s = YYTEXTCOPY; return DATA; }
break;
case 11:
{ QQYY; yylval.s = YYTEXTCOPY; return DEFAULTQUEUE; }
break;
case 12:
{ QQYY; yylval.s = YYTEXTCOPY; return DEFAULTVALUE; }
break;
case 13:
{ QQYY; yylval.s = YYTEXTCOPY; return DEFAULTVALUES; }
break;
case 14:
	{ QQYY; yylval.s = YYTEXTCOPY; return DETAIL; }
break;
case 15:
{ QQYY; yylval.s = YYTEXTCOPY; return DIRECTION; }
break;
case 16:
{ QQYY; yylval.s = YYTEXTCOPY; return DISPLAYFIELD; }
break;
case 17:
	{ QQYY; yylval.s = YYTEXTCOPY; return DISPLAY0; }
break;
case 18:
{ QQYY; yylval.s = YYTEXTCOPY; return DISTANCE; }
break;
case 19:
	{ QQYY; yylval.s = YYTEXTCOPY; return DOWN; }
break;
case 20:
{ QQYY; yylval.s = YYTEXTCOPY; return EXCLUSIVE0; }
break;
case 21:
	{ QQYY; yylval.s = YYTEXTCOPY; return FIELD; }
break;
case 22:
	{ QQYY; yylval.s = YYTEXTCOPY; return FORM; }
break;
case 23:
{ QQYY; yylval.s = YYTEXTCOPY; return FORMNAME; }
break;
case 24:
	{ QQYY; yylval.s = YYTEXTCOPY; return HEIGHT; }
break;
case 25:
{ QQYY; yylval.s = YYTEXTCOPY; return HIDDENIF; }
break;
case 26:
{ QQYY; yylval.s = YYTEXTCOPY; return INPUTFIELD; }
break;
case 27:
{ QQYY; yylval.s = YYTEXTCOPY; return INPUTSOURCE; }
break;
case 28:
	{ QQYY; yylval.s = YYTEXTCOPY; return LEFT; }
break;
case 29:
	{ QQYY; yylval.s = YYTEXTCOPY; return LENGTH; }
break;
case 30:
{ QQYY; yylval.s = YYTEXTCOPY; return LINEDISPLAY0; }
break;
case 31:
{ QQYY; yylval.s = YYTEXTCOPY; return LOCKEDIF; }
break;
case 32:
	{ QQYY; yylval.s = YYTEXTCOPY; return NAME; }
break;
case 33:
{ QQYY; yylval.s = YYTEXTCOPY; return NODENUMBER; }
break;
case 34:
{ QQYY; yylval.s = YYTEXTCOPY; return NONEXCLUSIVE0; }
break;
case 35:
{ QQYY; yylval.s = YYTEXTCOPY; return NUMERICINPUT0; }
break;
case 36:
	{ QQYY; yylval.s = YYTEXTCOPY; return NONE; }
break;
case 37:
	{ QQYY; yylval.s = YYTEXTCOPY; return NOTIFY; }
break;
case 38:
{ QQYY; yylval.s = YYTEXTCOPY; return NUMLINES; }
break;
case 39:
	{ QQYY; yylval.s = YYTEXTCOPY; return PROMPT; }
break;
case 40:
	{ QQYY; yylval.s = YYTEXTCOPY; return RIGHT; }
break;
case 41:
	{ QQYY; yylval.s = YYTEXTCOPY; return ROUTE; }
break;
case 42:
	{ QQYY; yylval.s = YYTEXTCOPY; return ROW; }
break;
case 43:
	{ QQYY; yylval.s = YYTEXTCOPY; return SCREEN; }
break;
case 44:
{ QQYY; yylval.s = YYTEXTCOPY; return SELECTIONINPUT0; }
break;
case 45:
{ QQYY; yylval.s = YYTEXTCOPY; return STATUSSTRING; }
break;
case 46:
{ QQYY; yylval.s = YYTEXTCOPY; return TERMINAL; }
break;
case 47:
{ QQYY; yylval.s = YYTEXTCOPY; return TEXTATTRS; }
break;
case 48:
{ QQYY; yylval.s = YYTEXTCOPY; return TEXTDISPLAY0; }
break;
case 49:
{ QQYY; yylval.s = YYTEXTCOPY; return TEXTINPUT0; }
break;
case 50:
	{ QQYY; yylval.s = YYTEXTCOPY; return TYPE; }
break;
case 51:
	{ QQYY; yylval.s = YYTEXTCOPY; return UP; }
break;
case 52:
	{ QQYY; yylval.s = YYTEXTCOPY; return WIDTH; }
break;
case 53:
	{ QQYY; yylval.s = YYTEXTCOPY; return WORD; }
break;
case 54:
	{ QQYY; yylval.s = YYTEXTCOPY; return WRAP; }
break;
case 55:
		{ char c, l;
			  for (c = '!'; c != EOF; c = input()) {
			    if (c == '/' && l == '*') break;
			    l = c;
			    if (c == '\n') lineno++;
			  }
			}
break;
case 56:
		{ }
break;
case 57:
{ QQYY; yylval.s = textcopystringval(yytext); return STRING; }
break;
case 58:
{ QQYY; yylval.s = YYTEXTCOPY; return ID; }
break;
case 59:
	{ QQYY; yylval.i = strtol(yytext, NULL, 0); return INTEGER; }
break;
case 60:
		{ QQYY; return yytext[0]; }
break;
case -1:
break;
default:
fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */

yywrap() { return(1); }

char *yylexany(void) {
  static char buf[BUFSIZ];
  char *trav = buf, reading = 0, c = 0;
  int left = BUFSIZ - 1;
  while (c != EOF && c != '\n' && left) {
    c = input();
    reading |= !isspace(c);
    if (reading) *trav++ = c, left--;
  }
  if (c == '\n') {
    unput('\n');
    trav--;
  }
  *trav = 0;
  return buf;
}

static char *textcopy(char *text) {
  static int curbuf = 0;
  static char yyextrabuf[2][BUFSIZ];
  strcpy(yyextrabuf[curbuf], text);
  curbuf = !curbuf;
  return yyextrabuf[!curbuf];
}

static char *textcopystringval(char *text) {
  char stuff[BUFSIZ], *trav = stuff;
  text++;
  while (*text != '\"') {
    if (*text == '\\') {
      text++;
      if (*text == 'n') *trav = '\n';
      else if (*text == 'r') *trav = '\r';
      else *trav = *text;
    } else *trav = *text;
    trav++, text++;
  }
  *trav = 0;
  return textcopy(stuff);
}

void yyerror(char *s) {
  fprintf(stderr, "Oops... %s on line number %d!\n", s, lineno);
}

void yybegin(void) {
  yyeraseunput();
  lineno = 1;
}
int yyvstop[] ={
0,

60,
0,

56,
60,
0,

1,
0,

60,
0,

60,
0,

60,
0,

59,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

56,
0,

57,
0,

59,
0,

55,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

51,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

57,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

8,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

42,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

10,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

19,
58,
0,

58,
0,

58,
0,

58,
0,

22,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

28,
58,
0,

58,
0,

58,
0,

58,
0,

32,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

50,
58,
0,

58,
0,

58,
0,

54,
58,
0,

6,
58,
0,

58,
0,

36,
58,
0,

53,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

21,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

40,
58,
0,

41,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

52,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

14,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

24,
58,
0,

58,
0,

58,
0,

58,
0,

29,
58,
0,

58,
0,

58,
0,

58,
0,

37,
58,
0,

58,
0,

58,
0,

39,
58,
0,

43,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

7,
58,
0,

9,
58,
0,

58,
0,

58,
0,

17,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

18,
58,
0,

58,
0,

23,
58,
0,

25,
58,
0,

58,
0,

58,
0,

31,
58,
0,

58,
0,

58,
0,

38,
58,
0,

58,
0,

58,
0,

58,
0,

46,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

5,
58,
0,

58,
0,

58,
0,

15,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

47,
58,
0,

58,
0,

49,
58,
0,

20,
58,
0,

58,
0,

2,
58,
0,

58,
0,

4,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

26,
58,
0,

58,
0,

33,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

27,
58,
0,

30,
58,
0,

58,
0,

58,
0,

58,
0,

48,
58,
0,

58,
0,

3,
58,
0,

11,
58,
0,

12,
58,
0,

16,
58,
0,

35,
58,
0,

45,
58,
0,

58,
0,

34,
58,
0,

13,
58,
0,

58,
0,

44,
58,
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,	4,30,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	1,6,	
4,30,	0,0,	0,0,	33,78,	
0,0,	0,0,	0,0,	8,35,	
1,7,	0,0,	0,0,	0,0,	
1,8,	1,9,	7,34,	7,34,	
7,34,	7,34,	7,34,	7,34,	
7,34,	7,34,	7,34,	7,34,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	1,10,	1,11,	
1,12,	1,13,	1,14,	1,15,	
1,14,	1,16,	1,17,	1,14,	
1,14,	1,18,	1,14,	1,19,	
1,14,	1,20,	1,14,	1,21,	
1,22,	1,23,	1,24,	1,14,	
1,25,	1,14,	1,14,	1,14,	
11,36,	14,36,	26,36,	31,33,	
1,14,	33,33,	1,14,	1,14,	
1,26,	1,14,	1,27,	1,14,	
1,14,	1,14,	1,14,	1,14,	
1,14,	1,14,	1,14,	1,28,	
1,14,	1,14,	1,14,	1,14,	
1,14,	1,14,	1,14,	1,14,	
1,29,	1,14,	1,14,	1,14,	
2,8,	12,39,	17,36,	12,36,	
16,36,	21,36,	16,50,	26,74,	
12,40,	36,36,	16,51,	21,62,	
11,38,	17,52,	55,101,	12,41,	
66,113,	21,63,	66,36,	2,11,	
2,12,	2,13,	2,14,	2,15,	
2,14,	2,16,	2,17,	2,14,	
2,14,	2,18,	2,14,	2,19,	
2,14,	2,20,	2,14,	2,21,	
2,22,	2,23,	2,24,	2,14,	
2,25,	2,14,	2,14,	2,14,	
71,36,	17,53,	27,36,	78,33,	
2,14,	21,64,	2,14,	2,14,	
2,26,	2,14,	2,27,	2,14,	
2,14,	2,14,	2,14,	2,14,	
2,14,	2,14,	2,14,	2,28,	
2,14,	2,14,	2,14,	2,14,	
2,14,	2,14,	2,14,	2,14,	
2,29,	2,14,	2,14,	2,14,	
6,31,	15,36,	18,36,	13,42,	
18,54,	13,36,	20,36,	13,43,	
6,31,	6,31,	19,57,	13,44,	
19,36,	15,47,	18,55,	24,36,	
25,36,	13,45,	37,36,	28,36,	
39,36,	20,61,	25,72,	27,75,	
19,58,	40,36,	45,36,	22,65,	
24,71,	39,82,	19,59,	25,73,	
41,36,	6,32,	62,36,	37,79,	
82,128,	40,83,	62,109,	15,48,	
18,56,	41,84,	6,31,	13,46,	
22,66,	15,49,	45,90,	6,31,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	51,36,	51,96,	
110,36,	22,67,	19,60,	28,76,	
6,31,	10,36,	10,36,	10,37,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	6,33,	
29,36,	38,36,	46,36,	10,36,	
48,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	23,36,	
42,36,	23,68,	43,36,	49,36,	
53,36,	43,86,	48,93,	52,36,	
44,36,	50,36,	47,36,	56,36,	
29,77,	38,80,	60,36,	50,95,	
63,36,	42,85,	46,91,	43,87,	
52,97,	23,69,	38,81,	44,88,	
44,89,	47,92,	54,36,	61,36,	
57,36,	54,99,	58,36,	58,104,	
59,36,	23,70,	64,36,	67,36,	
63,110,	54,100,	57,103,	61,108,	
65,36,	70,36,	59,106,	68,36,	
69,36,	72,36,	72,119,	58,105,	
74,36,	53,98,	49,94,	73,120,	
76,36,	73,36,	56,102,	65,112,	
60,107,	69,117,	68,115,	75,36,	
77,36,	79,36,	80,36,	83,36,	
68,116,	81,36,	81,127,	79,125,	
84,36,	83,129,	85,131,	86,132,	
85,36,	86,36,	90,36,	87,133,	
67,114,	87,36,	74,121,	88,36,	
89,36,	88,134,	91,36,	93,36,	
64,111,	90,137,	84,130,	94,36,	
92,36,	96,36,	96,143,	75,122,	
95,36,	89,135,	70,118,	76,123,	
95,142,	89,136,	92,139,	97,36,	
98,36,	99,36,	100,36,	80,126,	
101,36,	102,36,	100,147,	77,124,	
103,36,	104,36,	103,150,	104,151,	
101,148,	105,36,	106,36,	107,36,	
108,36,	97,144,	99,146,	105,152,	
109,36,	111,36,	114,36,	106,153,	
93,140,	109,156,	108,155,	91,138,	
112,36,	94,141,	112,158,	113,36,	
115,36,	117,36,	116,36,	117,163,	
118,36,	119,36,	122,36,	102,149,	
120,36,	121,36,	115,161,	123,36,	
127,36,	124,36,	125,36,	126,36,	
113,159,	107,154,	98,145,	116,162,	
129,175,	120,166,	119,165,	128,36,	
114,160,	130,36,	125,171,	131,36,	
133,36,	134,179,	132,36,	135,36,	
137,36,	138,36,	133,178,	130,176,	
140,36,	136,181,	111,157,	136,36,	
135,180,	128,174,	141,36,	139,36,	
144,36,	123,169,	124,170,	122,168,	
132,177,	126,172,	127,173,	145,36,	
142,36,	118,164,	139,183,	146,36,	
121,167,	142,185,	143,36,	147,36,	
143,186,	144,187,	148,36,	150,36,	
148,190,	149,36,	149,191,	151,36,	
152,36,	140,184,	154,36,	152,193,	
155,36,	153,36,	138,182,	156,36,	
147,189,	157,36,	151,192,	153,194,	
158,36,	159,36,	158,199,	160,36,	
161,36,	155,196,	162,203,	163,36,	
162,36,	165,36,	161,202,	166,36,	
156,197,	167,36,	165,206,	164,36,	
164,204,	168,36,	169,36,	159,200,	
145,188,	164,205,	170,36,	171,36,	
172,36,	173,36,	175,36,	174,36,	
175,213,	176,36,	177,36,	157,198,	
178,36,	179,36,	171,209,	160,201,	
174,212,	154,195,	181,36,	177,215,	
176,214,	178,216,	180,218,	184,36,	
180,36,	182,36,	183,221,	185,36,	
183,36,	181,219,	179,217,	186,36,	
187,36,	188,36,	172,210,	189,36,	
188,225,	190,36,	190,227,	191,36,	
189,226,	192,36,	186,223,	193,36,	
185,222,	194,36,	195,36,	168,207,	
187,224,	196,36,	197,36,	169,208,	
198,36,	173,211,	200,36,	182,220,	
194,231,	199,36,	201,36,	192,229,	
202,36,	203,36,	204,36,	205,36,	
206,36,	193,230,	196,233,	207,36,	
199,234,	208,36,	200,235,	202,237,	
209,36,	210,36,	211,36,	213,36,	
214,36,	191,228,	203,238,	215,36,	
212,246,	209,243,	212,36,	216,36,	
195,232,	219,252,	218,36,	217,36,	
220,36,	221,36,	222,36,	213,247,	
214,248,	217,250,	225,36,	226,36,	
215,249,	223,36,	224,36,	221,254,	
204,239,	208,242,	228,36,	223,255,	
229,36,	227,36,	205,240,	201,236,	
218,251,	230,36,	224,256,	227,258,	
232,36,	233,36,	229,260,	207,241,	
210,244,	234,36,	231,36,	211,245,	
231,261,	235,36,	236,36,	237,265,	
238,36,	237,36,	239,36,	240,36,	
241,36,	242,36,	243,36,	246,36,	
225,257,	244,36,	245,36,	247,36,	
243,271,	235,263,	248,36,	244,272,	
249,36,	238,266,	220,253,	250,36,	
232,262,	251,36,	256,36,	252,36,	
246,274,	252,278,	228,259,	257,36,	
259,36,	253,36,	249,275,	250,277,	
253,279,	260,286,	260,36,	249,276,	
236,264,	254,36,	255,36,	254,280,	
256,282,	255,281,	241,269,	261,36,	
258,36,	263,36,	242,270,	258,284,	
240,268,	262,36,	239,267,	245,273,	
264,36,	266,36,	265,36,	262,288,	
267,36,	268,36,	269,36,	261,287,	
270,36,	257,283,	263,289,	265,291,	
271,36,	272,36,	275,36,	273,36,	
266,292,	274,36,	276,302,	274,300,	
276,36,	259,285,	277,36,	278,36,	
279,36,	280,36,	281,36,	282,36,	
271,297,	283,36,	284,36,	285,36,	
275,301,	277,303,	286,36,	287,36,	
286,308,	288,36,	289,36,	290,36,	
291,36,	294,36,	282,305,	292,36,	
264,290,	273,299,	293,36,	295,36,	
296,36,	267,293,	297,36,	299,36,	
298,36,	289,310,	300,36,	268,294,	
272,298,	269,295,	270,296,	292,312,	
302,36,	301,36,	279,304,	301,320,	
303,36,	304,36,	305,323,	297,317,	
306,36,	302,321,	283,306,	308,36,	
285,307,	307,36,	309,36,	312,36,	
313,36,	310,36,	311,36,	314,36,	
288,309,	295,315,	290,311,	310,328,	
311,329,	315,36,	308,326,	293,313,	
316,36,	317,36,	294,314,	318,36,	
319,36,	320,36,	321,36,	322,36,	
296,316,	298,318,	323,36,	304,322,	
323,336,	306,324,	324,36,	307,325,	
325,36,	299,319,	313,330,	326,36,	
329,36,	327,36,	328,36,	320,333,	
321,334,	330,36,	331,36,	332,36,	
333,36,	335,36,	333,344,	309,327,	
334,36,	328,339,	334,345,	336,36,	
337,36,	338,36,	316,331,	339,36,	
340,36,	341,36,	343,36,	339,348,	
342,36,	344,36,	346,36,	347,36,	
322,335,	345,36,	348,36,	349,36,	
350,36,	318,332,	351,36,	352,36,	
353,36,	0,0,	0,0,	0,0,	
0,0,	0,0,	335,346,	329,340,	
0,0,	345,351,	0,0,	0,0,	
0,0,	0,0,	325,337,	327,338,	
0,0,	0,0,	0,0,	0,0,	
332,343,	331,342,	342,350,	330,341,	
0,0,	0,0,	0,0,	0,0,	
0,0,	340,349,	338,347,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	349,352,	0,0,	0,0,	
352,353,	0,0,	0,0,	0,0,	
0,0};
struct yysvf yysvec[] ={
0,	0,	0,
yycrank+-1,	0,		0,	
yycrank+-77,	yysvec+1,	0,	
yycrank+0,	0,		yyvstop+1,
yycrank+4,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+6,
yycrank+-199,	0,		yyvstop+8,
yycrank+2,	0,		yyvstop+10,
yycrank+1,	0,		yyvstop+12,
yycrank+0,	yysvec+7,	yyvstop+14,
yycrank+200,	0,		yyvstop+17,
yycrank+25,	yysvec+10,	yyvstop+20,
yycrank+60,	yysvec+10,	yyvstop+23,
yycrank+138,	yysvec+10,	yyvstop+26,
yycrank+26,	yysvec+10,	yyvstop+29,
yycrank+134,	yysvec+10,	yyvstop+32,
yycrank+61,	yysvec+10,	yyvstop+35,
yycrank+59,	yysvec+10,	yyvstop+38,
yycrank+135,	yysvec+10,	yyvstop+41,
yycrank+145,	yysvec+10,	yyvstop+44,
yycrank+139,	yysvec+10,	yyvstop+47,
yycrank+62,	yysvec+10,	yyvstop+50,
yycrank+160,	yysvec+10,	yyvstop+53,
yycrank+256,	yysvec+10,	yyvstop+56,
yycrank+148,	yysvec+10,	yyvstop+59,
yycrank+149,	yysvec+10,	yyvstop+62,
yycrank+27,	yysvec+10,	yyvstop+65,
yycrank+103,	yysvec+10,	yyvstop+68,
yycrank+152,	yysvec+10,	yyvstop+71,
yycrank+225,	yysvec+10,	yyvstop+74,
yycrank+0,	yysvec+4,	yyvstop+77,
yycrank+-3,	yysvec+6,	0,	
yycrank+0,	0,		yyvstop+79,
yycrank+-5,	yysvec+6,	0,	
yycrank+0,	yysvec+7,	yyvstop+81,
yycrank+0,	0,		yyvstop+83,
yycrank+66,	yysvec+10,	yyvstop+85,
yycrank+151,	yysvec+10,	yyvstop+87,
yycrank+226,	yysvec+10,	yyvstop+89,
yycrank+153,	yysvec+10,	yyvstop+91,
yycrank+158,	yysvec+10,	yyvstop+93,
yycrank+165,	yysvec+10,	yyvstop+95,
yycrank+257,	yysvec+10,	yyvstop+97,
yycrank+259,	yysvec+10,	yyvstop+99,
yycrank+265,	yysvec+10,	yyvstop+101,
yycrank+159,	yysvec+10,	yyvstop+103,
yycrank+227,	yysvec+10,	yyvstop+105,
yycrank+267,	yysvec+10,	yyvstop+107,
yycrank+229,	yysvec+10,	yyvstop+109,
yycrank+260,	yysvec+10,	yyvstop+111,
yycrank+266,	yysvec+10,	yyvstop+113,
yycrank+191,	yysvec+10,	yyvstop+115,
yycrank+264,	yysvec+10,	yyvstop+117,
yycrank+261,	yysvec+10,	yyvstop+119,
yycrank+283,	yysvec+10,	yyvstop+121,
yycrank+71,	yysvec+10,	yyvstop+123,
yycrank+268,	yysvec+10,	yyvstop+125,
yycrank+285,	yysvec+10,	yyvstop+127,
yycrank+287,	yysvec+10,	yyvstop+129,
yycrank+289,	yysvec+10,	yyvstop+131,
yycrank+271,	yysvec+10,	yyvstop+133,
yycrank+284,	yysvec+10,	yyvstop+135,
yycrank+167,	yysvec+10,	yyvstop+137,
yycrank+273,	yysvec+10,	yyvstop+139,
yycrank+291,	yysvec+10,	yyvstop+141,
yycrank+297,	yysvec+10,	yyvstop+143,
yycrank+75,	yysvec+10,	yyvstop+145,
yycrank+292,	yysvec+10,	yyvstop+147,
yycrank+300,	yysvec+10,	yyvstop+149,
yycrank+301,	yysvec+10,	yyvstop+151,
yycrank+298,	yysvec+10,	yyvstop+153,
yycrank+101,	yysvec+10,	yyvstop+155,
yycrank+302,	yysvec+10,	yyvstop+158,
yycrank+310,	yysvec+10,	yyvstop+160,
yycrank+305,	yysvec+10,	yyvstop+162,
yycrank+316,	yysvec+10,	yyvstop+164,
yycrank+309,	yysvec+10,	yyvstop+166,
yycrank+317,	yysvec+10,	yyvstop+168,
yycrank+-79,	yysvec+6,	yyvstop+170,
yycrank+318,	yysvec+10,	yyvstop+172,
yycrank+319,	yysvec+10,	yyvstop+174,
yycrank+322,	yysvec+10,	yyvstop+176,
yycrank+169,	yysvec+10,	yyvstop+178,
yycrank+320,	yysvec+10,	yyvstop+180,
yycrank+325,	yysvec+10,	yyvstop+182,
yycrank+329,	yysvec+10,	yyvstop+185,
yycrank+330,	yysvec+10,	yyvstop+187,
yycrank+334,	yysvec+10,	yyvstop+189,
yycrank+336,	yysvec+10,	yyvstop+191,
yycrank+337,	yysvec+10,	yyvstop+193,
yycrank+331,	yysvec+10,	yyvstop+195,
yycrank+339,	yysvec+10,	yyvstop+197,
yycrank+345,	yysvec+10,	yyvstop+199,
yycrank+340,	yysvec+10,	yyvstop+201,
yycrank+344,	yysvec+10,	yyvstop+203,
yycrank+349,	yysvec+10,	yyvstop+205,
yycrank+346,	yysvec+10,	yyvstop+207,
yycrank+356,	yysvec+10,	yyvstop+209,
yycrank+357,	yysvec+10,	yyvstop+211,
yycrank+358,	yysvec+10,	yyvstop+213,
yycrank+359,	yysvec+10,	yyvstop+215,
yycrank+361,	yysvec+10,	yyvstop+217,
yycrank+362,	yysvec+10,	yyvstop+219,
yycrank+365,	yysvec+10,	yyvstop+221,
yycrank+366,	yysvec+10,	yyvstop+223,
yycrank+370,	yysvec+10,	yyvstop+225,
yycrank+371,	yysvec+10,	yyvstop+227,
yycrank+372,	yysvec+10,	yyvstop+229,
yycrank+373,	yysvec+10,	yyvstop+231,
yycrank+377,	yysvec+10,	yyvstop+233,
yycrank+193,	yysvec+10,	yyvstop+235,
yycrank+378,	yysvec+10,	yyvstop+238,
yycrank+385,	yysvec+10,	yyvstop+240,
yycrank+388,	yysvec+10,	yyvstop+242,
yycrank+379,	yysvec+10,	yyvstop+244,
yycrank+389,	yysvec+10,	yyvstop+246,
yycrank+391,	yysvec+10,	yyvstop+248,
yycrank+390,	yysvec+10,	yyvstop+250,
yycrank+393,	yysvec+10,	yyvstop+252,
yycrank+394,	yysvec+10,	yyvstop+254,
yycrank+397,	yysvec+10,	yyvstop+256,
yycrank+398,	yysvec+10,	yyvstop+258,
yycrank+395,	yysvec+10,	yyvstop+260,
yycrank+400,	yysvec+10,	yyvstop+262,
yycrank+402,	yysvec+10,	yyvstop+264,
yycrank+403,	yysvec+10,	yyvstop+266,
yycrank+404,	yysvec+10,	yyvstop+268,
yycrank+401,	yysvec+10,	yyvstop+270,
yycrank+412,	yysvec+10,	yyvstop+272,
yycrank+409,	yysvec+10,	yyvstop+274,
yycrank+414,	yysvec+10,	yyvstop+276,
yycrank+416,	yysvec+10,	yyvstop+278,
yycrank+419,	yysvec+10,	yyvstop+281,
yycrank+417,	yysvec+10,	yyvstop+283,
yycrank+418,	yysvec+10,	yyvstop+285,
yycrank+420,	yysvec+10,	yyvstop+287,
yycrank+428,	yysvec+10,	yyvstop+289,
yycrank+421,	yysvec+10,	yyvstop+291,
yycrank+422,	yysvec+10,	yyvstop+294,
yycrank+432,	yysvec+10,	yyvstop+296,
yycrank+425,	yysvec+10,	yyvstop+298,
yycrank+431,	yysvec+10,	yyvstop+300,
yycrank+441,	yysvec+10,	yyvstop+303,
yycrank+447,	yysvec+10,	yyvstop+305,
yycrank+433,	yysvec+10,	yyvstop+307,
yycrank+440,	yysvec+10,	yyvstop+309,
yycrank+444,	yysvec+10,	yyvstop+311,
yycrank+448,	yysvec+10,	yyvstop+314,
yycrank+451,	yysvec+10,	yyvstop+316,
yycrank+454,	yysvec+10,	yyvstop+318,
yycrank+452,	yysvec+10,	yyvstop+320,
yycrank+456,	yysvec+10,	yyvstop+323,
yycrank+457,	yysvec+10,	yyvstop+325,
yycrank+462,	yysvec+10,	yyvstop+327,
yycrank+459,	yysvec+10,	yyvstop+329,
yycrank+461,	yysvec+10,	yyvstop+331,
yycrank+464,	yysvec+10,	yyvstop+333,
yycrank+466,	yysvec+10,	yyvstop+335,
yycrank+469,	yysvec+10,	yyvstop+337,
yycrank+470,	yysvec+10,	yyvstop+339,
yycrank+472,	yysvec+10,	yyvstop+341,
yycrank+473,	yysvec+10,	yyvstop+343,
yycrank+477,	yysvec+10,	yyvstop+345,
yycrank+476,	yysvec+10,	yyvstop+347,
yycrank+484,	yysvec+10,	yyvstop+350,
yycrank+478,	yysvec+10,	yyvstop+352,
yycrank+480,	yysvec+10,	yyvstop+354,
yycrank+482,	yysvec+10,	yyvstop+357,
yycrank+486,	yysvec+10,	yyvstop+360,
yycrank+487,	yysvec+10,	yyvstop+362,
yycrank+491,	yysvec+10,	yyvstop+365,
yycrank+492,	yysvec+10,	yyvstop+368,
yycrank+493,	yysvec+10,	yyvstop+370,
yycrank+494,	yysvec+10,	yyvstop+372,
yycrank+496,	yysvec+10,	yyvstop+374,
yycrank+495,	yysvec+10,	yyvstop+376,
yycrank+498,	yysvec+10,	yyvstop+378,
yycrank+499,	yysvec+10,	yyvstop+380,
yycrank+501,	yysvec+10,	yyvstop+382,
yycrank+502,	yysvec+10,	yyvstop+384,
yycrank+513,	yysvec+10,	yyvstop+386,
yycrank+507,	yysvec+10,	yyvstop+388,
yycrank+514,	yysvec+10,	yyvstop+390,
yycrank+517,	yysvec+10,	yyvstop+392,
yycrank+512,	yysvec+10,	yyvstop+394,
yycrank+516,	yysvec+10,	yyvstop+397,
yycrank+520,	yysvec+10,	yyvstop+399,
yycrank+521,	yysvec+10,	yyvstop+401,
yycrank+522,	yysvec+10,	yyvstop+403,
yycrank+524,	yysvec+10,	yyvstop+405,
yycrank+526,	yysvec+10,	yyvstop+407,
yycrank+528,	yysvec+10,	yyvstop+409,
yycrank+530,	yysvec+10,	yyvstop+411,
yycrank+532,	yysvec+10,	yyvstop+413,
yycrank+534,	yysvec+10,	yyvstop+415,
yycrank+535,	yysvec+10,	yyvstop+417,
yycrank+538,	yysvec+10,	yyvstop+419,
yycrank+539,	yysvec+10,	yyvstop+421,
yycrank+541,	yysvec+10,	yyvstop+424,
yycrank+546,	yysvec+10,	yyvstop+427,
yycrank+543,	yysvec+10,	yyvstop+429,
yycrank+547,	yysvec+10,	yyvstop+431,
yycrank+549,	yysvec+10,	yyvstop+433,
yycrank+550,	yysvec+10,	yyvstop+435,
yycrank+551,	yysvec+10,	yyvstop+437,
yycrank+552,	yysvec+10,	yyvstop+439,
yycrank+553,	yysvec+10,	yyvstop+441,
yycrank+556,	yysvec+10,	yyvstop+444,
yycrank+558,	yysvec+10,	yyvstop+446,
yycrank+561,	yysvec+10,	yyvstop+448,
yycrank+562,	yysvec+10,	yyvstop+450,
yycrank+563,	yysvec+10,	yyvstop+452,
yycrank+571,	yysvec+10,	yyvstop+454,
yycrank+564,	yysvec+10,	yyvstop+456,
yycrank+565,	yysvec+10,	yyvstop+458,
yycrank+568,	yysvec+10,	yyvstop+460,
yycrank+572,	yysvec+10,	yyvstop+462,
yycrank+576,	yysvec+10,	yyvstop+465,
yycrank+575,	yysvec+10,	yyvstop+467,
yycrank+574,	yysvec+10,	yyvstop+469,
yycrank+577,	yysvec+10,	yyvstop+471,
yycrank+578,	yysvec+10,	yyvstop+473,
yycrank+579,	yysvec+10,	yyvstop+475,
yycrank+586,	yysvec+10,	yyvstop+478,
yycrank+587,	yysvec+10,	yyvstop+480,
yycrank+583,	yysvec+10,	yyvstop+482,
yycrank+584,	yysvec+10,	yyvstop+484,
yycrank+594,	yysvec+10,	yyvstop+487,
yycrank+591,	yysvec+10,	yyvstop+489,
yycrank+593,	yysvec+10,	yyvstop+491,
yycrank+598,	yysvec+10,	yyvstop+493,
yycrank+607,	yysvec+10,	yyvstop+496,
yycrank+601,	yysvec+10,	yyvstop+498,
yycrank+602,	yysvec+10,	yyvstop+500,
yycrank+606,	yysvec+10,	yyvstop+503,
yycrank+610,	yysvec+10,	yyvstop+506,
yycrank+611,	yysvec+10,	yyvstop+508,
yycrank+614,	yysvec+10,	yyvstop+510,
yycrank+613,	yysvec+10,	yyvstop+512,
yycrank+615,	yysvec+10,	yyvstop+514,
yycrank+616,	yysvec+10,	yyvstop+516,
yycrank+617,	yysvec+10,	yyvstop+518,
yycrank+618,	yysvec+10,	yyvstop+520,
yycrank+619,	yysvec+10,	yyvstop+522,
yycrank+622,	yysvec+10,	yyvstop+524,
yycrank+623,	yysvec+10,	yyvstop+526,
yycrank+620,	yysvec+10,	yyvstop+528,
yycrank+624,	yysvec+10,	yyvstop+530,
yycrank+627,	yysvec+10,	yyvstop+533,
yycrank+629,	yysvec+10,	yyvstop+536,
yycrank+632,	yysvec+10,	yyvstop+538,
yycrank+634,	yysvec+10,	yyvstop+540,
yycrank+636,	yysvec+10,	yyvstop+543,
yycrank+642,	yysvec+10,	yyvstop+545,
yycrank+650,	yysvec+10,	yyvstop+547,
yycrank+651,	yysvec+10,	yyvstop+549,
yycrank+635,	yysvec+10,	yyvstop+551,
yycrank+640,	yysvec+10,	yyvstop+553,
yycrank+657,	yysvec+10,	yyvstop+555,
yycrank+641,	yysvec+10,	yyvstop+557,
yycrank+647,	yysvec+10,	yyvstop+559,
yycrank+656,	yysvec+10,	yyvstop+561,
yycrank+662,	yysvec+10,	yyvstop+563,
yycrank+658,	yysvec+10,	yyvstop+565,
yycrank+665,	yysvec+10,	yyvstop+567,
yycrank+667,	yysvec+10,	yyvstop+569,
yycrank+666,	yysvec+10,	yyvstop+571,
yycrank+669,	yysvec+10,	yyvstop+573,
yycrank+670,	yysvec+10,	yyvstop+575,
yycrank+671,	yysvec+10,	yyvstop+577,
yycrank+673,	yysvec+10,	yyvstop+579,
yycrank+677,	yysvec+10,	yyvstop+581,
yycrank+678,	yysvec+10,	yyvstop+583,
yycrank+680,	yysvec+10,	yyvstop+585,
yycrank+682,	yysvec+10,	yyvstop+587,
yycrank+679,	yysvec+10,	yyvstop+589,
yycrank+685,	yysvec+10,	yyvstop+591,
yycrank+687,	yysvec+10,	yyvstop+593,
yycrank+688,	yysvec+10,	yyvstop+595,
yycrank+689,	yysvec+10,	yyvstop+598,
yycrank+690,	yysvec+10,	yyvstop+600,
yycrank+691,	yysvec+10,	yyvstop+603,
yycrank+692,	yysvec+10,	yyvstop+606,
yycrank+694,	yysvec+10,	yyvstop+608,
yycrank+695,	yysvec+10,	yyvstop+610,
yycrank+696,	yysvec+10,	yyvstop+613,
yycrank+699,	yysvec+10,	yyvstop+615,
yycrank+700,	yysvec+10,	yyvstop+617,
yycrank+702,	yysvec+10,	yyvstop+620,
yycrank+703,	yysvec+10,	yyvstop+622,
yycrank+704,	yysvec+10,	yyvstop+624,
yycrank+705,	yysvec+10,	yyvstop+626,
yycrank+708,	yysvec+10,	yyvstop+629,
yycrank+711,	yysvec+10,	yyvstop+631,
yycrank+706,	yysvec+10,	yyvstop+633,
yycrank+712,	yysvec+10,	yyvstop+635,
yycrank+713,	yysvec+10,	yyvstop+637,
yycrank+715,	yysvec+10,	yyvstop+639,
yycrank+717,	yysvec+10,	yyvstop+641,
yycrank+716,	yysvec+10,	yyvstop+643,
yycrank+719,	yysvec+10,	yyvstop+645,
yycrank+726,	yysvec+10,	yyvstop+648,
yycrank+725,	yysvec+10,	yyvstop+650,
yycrank+729,	yysvec+10,	yyvstop+652,
yycrank+730,	yysvec+10,	yyvstop+655,
yycrank+731,	yysvec+10,	yyvstop+657,
yycrank+733,	yysvec+10,	yyvstop+659,
yycrank+738,	yysvec+10,	yyvstop+661,
yycrank+736,	yysvec+10,	yyvstop+663,
yycrank+739,	yysvec+10,	yyvstop+665,
yycrank+742,	yysvec+10,	yyvstop+667,
yycrank+743,	yysvec+10,	yyvstop+669,
yycrank+740,	yysvec+10,	yyvstop+671,
yycrank+741,	yysvec+10,	yyvstop+674,
yycrank+744,	yysvec+10,	yyvstop+676,
yycrank+750,	yysvec+10,	yyvstop+679,
yycrank+753,	yysvec+10,	yyvstop+682,
yycrank+754,	yysvec+10,	yyvstop+684,
yycrank+756,	yysvec+10,	yyvstop+687,
yycrank+757,	yysvec+10,	yyvstop+689,
yycrank+758,	yysvec+10,	yyvstop+692,
yycrank+759,	yysvec+10,	yyvstop+694,
yycrank+760,	yysvec+10,	yyvstop+696,
yycrank+763,	yysvec+10,	yyvstop+698,
yycrank+767,	yysvec+10,	yyvstop+700,
yycrank+769,	yysvec+10,	yyvstop+703,
yycrank+772,	yysvec+10,	yyvstop+705,
yycrank+774,	yysvec+10,	yyvstop+708,
yycrank+775,	yysvec+10,	yyvstop+710,
yycrank+773,	yysvec+10,	yyvstop+712,
yycrank+778,	yysvec+10,	yyvstop+714,
yycrank+779,	yysvec+10,	yyvstop+716,
yycrank+780,	yysvec+10,	yyvstop+718,
yycrank+781,	yysvec+10,	yyvstop+720,
yycrank+785,	yysvec+10,	yyvstop+722,
yycrank+782,	yysvec+10,	yyvstop+724,
yycrank+788,	yysvec+10,	yyvstop+726,
yycrank+789,	yysvec+10,	yyvstop+729,
yycrank+790,	yysvec+10,	yyvstop+732,
yycrank+792,	yysvec+10,	yyvstop+734,
yycrank+793,	yysvec+10,	yyvstop+736,
yycrank+794,	yysvec+10,	yyvstop+738,
yycrank+797,	yysvec+10,	yyvstop+741,
yycrank+795,	yysvec+10,	yyvstop+743,
yycrank+798,	yysvec+10,	yyvstop+746,
yycrank+802,	yysvec+10,	yyvstop+749,
yycrank+799,	yysvec+10,	yyvstop+752,
yycrank+800,	yysvec+10,	yyvstop+755,
yycrank+803,	yysvec+10,	yyvstop+758,
yycrank+804,	yysvec+10,	yyvstop+761,
yycrank+805,	yysvec+10,	yyvstop+763,
yycrank+807,	yysvec+10,	yyvstop+766,
yycrank+808,	yysvec+10,	yyvstop+769,
yycrank+809,	yysvec+10,	yyvstop+771,
0,	0,	0};
struct yywork *yytop = yycrank+924;
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  ,
011 ,01  ,'"' ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,'+' ,01  ,'+' ,01  ,01  ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,'A' ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,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};
/*	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,"unsigned 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);
	}
