/[svn]/linuxsampler/trunk/src/network/lscpparser.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpparser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 53 by schoenebeck, Mon Apr 26 17:15:51 2004 UTC revision 1200 by iliev, Thu May 24 14:04:18 2007 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.875a.  */  /* A Bison parser, made by GNU Bison 2.3.  */
2    
3  /* Skeleton parser for Yacc-like parsing with Bison,  /* Skeleton implementation for Bison's Yacc-like parsers in C
4     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.  
5       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6       Free Software Foundation, Inc.
7    
8     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 15  Line 17 
17    
18     You should have received a copy of the GNU General Public License     You should have received a copy of the GNU General Public License
19     along with this program; if not, write to the Free Software     along with this program; if not, write to the Free Software
20     Foundation, Inc., 59 Temple Place - Suite 330,     Foundation, Inc., 51 Franklin Street, Fifth Floor,
21     Boston, MA 02111-1307, USA.  */     Boston, MA 02110-1301, USA.  */
22    
23    /* As a special exception, you may create a larger work that contains
24       part or all of the Bison parser skeleton and distribute that work
25       under terms of your choice, so long as that work isn't itself a
26       parser generator using the skeleton or a modified version thereof
27       as a parser skeleton.  Alternatively, if you modify or redistribute
28       the parser skeleton itself, you may (at your option) remove this
29       special exception, which will cause the skeleton and the resulting
30       Bison output files to be licensed under the GNU General Public
31       License without this special exception.
32    
33  /* As a special exception, when this file is copied by Bison into a     This special exception was added by the Free Software Foundation in
34     Bison output file, you may use that output file without restriction.     version 2.2 of Bison.  */
    This special exception was added by the Free Software Foundation  
    in version 1.24 of Bison.  */  
35    
36  /* Written by Richard Stallman by simplifying the original so called  /* C LALR(1) parser skeleton written by Richard Stallman, by
37     ``semantic'' parser.  */     simplifying the original so-called "semantic" parser.  */
38    
39  /* All symbols defined below should begin with yy or YY, to avoid  /* All symbols defined below should begin with yy or YY, to avoid
40     infringing on user name space.  This should be done even for local     infringing on user name space.  This should be done even for local
# Line 36  Line 46 
46  /* Identify Bison output.  */  /* Identify Bison output.  */
47  #define YYBISON 1  #define YYBISON 1
48    
49    /* Bison version.  */
50    #define YYBISON_VERSION "2.3"
51    
52  /* Skeleton name.  */  /* Skeleton name.  */
53  #define YYSKELETON_NAME "yacc.c"  #define YYSKELETON_NAME "yacc.c"
54    
# Line 47  Line 60 
60    
61    
62    
 /* Tokens.  */  
 #ifndef YYTOKENTYPE  
 # define YYTOKENTYPE  
    /* Put the tokens into the symbol table, so that GDB and other debuggers  
       know about them.  */  
    enum yytokentype {  
      CHAR = 258,  
      DOTNUM = 259,  
      NUMBER = 260,  
      SP = 261,  
      LF = 262,  
      CR = 263,  
      ADD = 264,  
      GET = 265,  
      LOAD = 266,  
      REMOVE = 267,  
      SET = 268,  
      SUBSCRIBE = 269,  
      UNSUBSCRIBE = 270,  
      RESET = 271,  
      QUIT = 272,  
      CHANNEL = 273,  
      NOTIFICATION = 274,  
      AVAILABLE_ENGINES = 275,  
      CHANNELS = 276,  
      INFO = 277,  
      BUFFER_FILL = 278,  
      STREAM_COUNT = 279,  
      VOICE_COUNT = 280,  
      INSTRUMENT = 281,  
      ENGINE = 282,  
      AUDIO_OUTPUT_CHANNEL = 283,  
      AUDIO_OUTPUT_TYPE = 284,  
      MIDI_INPUT_PORT = 285,  
      MIDI_INPUT_CHANNEL = 286,  
      MIDI_INPUT_TYPE = 287,  
      VOLUME = 288,  
      BYTES = 289,  
      PERCENTAGE = 290,  
      ALSA = 291,  
      JACK = 292  
    };  
 #endif  
 #define CHAR 258  
 #define DOTNUM 259  
 #define NUMBER 260  
 #define SP 261  
 #define LF 262  
 #define CR 263  
 #define ADD 264  
 #define GET 265  
 #define LOAD 266  
 #define REMOVE 267  
 #define SET 268  
 #define SUBSCRIBE 269  
 #define UNSUBSCRIBE 270  
 #define RESET 271  
 #define QUIT 272  
 #define CHANNEL 273  
 #define NOTIFICATION 274  
 #define AVAILABLE_ENGINES 275  
 #define CHANNELS 276  
 #define INFO 277  
 #define BUFFER_FILL 278  
 #define STREAM_COUNT 279  
 #define VOICE_COUNT 280  
 #define INSTRUMENT 281  
 #define ENGINE 282  
 #define AUDIO_OUTPUT_CHANNEL 283  
 #define AUDIO_OUTPUT_TYPE 284  
 #define MIDI_INPUT_PORT 285  
 #define MIDI_INPUT_CHANNEL 286  
 #define MIDI_INPUT_TYPE 287  
 #define VOLUME 288  
 #define BYTES 289  
 #define PERCENTAGE 290  
 #define ALSA 291  
 #define JACK 292  
63    
64    
65    
66    
67  /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
68  #line 23 "lscp.y"  #line 31 "lscp.y"
69    
70    
71  #include "lscpparser.h"  #include "lscpparser.h"
72  #include "lscpserver.h"  #include "lscpserver.h"
73    #include "lscpevent.h"
 // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call  
 #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner  
74    
75  // to save us typing work in the rules action definitions  // to save us typing work in the rules action definitions
76  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
77    
78  // clears input buffer and restarts scanner.  // clears input buffer
79  void restart(yyparse_param_t* pparam, int& yychar);  void restart(yyparse_param_t* pparam, int& yychar);
80  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
81    
 // external reference to the main scanner function yylex()  
 extern YY_DECL;  
   
 // external reference to restart the lex scanner  
 extern void yyrestart(FILE* input_file, yyscan_t yyscanner);  
   
82  // we provide our own version of yyerror() so we don't have to link against the yacc library  // we provide our own version of yyerror() so we don't have to link against the yacc library
83  void yyerror(const char* s);  void yyerror(const char* s);
84    
85    static char buf[1024]; // input buffer to feed the parser with new characters
86    static int bytes = 0;  // current number of characters in the input buffer
87    static int ptr   = 0;  // current position in the input buffer
88    
89    // external reference to the function which actually reads from the socket
90    extern int GetLSCPCommand( void *buf, int max_size);
91    
92    // custom scanner function which reads from the socket
93    int yylex(YYSTYPE* yylval) {
94        // check if we have to read new characters
95        if (ptr >= bytes) {
96            bytes = GetLSCPCommand(buf, 1023);
97            ptr   = 0;
98            if (bytes < 0) {
99                bytes = 0;
100                return 0;
101            }
102        }
103        return (int) buf[ptr++];
104    }
105    
106    
107    
108  /* Enabling traces.  */  /* Enabling traces.  */
# Line 170  void yyerror(const char* s); Line 118  void yyerror(const char* s);
118  # define YYERROR_VERBOSE 0  # define YYERROR_VERBOSE 0
119  #endif  #endif
120    
121  #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)  /* Enabling the token table.  */
122    #ifndef YYTOKEN_TABLE
123    # define YYTOKEN_TABLE 0
124    #endif
125    
126    #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
127  typedef int YYSTYPE;  typedef int YYSTYPE;
128  # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
129  # define YYSTYPE_IS_DECLARED 1  # define YYSTYPE_IS_DECLARED 1
# Line 182  typedef int YYSTYPE; Line 135  typedef int YYSTYPE;
135  /* Copy the second part of user declarations.  */  /* Copy the second part of user declarations.  */
136    
137    
138  /* Line 214 of yacc.c.  */  /* Line 216 of yacc.c.  */
139  #line 187 "y.tab.c"  #line 140 "y.tab.c"
140    
141  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #ifdef short
142    # undef short
143    #endif
144    
145  /* The parser invokes alloca or malloc; define the necessary symbols.  */  #ifdef YYTYPE_UINT8
146    typedef YYTYPE_UINT8 yytype_uint8;
147    #else
148    typedef unsigned char yytype_uint8;
149    #endif
150    
151  # if YYSTACK_USE_ALLOCA  #ifdef YYTYPE_INT8
152  #  define YYSTACK_ALLOC alloca  typedef YYTYPE_INT8 yytype_int8;
153    #elif (defined __STDC__ || defined __C99__FUNC__ \
154         || defined __cplusplus || defined _MSC_VER)
155    typedef signed char yytype_int8;
156    #else
157    typedef short int yytype_int8;
158    #endif
159    
160    #ifdef YYTYPE_UINT16
161    typedef YYTYPE_UINT16 yytype_uint16;
162    #else
163    typedef unsigned short int yytype_uint16;
164    #endif
165    
166    #ifdef YYTYPE_INT16
167    typedef YYTYPE_INT16 yytype_int16;
168    #else
169    typedef short int yytype_int16;
170    #endif
171    
172    #ifndef YYSIZE_T
173    # ifdef __SIZE_TYPE__
174    #  define YYSIZE_T __SIZE_TYPE__
175    # elif defined size_t
176    #  define YYSIZE_T size_t
177    # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
178         || defined __cplusplus || defined _MSC_VER)
179    #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
180    #  define YYSIZE_T size_t
181  # else  # else
182  #  ifndef YYSTACK_USE_ALLOCA  #  define YYSIZE_T unsigned int
183  #   if defined (alloca) || defined (_ALLOCA_H)  # endif
184  #    define YYSTACK_ALLOC alloca  #endif
185    
186    #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
187    
188    #ifndef YY_
189    # if YYENABLE_NLS
190    #  if ENABLE_NLS
191    #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
192    #   define YY_(msgid) dgettext ("bison-runtime", msgid)
193    #  endif
194    # endif
195    # ifndef YY_
196    #  define YY_(msgid) msgid
197    # endif
198    #endif
199    
200    /* Suppress unused-variable warnings by "using" E.  */
201    #if ! defined lint || defined __GNUC__
202    # define YYUSE(e) ((void) (e))
203    #else
204    # define YYUSE(e) /* empty */
205    #endif
206    
207    /* Identity function, used to suppress warnings about constant conditions.  */
208    #ifndef lint
209    # define YYID(n) (n)
210    #else
211    #if (defined __STDC__ || defined __C99__FUNC__ \
212         || defined __cplusplus || defined _MSC_VER)
213    static int
214    YYID (int i)
215    #else
216    static int
217    YYID (i)
218        int i;
219    #endif
220    {
221      return i;
222    }
223    #endif
224    
225    #if ! defined yyoverflow || YYERROR_VERBOSE
226    
227    /* The parser invokes alloca or malloc; define the necessary symbols.  */
228    
229    # ifdef YYSTACK_USE_ALLOCA
230    #  if YYSTACK_USE_ALLOCA
231    #   ifdef __GNUC__
232    #    define YYSTACK_ALLOC __builtin_alloca
233    #   elif defined __BUILTIN_VA_ARG_INCR
234    #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
235    #   elif defined _AIX
236    #    define YYSTACK_ALLOC __alloca
237    #   elif defined _MSC_VER
238    #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
239    #    define alloca _alloca
240  #   else  #   else
241  #    ifdef __GNUC__  #    define YYSTACK_ALLOC alloca
242  #     define YYSTACK_ALLOC __builtin_alloca  #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
243         || defined __cplusplus || defined _MSC_VER)
244    #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
245    #     ifndef _STDLIB_H
246    #      define _STDLIB_H 1
247    #     endif
248  #    endif  #    endif
249  #   endif  #   endif
250  #  endif  #  endif
251  # endif  # endif
252    
253  # ifdef YYSTACK_ALLOC  # ifdef YYSTACK_ALLOC
254     /* Pacify GCC's `empty if-body' warning. */     /* Pacify GCC's `empty if-body' warning.  */
255  #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)  #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
256    #  ifndef YYSTACK_ALLOC_MAXIMUM
257        /* The OS might guarantee only one guard page at the bottom of the stack,
258           and a page size can be as small as 4096 bytes.  So we cannot safely
259           invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
260           to allow for a few compiler-allocated temporary stack slots.  */
261    #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
262    #  endif
263  # else  # else
264  #  if defined (__STDC__) || defined (__cplusplus)  #  define YYSTACK_ALLOC YYMALLOC
265    #  define YYSTACK_FREE YYFREE
266    #  ifndef YYSTACK_ALLOC_MAXIMUM
267    #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
268    #  endif
269    #  if (defined __cplusplus && ! defined _STDLIB_H \
270           && ! ((defined YYMALLOC || defined malloc) \
271                 && (defined YYFREE || defined free)))
272  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
273  #   define YYSIZE_T size_t  #   ifndef _STDLIB_H
274    #    define _STDLIB_H 1
275    #   endif
276    #  endif
277    #  ifndef YYMALLOC
278    #   define YYMALLOC malloc
279    #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
280         || defined __cplusplus || defined _MSC_VER)
281    void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
282    #   endif
283    #  endif
284    #  ifndef YYFREE
285    #   define YYFREE free
286    #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
287         || defined __cplusplus || defined _MSC_VER)
288    void free (void *); /* INFRINGES ON USER NAME SPACE */
289    #   endif
290  #  endif  #  endif
 #  define YYSTACK_ALLOC malloc  
 #  define YYSTACK_FREE free  
291  # endif  # endif
292  #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */  #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
293    
294    
295  #if (! defined (yyoverflow) \  #if (! defined yyoverflow \
296       && (! defined (__cplusplus) \       && (! defined __cplusplus \
297           || (YYSTYPE_IS_TRIVIAL)))           || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
298    
299  /* A type that is properly aligned for any stack member.  */  /* A type that is properly aligned for any stack member.  */
300  union yyalloc  union yyalloc
301  {  {
302    short yyss;    yytype_int16 yyss;
303    YYSTYPE yyvs;    YYSTYPE yyvs;
304    };    };
305    
# Line 234  union yyalloc Line 309  union yyalloc
309  /* The size of an array large to enough to hold all stacks, each with  /* The size of an array large to enough to hold all stacks, each with
310     N elements.  */     N elements.  */
311  # define YYSTACK_BYTES(N) \  # define YYSTACK_BYTES(N) \
312       ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
313        + YYSTACK_GAP_MAXIMUM)        + YYSTACK_GAP_MAXIMUM)
314    
315  /* Copy COUNT objects from FROM to TO.  The source and destination do  /* Copy COUNT objects from FROM to TO.  The source and destination do
316     not overlap.  */     not overlap.  */
317  # ifndef YYCOPY  # ifndef YYCOPY
318  #  if 1 < __GNUC__  #  if defined __GNUC__ && 1 < __GNUC__
319  #   define YYCOPY(To, From, Count) \  #   define YYCOPY(To, From, Count) \
320        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
321  #  else  #  else
322  #   define YYCOPY(To, From, Count)              \  #   define YYCOPY(To, From, Count)              \
323        do                                        \        do                                        \
324          {                                       \          {                                       \
325            register YYSIZE_T yyi;                \            YYSIZE_T yyi;                         \
326            for (yyi = 0; yyi < (Count); yyi++)   \            for (yyi = 0; yyi < (Count); yyi++)   \
327              (To)[yyi] = (From)[yyi];            \              (To)[yyi] = (From)[yyi];            \
328          }                                       \          }                                       \
329        while (0)        while (YYID (0))
330  #  endif  #  endif
331  # endif  # endif
332    
# Line 269  union yyalloc Line 344  union yyalloc
344          yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \          yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
345          yyptr += yynewbytes / sizeof (*yyptr);                          \          yyptr += yynewbytes / sizeof (*yyptr);                          \
346        }                                                                 \        }                                                                 \
347      while (0)      while (YYID (0))
   
 #endif  
348    
 #if defined (__STDC__) || defined (__cplusplus)  
    typedef signed char yysigned_char;  
 #else  
    typedef short yysigned_char;  
349  #endif  #endif
350    
351  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state.  */
352  #define YYFINAL  22  #define YYFINAL  52
353  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
354  #define YYLAST   123  #define YYLAST   5505
355    
356  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals.  */
357  #define YYNTOKENS  38  #define YYNTOKENS  227
358  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals.  */
359  #define YYNNTS  24  #define YYNNTS  168
360  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules.  */
361  #define YYNRULES  56  #define YYNRULES  611
362  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states.  */
363  #define YYNSTATES  136  #define YYNSTATES  2074
364    
365  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
366  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
367  #define YYMAXUTOK   292  #define YYMAXUTOK   257
368    
369  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
370    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
371    
372  /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
373  static const unsigned char yytranslate[] =  static const yytype_uint8 yytranslate[] =
374  {  {
375         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
376         225,     2,     2,   226,     2,     2,     2,     2,     2,     2,
377         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
378         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,   224,    71,   223,     3,    72,    73,    74,   222,
379         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        75,    76,    77,     7,     5,     8,     6,    78,     9,    10,
380         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        11,    12,    13,    14,    15,    16,    17,    18,    79,    80,
381         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        81,     4,    82,    83,    84,    19,    20,    21,    22,    23,
382         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
383         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
384         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        44,    85,    86,    87,    88,    89,     2,    45,    46,    47,
385         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
386         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
387         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        68,    69,    70,    90,    91,    92,    93,     2,    94,    95,
388         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
389         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
390         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
391         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
392         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
393         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
394         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
395         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
396         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
397         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
398         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
399         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
400         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       216,   217,   218,   219,   220,   221,     1,     2
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,  
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,  
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,  
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,  
       35,    36,    37  
401  };  };
402    
403  #if YYDEBUG  #if YYDEBUG
404  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
405     YYRHS.  */     YYRHS.  */
406  static const unsigned char yyprhs[] =  static const yytype_uint16 yyprhs[] =
407  {  {
408         0,     0,     3,     5,     9,    14,    15,    17,    19,    23,         0,     0,     3,     6,    10,    11,    13,    15,    17,    19,
409        27,    31,    37,    43,    49,    55,    61,    63,    65,    67,        22,    25,    28,    31,    35,    39,    43,    47,    51,    55,
410        73,    81,    87,    93,    99,   103,   107,   113,   119,   125,        59,    63,    67,    71,    75,    79,    83,    87,    91,    95,
411       131,   137,   143,   145,   147,   153,   157,   159,   161,   163,        99,   101,   103,   105,   109,   119,   127,   135,   145,   151,
412       165,   167,   169,   171,   173,   175,   177,   179,   181,   183,       159,   161,   165,   167,   169,   171,   173,   175,   177,   179,
413       185,   189,   191,   193,   196,   199,   201       181,   183,   185,   187,   189,   191,   193,   195,   197,   199,
414         201,   203,   205,   207,   209,   211,   213,   215,   217,   219,
415         221,   223,   225,   227,   229,   231,   233,   235,   237,   239,
416         241,   243,   245,   247,   249,   251,   253,   255,   257,   274,
417         293,   312,   333,   341,   345,   349,   353,   359,   363,   367,
418         369,   371,   377,   385,   395,   397,   403,   411,   421,   423,
419         425,   431,   437,   445,   455,   463,   473,   475,   481,   489,
420         495,   501,   507,   511,   513,   515,   519,   523,   533,   535,
421         541,   545,   553,   559,   563,   569,   575,   579,   585,   591,
422         593,   601,   611,   619,   629,   633,   641,   651,   663,   673,
423         683,   691,   699,   707,   715,   719,   723,   729,   733,   739,
424         743,   749,   757,   761,   765,   769,   777,   783,   791,   797,
425         803,   809,   815,   821,   825,   829,   835,   839,   843,   849,
426         857,   863,   873,   879,   885,   891,   897,   903,   909,   915,
427         921,   927,   933,   934,   937,   941,   947,   949,   951,   953,
428         955,   957,   959,   961,   963,   967,   971,   973,   977,   983,
429         987,   993,   997,  1003,  1011,  1015,  1017,  1019,  1021,  1023,
430        1025,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
431        1045,  1047,  1049,  1051,  1053,  1055,  1057,  1059,  1061,  1063,
432        1065,  1067,  1069,  1073,  1075,  1077,  1079,  1081,  1085,  1091,
433        1093,  1095,  1097,  1099,  1101,  1103,  1105,  1107,  1110,  1114,
434        1119,  1124,  1126,  1129,  1131,  1133,  1135,  1137,  1139,  1141,
435        1143,  1145,  1147,  1149,  1151,  1154,  1157,  1160,  1163,  1166,
436        1169,  1172,  1175,  1178,  1180,  1182,  1184,  1186,  1188,  1190,
437        1192,  1194,  1196,  1198,  1200,  1202,  1204,  1206,  1208,  1210,
438        1212,  1214,  1216,  1218,  1220,  1222,  1224,  1226,  1228,  1230,
439        1232,  1234,  1236,  1238,  1240,  1242,  1244,  1246,  1248,  1250,
440        1252,  1254,  1256,  1258,  1260,  1262,  1264,  1266,  1268,  1270,
441        1272,  1274,  1276,  1278,  1280,  1282,  1284,  1286,  1288,  1290,
442        1292,  1294,  1296,  1298,  1300,  1302,  1304,  1306,  1308,  1310,
443        1312,  1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,
444        1332,  1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,
445        1352,  1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,
446        1372,  1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,
447        1392,  1394,  1396,  1398,  1400,  1402,  1404,  1406,  1408,  1410,
448        1412,  1414,  1416,  1418,  1420,  1422,  1424,  1426,  1428,  1430,
449        1432,  1434,  1436,  1438,  1440,  1442,  1444,  1446,  1448,  1450,
450        1452,  1454,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,
451        1472,  1474,  1476,  1478,  1480,  1482,  1484,  1486,  1488,  1490,
452        1492,  1494,  1496,  1498,  1500,  1502,  1504,  1506,  1508,  1510,
453        1512,  1514,  1516,  1518,  1520,  1522,  1524,  1526,  1528,  1530,
454        1532,  1534,  1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,
455        1552,  1554,  1556,  1558,  1560,  1562,  1564,  1566,  1568,  1570,
456        1572,  1574,  1576,  1578,  1580,  1582,  1584,  1586,  1588,  1590,
457        1592,  1594,  1596,  1598,  1600,  1602,  1604,  1606,  1608,  1610,
458        1612,  1614,  1616,  1618,  1620,  1623,  1626,  1630,  1634,  1636,
459        1638,  1640,  1644,  1648,  1652,  1658,  1664,  1669,  1674,  1679,
460        1686,  1694,  1699,  1704,  1708,  1713,  1721,  1731,  1738,  1742,
461        1752,  1764,  1772,  1790,  1821,  1830,  1835,  1861,  1886,  1910,
462        1933,  1959,  1984,  2006,  2027,  2057,  2086,  2106,  2125,  2149,
463        2163,  2176,  2190,  2203,  2215,  2228,  2240,  2258,  2280,  2292,
464        2303,  2310,  2320,  2335,  2346,  2376,  2397,  2417,  2447,  2467,
465        2498,  2519,  2537,  2566,  2594,  2620,  2639,  2657,  2685,  2701,
466        2718,  2738,  2759,  2777,  2793,  2812,  2828,  2839,  2855,  2863,
467        2872,  2896,  2922,  2937,  2951,  2970,  2982,  2988,  2993,  3003,
468        3017,  3024,  3031,  3037,  3042,  3047,  3053,  3064,  3070,  3084,
469        3089,  3094
470  };  };
471    
472  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
473  static const yysigned_char yyrhs[] =  static const yytype_int16 yyrhs[] =
474  {  {
475        39,     0,    -1,    40,    -1,    39,     7,    40,    -1,    39,       228,     0,    -1,   229,   292,    -1,   229,   293,   292,    -1,
476         8,     7,    40,    -1,    -1,    41,    -1,     1,    -1,     9,        -1,   230,    -1,   231,    -1,     1,    -1,     3,    -1,   230,
477         6,    18,    -1,    10,     6,    42,    -1,    11,     6,    43,         3,    -1,   230,   291,    -1,   230,   287,    -1,   230,   283,
478        -1,    12,     6,    18,     6,    51,    -1,    13,     6,    18,        -1,   294,   291,   232,    -1,   296,   291,   235,    -1,   297,
479         6,    44,    -1,    14,     6,    19,     6,    53,    -1,    15,       291,   236,    -1,   295,   291,   238,    -1,   302,   291,   240,
480         6,    19,     6,    56,    -1,    16,     6,    18,     6,    51,        -1,   303,   291,   246,    -1,   304,   291,   252,    -1,   305,
481        -1,    17,    -1,    20,    -1,    21,    -1,    18,     6,    22,       291,   247,    -1,   310,   291,   237,    -1,   311,   291,   239,
482         6,    51,    -1,    18,     6,    23,     6,    45,     6,    51,        -1,   312,   291,   233,    -1,   313,   291,   234,    -1,   390,
483        -1,    18,     6,    24,     6,    51,    -1,    18,     6,    25,       291,   241,    -1,   298,   291,   242,    -1,   299,   291,   243,
484         6,    51,    -1,    27,     6,    22,     6,    57,    -1,    26,        -1,   300,   291,   244,    -1,   301,   291,   245,    -1,   390,
485         6,    46,    -1,    27,     6,    47,    -1,    28,     6,    51,        -1,   394,    -1,   314,    -1,   373,   291,   271,    -1,   375,
486         6,    54,    -1,    29,     6,    51,     6,    48,    -1,    30,       291,   309,   291,   281,   291,   271,   291,   271,    -1,   375,
487         6,    51,     6,    58,    -1,    31,     6,    51,     6,    55,       291,   281,   291,   271,   291,   271,    -1,   375,   291,   309,
488        -1,    32,     6,    51,     6,    49,    -1,    33,     6,    51,       291,   271,   291,   271,    -1,   375,   291,   309,   291,   271,
489         6,    50,    -1,    34,    -1,    35,    -1,    59,     6,    52,       291,   271,   291,   268,    -1,   375,   291,   271,   291,   271,
490         6,    51,    -1,    57,     6,    51,    -1,    36,    -1,    37,        -1,   375,   291,   271,   291,   271,   291,   268,    -1,   363,
491        -1,    36,    -1,     4,    -1,     5,    -1,     5,    -1,     5,        -1,   363,   291,   274,    -1,   319,    -1,   320,    -1,   321,
492        -1,     5,    -1,     5,    -1,     5,    -1,    60,    -1,    61,        -1,   322,    -1,   332,    -1,   338,    -1,   337,    -1,   336,
493        -1,    60,    -1,    60,    -1,    59,     6,    60,    -1,    61,        -1,   333,    -1,   334,    -1,   335,    -1,   323,    -1,   324,
494        -1,     5,    -1,    60,    61,    -1,    60,     5,    -1,     3,        -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,   329,
495        -1,    61,     3,    -1        -1,   330,    -1,   331,    -1,   391,    -1,   339,    -1,   341,
496          -1,   319,    -1,   320,    -1,   321,    -1,   322,    -1,   332,
497          -1,   338,    -1,   337,    -1,   336,    -1,   333,    -1,   334,
498          -1,   335,    -1,   323,    -1,   324,    -1,   325,    -1,   326,
499          -1,   327,    -1,   328,    -1,   329,    -1,   330,    -1,   331,
500          -1,   391,    -1,   339,    -1,   341,    -1,   361,   291,   249,
501         262,   291,   263,   291,   264,   291,   270,   291,   273,   291,
502         268,   291,   266,    -1,   361,   291,   249,   262,   291,   263,
503         291,   264,   291,   270,   291,   273,   291,   268,   291,   266,
504         291,   255,    -1,   361,   291,   249,   262,   291,   263,   291,
505         264,   291,   270,   291,   273,   291,   268,   291,   266,   291,
506         275,    -1,   361,   291,   249,   262,   291,   263,   291,   264,
507         291,   270,   291,   273,   291,   268,   291,   266,   291,   255,
508         291,   275,    -1,   361,   291,   262,   291,   263,   291,   264,
509          -1,   314,   291,   267,    -1,   363,   291,   262,    -1,   363,
510         291,   306,    -1,   373,   291,   379,   291,   271,    -1,   373,
511         291,   271,    -1,   376,   291,   271,    -1,   315,    -1,   355,
512          -1,   365,   291,   318,   291,   283,    -1,   360,   291,   318,
513         291,   283,   291,   283,    -1,   360,   291,   318,   291,   283,
514         291,   283,   291,   250,    -1,   316,    -1,   351,   291,   318,
515         291,   283,    -1,   350,   291,   318,   291,   283,   291,   283,
516          -1,   350,   291,   318,   291,   283,   291,   283,   291,   250,
517          -1,   348,    -1,   358,    -1,   349,   291,   318,   291,   287,
518          -1,   359,   291,   318,   291,   287,    -1,   366,   291,   318,
519         291,   287,   291,   287,    -1,   357,   291,   318,   291,   287,
520         291,   287,   291,   283,    -1,   353,   291,   318,   291,   287,
521         291,   287,    -1,   352,   291,   318,   291,   287,   291,   287,
522         291,   283,    -1,   317,    -1,   314,   291,   318,   291,   267,
523          -1,   314,   291,   336,   291,   251,   291,   267,    -1,   314,
524         291,   337,   291,   267,    -1,   314,   291,   338,   291,   267,
525          -1,   343,   291,   318,   291,   270,    -1,   383,   291,   318,
526          -1,   339,    -1,   340,    -1,   362,   291,   262,    -1,   362,
527         291,   306,    -1,   361,   291,   318,   291,   262,   291,   263,
528         291,   264,    -1,   364,    -1,   363,   291,   318,   291,   262,
529          -1,   372,   291,   267,    -1,   371,   291,   318,   291,   267,
530         291,   269,    -1,   374,   291,   381,   291,   271,    -1,   374,
531         291,   271,    -1,   373,   291,   318,   291,   271,    -1,   375,
532         291,   381,   291,   271,    -1,   375,   291,   271,    -1,   376,
533         291,   318,   291,   271,    -1,   377,   291,   318,   291,   287,
534          -1,   384,    -1,   347,   291,   287,   291,   283,     4,   277,
535          -1,   352,   291,   287,   291,   287,   291,   283,     4,   277,
536          -1,   356,   291,   287,   291,   283,     4,   277,    -1,   357,
537         291,   287,   291,   287,   291,   283,     4,   277,    -1,   314,
538         291,   248,    -1,   363,   291,   392,   291,   262,   291,   274,
539          -1,   371,   291,   392,   291,   267,   291,   269,   291,   276,
540          -1,   371,   291,   353,   291,   267,   291,   269,   291,   257,
541         291,   257,    -1,   371,   291,   370,   291,   267,   291,   269,
542         291,   265,    -1,   371,   291,   385,   291,   267,   291,   269,
543         291,   266,    -1,   373,   291,   392,   291,   271,   291,   272,
544          -1,   373,   291,   378,   291,   271,   291,   290,    -1,   376,
545         291,   392,   291,   271,   291,   272,    -1,   376,   291,   378,
546         291,   271,   291,   290,    -1,   393,   291,   282,    -1,   384,
547         291,   266,    -1,   349,   291,   283,   291,   250,    -1,   349,
548         291,   283,    -1,   359,   291,   283,   291,   250,    -1,   359,
549         291,   283,    -1,   371,   291,   267,   291,   265,    -1,   371,
550         291,   267,   291,   265,   291,   276,    -1,   314,   291,   267,
551          -1,   362,   291,   262,    -1,   362,   291,   306,    -1,   375,
552         291,   382,   291,   271,   291,   279,    -1,   375,   291,   271,
553         291,   279,    -1,   374,   291,   382,   291,   271,   291,   279,
554          -1,   374,   291,   271,   291,   279,    -1,   373,   291,   271,
555         291,   271,    -1,   376,   291,   271,   291,   271,    -1,   373,
556         291,   271,   291,   271,    -1,   376,   291,   271,   291,   271,
557          -1,   349,   291,   287,    -1,   359,   291,   287,    -1,   371,
558         291,   267,   291,   269,    -1,   342,   291,   253,    -1,   343,
559         291,   254,    -1,   349,   291,   267,   291,   256,    -1,   353,
560         291,   267,   291,   257,   291,   257,    -1,   354,   291,   267,
561         291,   258,    -1,   369,   291,   267,   291,   256,   291,   259,
562         291,   260,    -1,   359,   291,   267,   291,   256,    -1,   366,
563         291,   267,   291,   259,    -1,   367,   291,   267,   291,   260,
564          -1,   368,   291,   267,   291,   261,    -1,   384,   291,   267,
565         291,   266,    -1,   386,   291,   267,   291,   282,    -1,   387,
566         291,   267,   291,   282,    -1,   363,   291,   267,   291,   262,
567          -1,   363,   291,   267,   291,   307,    -1,   363,   291,   267,
568         291,   308,    -1,    -1,   309,   291,    -1,   283,     4,   277,
569          -1,   250,   291,   283,     4,   277,    -1,   388,    -1,   389,
570          -1,   348,    -1,   358,    -1,   317,    -1,   315,    -1,   355,
571          -1,   316,    -1,   362,   291,   262,    -1,   362,   291,   306,
572          -1,   364,    -1,   372,   291,   267,    -1,   374,   291,   381,
573         291,   271,    -1,   374,   291,   271,    -1,   375,   291,   381,
574         291,   271,    -1,   375,   291,   271,    -1,   273,   291,   268,
575         291,   267,    -1,   309,   291,   273,   291,   268,   291,   267,
576          -1,   270,   291,   267,    -1,   344,    -1,   345,    -1,   346,
577          -1,   287,    -1,   287,    -1,   283,    -1,   287,    -1,   287,
578          -1,   306,    -1,   283,    -1,   287,    -1,   287,    -1,   287,
579          -1,   287,    -1,   284,    -1,   287,    -1,   287,    -1,   287,
580          -1,   287,    -1,   283,    -1,   290,    -1,   290,    -1,   290,
581          -1,   290,    -1,   290,    -1,   290,    -1,   278,    -1,   277,
582           5,   278,    -1,   283,    -1,   290,    -1,   287,    -1,   284,
583          -1,   283,     4,   280,    -1,   279,   291,   283,     4,   280,
584          -1,   283,    -1,   290,    -1,   381,    -1,   382,    -1,   380,
585          -1,   287,    -1,   283,    -1,   288,    -1,   283,   288,    -1,
586         285,     6,   285,    -1,     7,   285,     6,   285,    -1,     8,
587         285,     6,   285,    -1,   286,    -1,   285,   286,    -1,     9,
588          -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,    14,
589          -1,    15,    -1,    16,    -1,    17,    -1,    18,    -1,   286,
590          -1,    10,   285,    -1,    11,   285,    -1,    12,   285,    -1,
591          13,   285,    -1,    14,   285,    -1,    15,   285,    -1,    16,
592         285,    -1,    17,   285,    -1,    18,   285,    -1,    19,    -1,
593          20,    -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,
594          25,    -1,    26,    -1,    27,    -1,    28,    -1,    29,    -1,
595          30,    -1,    31,    -1,    32,    -1,    33,    -1,    34,    -1,
596          35,    -1,    36,    -1,    37,    -1,    38,    -1,    39,    -1,
597          40,    -1,    41,    -1,    42,    -1,    43,    -1,    44,    -1,
598          45,    -1,    46,    -1,    47,    -1,    48,    -1,    49,    -1,
599          50,    -1,    51,    -1,    52,    -1,    53,    -1,    54,    -1,
600          55,    -1,    56,    -1,    57,    -1,    58,    -1,    59,    -1,
601          60,    -1,    61,    -1,    62,    -1,    63,    -1,    64,    -1,
602          65,    -1,    66,    -1,    67,    -1,    68,    -1,    69,    -1,
603          70,    -1,     9,    -1,    10,    -1,    11,    -1,    12,    -1,
604          13,    -1,    14,    -1,    15,    -1,    16,    -1,    17,    -1,
605          18,    -1,    71,    -1,     3,    -1,    72,    -1,    73,    -1,
606          74,    -1,    75,    -1,    76,    -1,    77,    -1,     7,    -1,
607           8,    -1,     6,    -1,     5,    -1,    78,    -1,    79,    -1,
608          80,    -1,    81,    -1,     4,    -1,    82,    -1,    83,    -1,
609          84,    -1,    85,    -1,    86,    -1,    87,    -1,    88,    -1,
610          89,    -1,    90,    -1,    91,    -1,    92,    -1,    93,    -1,
611          94,    -1,    95,    -1,    96,    -1,    97,    -1,    98,    -1,
612          99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,
613         104,    -1,   105,    -1,   106,    -1,   107,    -1,   108,    -1,
614         109,    -1,   110,    -1,   111,    -1,   112,    -1,   113,    -1,
615         114,    -1,   115,    -1,   116,    -1,   117,    -1,   118,    -1,
616         119,    -1,   120,    -1,   121,    -1,   122,    -1,   123,    -1,
617         124,    -1,   125,    -1,   126,    -1,   127,    -1,   128,    -1,
618         129,    -1,   130,    -1,   131,    -1,   132,    -1,   133,    -1,
619         134,    -1,   135,    -1,   136,    -1,   137,    -1,   138,    -1,
620         139,    -1,   140,    -1,   141,    -1,   142,    -1,   143,    -1,
621         144,    -1,   145,    -1,   146,    -1,   147,    -1,   148,    -1,
622         149,    -1,   150,    -1,   151,    -1,   152,    -1,   153,    -1,
623         154,    -1,   155,    -1,   156,    -1,   157,    -1,   158,    -1,
624         159,    -1,   160,    -1,   161,    -1,   162,    -1,   163,    -1,
625         164,    -1,   165,    -1,   166,    -1,   167,    -1,   168,    -1,
626         169,    -1,   170,    -1,   171,    -1,   172,    -1,   173,    -1,
627         174,    -1,   175,    -1,   176,    -1,   177,    -1,   178,    -1,
628         179,    -1,   180,    -1,   181,    -1,   182,    -1,   183,    -1,
629         184,    -1,   185,    -1,   186,    -1,   187,    -1,   188,    -1,
630         189,    -1,   190,    -1,   191,    -1,   192,    -1,   193,    -1,
631         194,    -1,   195,    -1,   196,    -1,   197,    -1,   198,    -1,
632         199,    -1,   200,    -1,   201,    -1,   202,    -1,   203,    -1,
633         204,    -1,   205,    -1,   206,    -1,   207,    -1,   208,    -1,
634         209,    -1,   210,    -1,   211,    -1,   212,    -1,   213,    -1,
635         214,    -1,   215,    -1,   216,    -1,   217,    -1,   218,    -1,
636         219,    -1,   220,    -1,   221,    -1,   291,    -1,   283,    -1,
637         289,   291,    -1,   289,   283,    -1,   222,   289,   222,    -1,
638         223,   289,   223,    -1,   224,    -1,   225,    -1,   226,    -1,
639          19,    22,    22,    -1,    25,    23,    38,    -1,    31,    19,
640          34,    -1,    39,    32,    31,    19,    34,    -1,    21,    30,
641          23,    19,    36,    -1,    24,    27,    32,    22,    -1,    31,
642          33,    40,    23,    -1,    21,    33,    34,    43,    -1,    21,
643          36,    23,    19,    38,    23,    -1,    22,    23,    37,    38,
644          36,    33,    43,    -1,    30,    27,    37,    38,    -1,    30,
645          33,    19,    22,    -1,    19,    30,    30,    -1,    32,    33,
646          32,    23,    -1,    22,    23,    24,    19,    39,    30,    38,
647          -1,    32,    33,    32,    89,    31,    33,    22,    19,    30,
648          -1,    36,    23,    31,    33,    40,    23,    -1,    37,    23,
649          38,    -1,    37,    39,    20,    37,    21,    36,    27,    20,
650          23,    -1,    39,    32,    37,    39,    20,    37,    21,    36,
651          27,    20,    23,    -1,    21,    26,    19,    32,    32,    23,
652          30,    -1,    19,    40,    19,    27,    30,    19,    20,    30,
653          23,    89,    23,    32,    25,    27,    32,    23,    37,    -1,
654          19,    40,    19,    27,    30,    19,    20,    30,    23,    89,
655          19,    39,    22,    27,    33,    89,    33,    39,    38,    34,
656          39,    38,    89,    22,    36,    27,    40,    23,    36,    37,
657          -1,    21,    26,    19,    32,    32,    23,    30,    37,    -1,
658          27,    32,    24,    33,    -1,    19,    39,    22,    27,    33,
659          89,    33,    39,    38,    34,    39,    38,    89,    22,    23,
660          40,    27,    21,    23,    89,    21,    33,    39,    32,    38,
661          -1,    19,    39,    22,    27,    33,    89,    33,    39,    38,
662          34,    39,    38,    89,    22,    23,    40,    27,    21,    23,
663          89,    27,    32,    24,    33,    -1,    31,    27,    22,    27,
664          89,    27,    32,    34,    39,    38,    89,    22,    23,    40,
665          27,    21,    23,    89,    21,    33,    39,    32,    38,    -1,
666          31,    27,    22,    27,    89,    27,    32,    34,    39,    38,
667          89,    22,    23,    40,    27,    21,    23,    89,    27,    32,
668          24,    33,    -1,    31,    27,    22,    27,    89,    27,    32,
669          37,    38,    36,    39,    31,    23,    32,    38,    89,    31,
670          19,    34,    89,    21,    33,    39,    32,    38,    -1,    31,
671          27,    22,    27,    89,    27,    32,    37,    38,    36,    39,
672          31,    23,    32,    38,    89,    31,    19,    34,    89,    27,
673          32,    24,    33,    -1,    31,    27,    22,    27,    89,    27,
674          32,    37,    38,    36,    39,    31,    23,    32,    38,    89,
675          21,    33,    39,    32,    38,    -1,    31,    27,    22,    27,
676          89,    27,    32,    37,    38,    36,    39,    31,    23,    32,
677          38,    89,    27,    32,    24,    33,    -1,    22,    20,    89,
678          27,    32,    37,    38,    36,    39,    31,    23,    32,    38,
679          89,    22,    27,    36,    23,    21,    38,    33,    36,    43,
680          89,    21,    33,    39,    32,    38,    -1,    22,    20,    89,
681          27,    32,    37,    38,    36,    39,    31,    23,    32,    38,
682          89,    22,    27,    36,    23,    21,    38,    33,    36,    43,
683          89,    27,    32,    24,    33,    -1,    22,    20,    89,    27,
684          32,    37,    38,    36,    39,    31,    23,    32,    38,    89,
685          21,    33,    39,    32,    38,    -1,    22,    20,    89,    27,
686          32,    37,    38,    36,    39,    31,    23,    32,    38,    89,
687          27,    32,    24,    33,    -1,    22,    20,    89,    27,    32,
688          37,    38,    36,    39,    31,    23,    32,    38,    37,    89,
689          28,    33,    20,    89,    27,    32,    24,    33,    -1,    21,
690          26,    19,    32,    32,    23,    30,    89,    21,    33,    39,
691          32,    38,    -1,    21,    26,    19,    32,    32,    23,    30,
692          89,    27,    32,    24,    33,    -1,    24,    42,    89,    37,
693          23,    32,    22,    89,    21,    33,    39,    32,    38,    -1,
694          24,    42,    89,    37,    23,    32,    22,    89,    27,    32,
695          24,    33,    -1,    20,    39,    24,    24,    23,    36,    89,
696          24,    27,    30,    30,    -1,    37,    38,    36,    23,    19,
697          31,    89,    21,    33,    39,    32,    38,    -1,    40,    33,
698          27,    21,    23,    89,    21,    33,    39,    32,    38,    -1,
699          38,    33,    38,    19,    30,    89,    40,    33,    27,    21,
700          23,    89,    21,    33,    39,    32,    38,    -1,    38,    33,
701          38,    19,    30,    89,    40,    33,    27,    21,    23,    89,
702          21,    33,    39,    32,    38,    89,    31,    19,    42,    -1,
703          25,    30,    33,    20,    19,    30,    89,    27,    32,    24,
704          33,    -1,    27,    32,    37,    38,    36,    39,    31,    23,
705          32,    38,    -1,    23,    32,    25,    27,    32,    23,    -1,
706          33,    32,    89,    22,    23,    31,    19,    32,    22,    -1,
707          33,    32,    89,    22,    23,    31,    19,    32,    22,    89,
708          26,    33,    30,    22,    -1,    34,    23,    36,    37,    27,
709          37,    38,    23,    32,    38,    -1,    19,    39,    22,    27,
710          33,    89,    33,    39,    38,    34,    39,    38,    89,    22,
711          23,    40,    27,    21,    23,    89,    34,    19,    36,    19,
712          31,    23,    38,    23,    36,    -1,    19,    39,    22,    27,
713          33,    89,    33,    39,    38,    34,    39,    38,    89,    22,
714          23,    40,    27,    21,    23,    37,    -1,    19,    39,    22,
715          27,    33,    89,    33,    39,    38,    34,    39,    38,    89,
716          22,    23,    40,    27,    21,    23,    -1,    19,    39,    22,
717          27,    33,    89,    33,    39,    38,    34,    39,    38,    89,
718          22,    36,    27,    40,    23,    36,    89,    34,    19,    36,
719          19,    31,    23,    38,    23,    36,    -1,    19,    39,    22,
720          27,    33,    89,    33,    39,    38,    34,    39,    38,    89,
721          22,    36,    27,    40,    23,    36,    -1,    19,    39,    22,
722          27,    33,    89,    33,    39,    38,    34,    39,    38,    89,
723          21,    26,    19,    32,    32,    23,    30,    89,    34,    19,
724          36,    19,    31,    23,    38,    23,    36,    -1,    19,    39,
725          22,    27,    33,    89,    33,    39,    38,    34,    39,    38,
726          89,    21,    26,    19,    32,    32,    23,    30,    -1,    19,
727          39,    22,    27,    33,    89,    33,    39,    38,    34,    39,
728          38,    89,    38,    43,    34,    23,    -1,    19,    40,    19,
729          27,    30,    19,    20,    30,    23,    89,    31,    27,    22,
730          27,    89,    27,    32,    34,    39,    38,    89,    22,    36,
731          27,    40,    23,    36,    37,    -1,    31,    27,    22,    27,
732          89,    27,    32,    34,    39,    38,    89,    22,    23,    40,
733          27,    21,    23,    89,    34,    19,    36,    19,    31,    23,
734          38,    23,    36,    -1,    31,    27,    22,    27,    89,    27,
735          32,    34,    39,    38,    89,    34,    33,    36,    38,    89,
736          34,    19,    36,    19,    31,    23,    38,    23,    36,    -1,
737          31,    27,    22,    27,    89,    27,    32,    34,    39,    38,
738          89,    22,    23,    40,    27,    21,    23,    37,    -1,    31,
739          27,    22,    27,    89,    27,    32,    34,    39,    38,    89,
740          22,    23,    40,    27,    21,    23,    -1,    31,    27,    22,
741          27,    89,    27,    32,    34,    39,    38,    89,    22,    36,
742          27,    40,    23,    36,    89,    34,    19,    36,    19,    31,
743          23,    38,    23,    36,    -1,    31,    27,    22,    27,    89,
744          27,    32,    37,    38,    36,    39,    31,    23,    32,    38,
745          -1,    31,    27,    22,    27,    89,    27,    32,    37,    38,
746          36,    39,    31,    23,    32,    38,    37,    -1,    31,    27,
747          22,    27,    89,    27,    32,    37,    38,    36,    39,    31,
748          23,    32,    38,    89,    31,    19,    34,    -1,    31,    27,
749          22,    27,    89,    27,    32,    37,    38,    36,    39,    31,
750          23,    32,    38,    89,    31,    19,    34,    37,    -1,    31,
751          27,    22,    27,    89,    27,    32,    34,    39,    38,    89,
752          22,    36,    27,    40,    23,    36,    -1,    31,    27,    22,
753          27,    89,    27,    32,    34,    39,    38,    89,    34,    33,
754          36,    38,    -1,    31,    27,    22,    27,    89,    27,    32,
755          34,    39,    38,    89,    21,    26,    19,    32,    32,    23,
756          30,    -1,    31,    27,    22,    27,    89,    27,    32,    34,
757          39,    38,    89,    38,    43,    34,    23,    -1,    31,    27,
758          22,    27,    89,    27,    32,    34,    39,    38,    -1,    31,
759          27,    22,    27,    89,    21,    33,    32,    38,    36,    33,
760          30,    30,    23,    36,    -1,    24,    42,    89,    37,    23,
761          32,    22,    -1,    24,    42,    89,    37,    23,    32,    22,
762          37,    -1,    22,    20,    89,    27,    32,    37,    38,    36,
763          39,    31,    23,    32,    38,    89,    22,    27,    36,    23,
764          21,    38,    33,    36,    43,    -1,    22,    20,    89,    27,
765          32,    37,    38,    36,    39,    31,    23,    32,    38,    89,
766          22,    27,    36,    23,    21,    38,    33,    36,    27,    23,
767          37,    -1,    22,    20,    89,    27,    32,    37,    38,    36,
768          39,    31,    23,    32,    38,    37,    -1,    22,    20,    89,
769          27,    32,    37,    38,    36,    39,    31,    23,    32,    38,
770          -1,    22,    20,    89,    27,    32,    37,    38,    36,    39,
771          31,    23,    32,    38,    37,    89,    28,    33,    20,    -1,
772          22,    23,    37,    21,    36,    27,    34,    38,    27,    33,
773          32,    -1,    24,    33,    36,    21,    23,    -1,    24,    30,
774          19,    38,    -1,    36,    23,    21,    39,    36,    37,    27,
775          40,    23,    -1,    32,    33,    32,    89,    36,    23,    21,
776          39,    36,    37,    27,    40,    23,    -1,    37,    23,    36,
777          40,    23,    36,    -1,    40,    33,    30,    39,    31,    23,
778          -1,    30,    23,    40,    23,    30,    -1,    31,    39,    38,
779          23,    -1,    37,    33,    30,    33,    -1,    20,    43,    38,
780          23,    37,    -1,    34,    23,    36,    21,    23,    32,    38,
781          19,    25,    23,    -1,    36,    23,    37,    23,    38,    -1,
782          31,    27,    37,    21,    23,    30,    30,    19,    32,    23,
783          33,    39,    37,    -1,    32,    19,    31,    23,    -1,    23,
784          21,    26,    33,    -1,    35,    39,    27,    38,    -1
785  };  };
786    
787  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
788  static const unsigned char yyrline[] =  static const yytype_uint16 yyrline[] =
789  {  {
790         0,    77,    77,    78,    79,    82,    83,    84,    87,    88,         0,    97,    97,    98,   101,   102,   103,   104,   107,   108,
791        89,    90,    91,    92,    93,    94,    95,    98,    99,   100,       109,   110,   111,   114,   115,   116,   117,   118,   119,   120,
792       101,   102,   103,   104,   107,   108,   111,   112,   113,   114,       121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
793       115,   116,   119,   120,   123,   126,   129,   130,   133,   136,       131,   132,   135,   136,   137,   138,   139,   140,   141,   142,
794       137,   140,   143,   146,   149,   152,   155,   158,   161,   164,       143,   144,   147,   148,   149,   150,   151,   152,   153,   154,
795       165,   168,   169,   170,   171,   174,   175       155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
796         165,   166,   167,   168,   169,   172,   173,   174,   175,   176,
797         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
798         187,   188,   189,   190,   191,   192,   193,   194,   197,   198,
799         199,   200,   203,   206,   207,   208,   209,   210,   211,   214,
800         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
801         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
802         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
803         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
804         257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
805         267,   268,   269,   270,   271,   272,   275,   276,   277,   278,
806         279,   280,   283,   286,   287,   290,   291,   292,   293,   296,
807         297,   300,   301,   304,   305,   306,   309,   310,   313,   314,
808         315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
809         325,   326,   329,   330,   333,   334,   337,   338,   341,   342,
810         343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
811         353,   354,   357,   358,   361,   364,   365,   366,   369,   372,
812         375,   378,   381,   382,   385,   388,   391,   394,   397,   400,
813         401,   404,   407,   410,   413,   416,   419,   422,   425,   428,
814         431,   434,   435,   438,   439,   440,   441,   444,   445,   448,
815         449,   452,   453,   454,   462,   463,   466,   467,   470,   471,
816         472,   476,   477,   480,   481,   482,   483,   484,   485,   486,
817         487,   488,   489,   492,   493,   494,   495,   496,   497,   498,
818         499,   500,   501,   503,   503,   503,   503,   503,   503,   503,
819         503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
820         503,   503,   503,   503,   503,   503,   503,   503,   503,   504,
821         504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
822         504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
823         504,   504,   504,   504,   504,   505,   505,   505,   505,   505,
824         505,   505,   505,   505,   505,   506,   506,   506,   506,   506,
825         506,   506,   506,   506,   506,   506,   506,   506,   507,   507,
826         507,   507,   507,   507,   507,   508,   508,   508,   508,   508,
827         509,   509,   509,   509,   510,   510,   510,   511,   511,   511,
828         512,   512,   512,   513,   513,   513,   514,   514,   514,   515,
829         515,   515,   516,   516,   516,   517,   517,   517,   518,   518,
830         518,   519,   519,   519,   520,   520,   520,   521,   521,   521,
831         522,   522,   522,   523,   523,   523,   524,   524,   524,   525,
832         525,   525,   526,   526,   526,   527,   527,   527,   528,   528,
833         528,   529,   529,   529,   530,   530,   530,   531,   531,   531,
834         532,   532,   532,   533,   533,   533,   534,   534,   534,   535,
835         535,   535,   536,   536,   536,   537,   537,   537,   538,   538,
836         538,   539,   539,   539,   540,   540,   540,   541,   541,   541,
837         542,   542,   542,   543,   543,   543,   544,   544,   544,   545,
838         545,   545,   546,   546,   546,   547,   547,   547,   548,   548,
839         548,   549,   549,   549,   550,   550,   550,   551,   551,   551,
840         552,   552,   555,   556,   557,   558,   561,   562,   568,   571,
841         574,   577,   580,   583,   586,   589,   592,   595,   598,   601,
842         604,   607,   610,   613,   616,   619,   622,   625,   628,   631,
843         634,   637,   640,   643,   646,   649,   652,   655,   658,   661,
844         664,   667,   670,   673,   676,   679,   682,   685,   688,   691,
845         694,   697,   700,   703,   706,   709,   712,   715,   718,   721,
846         724,   727,   730,   733,   736,   739,   742,   745,   748,   751,
847         754,   757,   760,   763,   766,   769,   772,   775,   778,   781,
848         784,   787,   790,   793,   796,   799,   802,   805,   808,   811,
849         814,   817,   820,   823,   826,   829,   832,   835,   838,   841,
850         844,   847,   850,   853,   856,   859,   862,   865,   868,   871,
851         874,   877
852  };  };
853  #endif  #endif
854    
855  #if YYDEBUG || YYERROR_VERBOSE  #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
856  /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.  /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
857     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
858  static const char *const yytname[] =  static const char *const yytname[] =
859  {  {
860    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "'#'", "'='", "','", "'.'", "'+'", "'-'",
861    "CR", "ADD", "GET", "LOAD", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE",    "'0'", "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'",
862    "RESET", "QUIT", "CHANNEL", "NOTIFICATION", "AVAILABLE_ENGINES",    "'A'", "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'",
863    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "'K'", "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'",
864    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",    "'U'", "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", "'b'", "'c'", "'d'",
865    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "'e'", "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'",
866    "BYTES", "PERCENTAGE", "ALSA", "JACK", "$accept", "input", "line",    "'o'", "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'",
867    "command", "get_instruction", "load_instruction",    "'y'", "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "'/'",
868    "set_chan_instruction", "buffer_size_type", "load_instr_args",    "':'", "';'", "'<'", "'>'", "'?'", "'@'", "'['", "'\\\\'", "']'", "'^'",
869    "load_engine_args", "audio_output_type", "midi_input_type", "volume",    "'_'", "'{'", "'|'", "'}'", "'~'", "'\\200'", "'\\201'", "'\\202'",
870    "sampler_channel", "instrument_index", "udp_port",    "'\\203'", "'\\204'", "'\\205'", "'\\206'", "'\\207'", "'\\210'",
871    "audio_output_channel", "midi_input_channel", "session_id",    "'\\211'", "'\\212'", "'\\213'", "'\\214'", "'\\215'", "'\\216'",
872    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "'\\217'", "'\\220'", "'\\221'", "'\\222'", "'\\223'", "'\\224'",
873    "string", 0    "'\\225'", "'\\226'", "'\\227'", "'\\230'", "'\\231'", "'\\232'",
874      "'\\233'", "'\\234'", "'\\235'", "'\\236'", "'\\237'", "'\\240'",
875      "'\\241'", "'\\242'", "'\\243'", "'\\244'", "'\\245'", "'\\246'",
876      "'\\247'", "'\\250'", "'\\251'", "'\\252'", "'\\253'", "'\\254'",
877      "'\\255'", "'\\256'", "'\\257'", "'\\260'", "'\\261'", "'\\262'",
878      "'\\263'", "'\\264'", "'\\265'", "'\\266'", "'\\267'", "'\\270'",
879      "'\\271'", "'\\272'", "'\\273'", "'\\274'", "'\\275'", "'\\276'",
880      "'\\277'", "'\\300'", "'\\301'", "'\\302'", "'\\303'", "'\\304'",
881      "'\\305'", "'\\306'", "'\\307'", "'\\310'", "'\\311'", "'\\312'",
882      "'\\313'", "'\\314'", "'\\315'", "'\\316'", "'\\317'", "'\\320'",
883      "'\\321'", "'\\322'", "'\\323'", "'\\324'", "'\\325'", "'\\326'",
884      "'\\327'", "'\\330'", "'\\331'", "'\\332'", "'\\333'", "'\\334'",
885      "'\\335'", "'\\336'", "'\\337'", "'\\340'", "'\\341'", "'\\342'",
886      "'\\343'", "'\\344'", "'\\345'", "'\\346'", "'\\347'", "'\\350'",
887      "'\\351'", "'\\352'", "'\\353'", "'\\354'", "'\\355'", "'\\356'",
888      "'\\357'", "'\\360'", "'\\361'", "'\\362'", "'\\363'", "'\\364'",
889      "'\\365'", "'\\366'", "'\\367'", "'\\370'", "'\\371'", "'\\372'",
890      "'\\373'", "'\\374'", "'\\375'", "'\\376'", "'\\377'", "'''", "'\"'",
891      "' '", "'\\n'", "'\\r'", "$accept", "input", "line", "comment",
892      "command", "add_instruction", "subscribe_event", "unsubscribe_event",
893      "map_instruction", "unmap_instruction", "remove_instruction",
894      "get_instruction", "set_instruction", "create_instruction",
895      "reset_instruction", "clear_instruction", "find_instruction",
896      "move_instruction", "copy_instruction", "destroy_instruction",
897      "load_instruction", "set_chan_instruction", "modal_arg", "key_val_list",
898      "buffer_size_type", "list_instruction", "load_instr_args",
899      "load_engine_args", "instr_load_mode", "device_index",
900      "audio_channel_index", "audio_output_type_name", "midi_input_port_index",
901      "midi_input_channel_index", "midi_input_type_name", "midi_map",
902      "midi_bank", "midi_prog", "midi_ctrl", "volume_value", "sampler_channel",
903      "instrument_index", "fx_send_id", "engine_name", "pathname", "dirname",
904      "filename", "map_name", "entry_name", "fx_send_name", "param_val_list",
905      "param_val", "query_val_list", "query_val", "scan_mode", "boolean",
906      "string", "dotnum", "digits", "digit", "number", "char", "text",
907      "stringval", "SP", "LF", "CR", "ADD", "GET", "MAP", "UNMAP", "CLEAR",
908      "FIND", "MOVE", "COPY", "CREATE", "DESTROY", "LIST", "LOAD", "ALL",
909      "NONE", "DEFAULT", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE",
910      "UNSUBSCRIBE", "CHANNEL", "AVAILABLE_ENGINES",
911      "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS", "INFO",
912      "AUDIO_OUTPUT_DEVICE_COUNT", "AUDIO_OUTPUT_DEVICE_INFO",
913      "MIDI_INPUT_DEVICE_COUNT", "MIDI_INPUT_DEVICE_INFO",
914      "MIDI_INSTRUMENT_MAP_COUNT", "MIDI_INSTRUMENT_MAP_INFO",
915      "MIDI_INSTRUMENT_COUNT", "MIDI_INSTRUMENT_INFO",
916      "DB_INSTRUMENT_DIRECTORY_COUNT", "DB_INSTRUMENT_DIRECTORY_INFO",
917      "DB_INSTRUMENT_COUNT", "DB_INSTRUMENT_INFO", "DB_INSTRUMENTS_JOB_INFO",
918      "CHANNEL_COUNT", "CHANNEL_INFO", "FX_SEND_COUNT", "FX_SEND_INFO",
919      "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "TOTAL_VOICE_COUNT",
920      "TOTAL_VOICE_COUNT_MAX", "GLOBAL_INFO", "INSTRUMENT", "ENGINE",
921      "ON_DEMAND", "ON_DEMAND_HOLD", "PERSISTENT",
922      "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
923      "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
924      "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
925      "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",
926      "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE_PARAMETER",
927      "MIDI_INPUT_PORT_PARAMETER", "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE",
928      "MIDI_INPUT_DRIVER_PARAMETER", "MIDI_INSTRUMENT", "MIDI_INSTRUMENTS",
929      "MIDI_INSTRUMENT_MAP", "MIDI_INSTRUMENT_MAPS", "MIDI_INPUT_DRIVER",
930      "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT",
931      "MIDI_CONTROLLER", "FX_SEND", "FX_SENDS", "DB_INSTRUMENT_DIRECTORY",
932      "DB_INSTRUMENT_DIRECTORIES", "DB_INSTRUMENTS", "DB_INSTRUMENT",
933      "DB_INSTRUMENTS_JOB", "DESCRIPTION", "FORCE", "FLAT", "RECURSIVE",
934      "NON_RECURSIVE", "SERVER", "VOLUME", "LEVEL", "MUTE", "SOLO", "BYTES",
935      "PERCENTAGE", "RESET", "MISCELLANEOUS", "NAME", "ECHO", "QUIT", 0
936  };  };
937  #endif  #endif
938    
939  # ifdef YYPRINT  # ifdef YYPRINT
940  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
941     token YYLEX-NUM.  */     token YYLEX-NUM.  */
942  static const unsigned short yytoknum[] =  static const yytype_uint16 yytoknum[] =
943  {  {
944         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,    35,    61,    44,    46,    43,    45,    48,
945       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,        49,    50,    51,    52,    53,    54,    55,    56,    57,    65,
946       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
947       285,   286,   287,   288,   289,   290,   291,   292        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
948          86,    87,    88,    89,    90,    97,    98,    99,   100,   101,
949         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
950         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
951         122,    33,    36,    37,    38,    40,    41,    42,    47,    58,
952          59,    60,    62,    63,    64,    91,    92,    93,    94,    95,
953         123,   124,   125,   126,   128,   129,   130,   131,   132,   133,
954         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
955         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
956         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
957         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
958         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
959         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
960         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
961         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
962         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
963         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
964         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
965         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
966         254,   255,    39,    34,    32,    10,    13
967  };  };
968  # endif  # endif
969    
970  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
971  static const unsigned char yyr1[] =  static const yytype_uint16 yyr1[] =
972  {  {
973         0,    38,    39,    39,    39,    40,    40,    40,    41,    41,         0,   227,   228,   228,   229,   229,   229,   229,   230,   230,
974        41,    41,    41,    41,    41,    41,    41,    42,    42,    42,       230,   230,   230,   231,   231,   231,   231,   231,   231,   231,
975        42,    42,    42,    42,    43,    43,    44,    44,    44,    44,       231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
976        44,    44,    45,    45,    46,    47,    48,    48,    49,    50,       231,   231,   232,   232,   232,   232,   232,   232,   232,   232,
977        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,       232,   232,   233,   233,   233,   233,   233,   233,   233,   233,
978        59,    60,    60,    60,    60,    61,    61       233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
979         233,   233,   233,   233,   233,   234,   234,   234,   234,   234,
980         234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
981         234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
982         235,   235,   236,   237,   237,   237,   237,   237,   237,   238,
983         238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
984         238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
985         238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
986         238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
987         239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
988         239,   239,   239,   239,   239,   239,   240,   240,   240,   240,
989         240,   240,   241,   242,   242,   243,   243,   243,   243,   244,
990         244,   245,   245,   246,   246,   246,   247,   247,   248,   248,
991         248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
992         248,   248,   249,   249,   250,   250,   251,   251,   252,   252,
993         252,   252,   252,   252,   252,   252,   252,   252,   252,   252,
994         252,   252,   253,   253,   254,   255,   255,   255,   256,   257,
995         258,   259,   260,   260,   261,   262,   263,   264,   265,   266,
996         266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
997         276,   277,   277,   278,   278,   278,   278,   279,   279,   280,
998         280,   281,   281,   281,   282,   282,   283,   283,   284,   284,
999         284,   285,   285,   286,   286,   286,   286,   286,   286,   286,
1000         286,   286,   286,   287,   287,   287,   287,   287,   287,   287,
1001         287,   287,   287,   288,   288,   288,   288,   288,   288,   288,
1002         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1003         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1004         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1005         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1006         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1007         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1008         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1009         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1010         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1011         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1012         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1013         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1014         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1015         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1016         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1017         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1018         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1019         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1020         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1021         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1022         288,   288,   288,   288,   288,   288,   288,   288,   288,   288,
1023         288,   288,   289,   289,   289,   289,   290,   290,   291,   292,
1024         293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1025         303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1026         313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1027         323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
1028         333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
1029         343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1030         353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1031         363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
1032         373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
1033         383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
1034         393,   394
1035  };  };
1036    
1037  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1038  static const unsigned char yyr2[] =  static const yytype_uint8 yyr2[] =
1039  {  {
1040         0,     2,     1,     3,     4,     0,     1,     1,     3,     3,         0,     2,     2,     3,     0,     1,     1,     1,     1,     2,
1041         3,     5,     5,     5,     5,     5,     1,     1,     1,     5,         2,     2,     2,     3,     3,     3,     3,     3,     3,     3,
1042         7,     5,     5,     5,     3,     3,     5,     5,     5,     5,         3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1043         5,     5,     1,     1,     5,     3,     1,     1,     1,     1,         1,     1,     1,     3,     9,     7,     7,     9,     5,     7,
1044           1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1045           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1046           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1047           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1048           1,     1,     1,     1,     1,     1,     1,     1,    16,    18,
1049          18,    20,     7,     3,     3,     3,     5,     3,     3,     1,
1050           1,     5,     7,     9,     1,     5,     7,     9,     1,     1,
1051           5,     5,     7,     9,     7,     9,     1,     5,     7,     5,
1052           5,     5,     3,     1,     1,     3,     3,     9,     1,     5,
1053           3,     7,     5,     3,     5,     5,     3,     5,     5,     1,
1054           7,     9,     7,     9,     3,     7,     9,    11,     9,     9,
1055           7,     7,     7,     7,     3,     3,     5,     3,     5,     3,
1056           5,     7,     3,     3,     3,     7,     5,     7,     5,     5,
1057           5,     5,     5,     3,     3,     5,     3,     3,     5,     7,
1058           5,     9,     5,     5,     5,     5,     5,     5,     5,     5,
1059           5,     5,     0,     2,     3,     5,     1,     1,     1,     1,
1060           1,     1,     1,     1,     3,     3,     1,     3,     5,     3,
1061           5,     3,     5,     7,     3,     1,     1,     1,     1,     1,
1062           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1063           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1064           1,     1,     3,     1,     1,     1,     1,     3,     5,     1,
1065           1,     1,     1,     1,     1,     1,     1,     2,     3,     4,
1066           4,     1,     2,     1,     1,     1,     1,     1,     1,     1,
1067           1,     1,     1,     1,     2,     2,     2,     2,     2,     2,
1068           2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
1069           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1070           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1071           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1072           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1073           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1074           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1075         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1076         3,     1,     1,     2,     2,     1,     2         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1077           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1078           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1079           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1080           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1081           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1082           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1083           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1084           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1085           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1086           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1087           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1088           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1089           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1090           1,     1,     1,     1,     2,     2,     3,     3,     1,     1,
1091           1,     3,     3,     3,     5,     5,     4,     4,     4,     6,
1092           7,     4,     4,     3,     4,     7,     9,     6,     3,     9,
1093          11,     7,    17,    30,     8,     4,    25,    24,    23,    22,
1094          25,    24,    21,    20,    29,    28,    19,    18,    23,    13,
1095          12,    13,    12,    11,    12,    11,    17,    21,    11,    10,
1096           6,     9,    14,    10,    29,    20,    19,    29,    19,    30,
1097          20,    17,    28,    27,    25,    18,    17,    27,    15,    16,
1098          19,    20,    17,    15,    18,    15,    10,    15,     7,     8,
1099          23,    25,    14,    13,    18,    11,     5,     4,     9,    13,
1100           6,     6,     5,     4,     4,     5,    10,     5,    13,     4,
1101           4,     4
1102  };  };
1103    
1104  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1105     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1106     means the default is an error.  */     means the default is an error.  */
1107  static const unsigned char yydefact[] =  static const yytype_uint16 yydefact[] =
1108  {  {
1109         0,     7,     0,     0,     0,     0,     0,     0,     0,     0,         0,     7,     8,     0,     0,     0,     0,     0,     0,     0,
1110        16,     0,     2,     6,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     5,     6,     0,     0,
1111         0,     0,     1,     0,     0,     8,     0,    17,    18,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1112         9,     0,     0,    10,     0,     0,     0,     0,     0,     3,         0,     0,     0,     0,    30,    31,     0,     0,     0,     0,
1113         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1114         4,     0,     0,     0,     0,     0,    55,    52,    24,     0,         0,     0,     1,   509,   510,     2,     0,     9,   361,   356,
1115        49,    51,    25,     0,    47,    41,    11,     0,     0,     0,       355,   353,   354,   263,   264,   265,   266,   267,   268,   269,
1116         0,     0,     0,    12,    43,    13,    14,    46,    15,     0,       270,   271,   272,   283,   284,   285,   286,   287,   288,   289,
1117         0,     0,     0,     0,     0,    54,    53,    56,     0,     0,       290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1118         0,     0,     0,     0,     0,    19,    32,    33,     0,    21,       300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1119        22,    23,    52,     0,    50,    35,     0,     0,     0,     0,       310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1120         320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
1121         330,   331,   332,   333,   334,   345,   347,   348,   349,   350,
1122         351,   352,   357,   358,   359,   360,   362,   363,   364,   365,
1123         366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
1124         376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1125         386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
1126         396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
1127         406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1128         416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
1129         426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
1130         436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
1131         446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1132         456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1133         466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1134         476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1135         486,   487,   488,   489,   490,   491,   492,   493,   494,   495,
1136         496,   497,   498,   499,   500,   501,   508,    12,   273,    11,
1137         256,    10,     0,     0,     0,     0,     0,     0,     0,     0,
1138           0,     0,     0,     0,     0,     0,     0,     0,     0,   511,
1139           0,     0,     0,     0,     0,   512,     0,     0,   513,     0,
1140           0,     0,     0,   528,     0,     0,     0,     3,   263,   264,
1141         265,   266,   267,   268,   269,   270,   271,   272,   274,   261,
1142         275,   276,   277,   278,   279,   280,   281,   282,   346,   335,
1143         336,   337,   338,   339,   340,   341,   342,   343,   344,   257,
1144           0,     0,     0,    13,    32,    40,     0,     0,     0,     0,
1145           0,     0,     0,     0,     0,     0,     0,    16,     0,    99,
1146         104,   116,   123,   124,     0,   108,     0,     0,     0,     0,
1147           0,   100,     0,   109,     0,     0,     0,     0,     0,   128,
1148           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1149         139,     0,    14,     0,    15,     0,     0,    26,     0,     0,
1150          27,     0,     0,     0,    28,     0,     0,    29,     0,     0,
1151           0,     0,     0,    17,     0,     0,     0,    18,     0,     0,
1152           0,     0,     0,     0,     0,    19,   201,   203,   200,   198,
1153         202,   199,     0,   206,     0,     0,     0,     0,    20,     0,
1154           0,    21,     0,     0,     0,     0,     0,     0,     0,    22,
1155           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1156           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1157           0,    23,    42,    43,    44,    45,    53,    54,    55,    56,
1158          57,    58,    59,    60,    61,    46,    50,    51,    52,    49,
1159          48,    47,    63,    64,    62,    24,    65,    66,    67,    68,
1160          76,    77,    78,    79,    80,    81,    82,    83,    84,    69,
1161          73,    74,    75,    72,    71,    70,    86,    87,    85,    25,
1162           0,     0,   518,     0,     0,   516,   521,   522,   517,   611,
1163           0,     0,     0,     0,     0,   262,     0,     0,     0,     0,
1164           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1165           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1166           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1167           0,     0,     0,     0,     0,     0,   192,     0,     0,     0,
1168           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1169           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1170           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1171           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1172           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1173           0,     0,     0,     0,     0,     0,     0,   515,     0,     0,
1174           0,   607,     0,   514,     0,     0,     0,     0,     0,     0,
1175          41,   238,    33,   235,     0,     0,     0,     0,     0,     0,
1176         253,   251,   252,     0,     0,     0,     0,     0,     0,     0,
1177           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1178           0,     0,     0,     0,     0,     0,     0,     0,   264,   265,
1179         266,   267,   268,   269,   270,   271,   272,     0,   125,   225,
1180         126,     0,     0,     0,     0,   130,   231,     0,   133,     0,
1181         136,     0,     0,     0,   122,     0,     0,     0,     0,     0,
1182           0,   163,   164,     0,     0,     0,     0,     0,     0,     0,
1183           0,     0,     0,     0,     0,     0,     0,   157,   159,     0,
1184         173,   174,     0,     0,     0,     0,     0,   204,   205,   207,
1185         209,     0,   211,     0,     0,   176,     0,   237,     0,   177,
1186           0,   234,    93,    94,    95,     0,    97,     0,    98,     0,
1187           0,     0,     0,     0,     0,   144,     0,     0,     0,     0,
1188           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1189           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1190           0,     0,     0,     0,     0,     0,     0,     0,   155,   229,
1191           0,   261,   230,   154,   255,   254,     0,     0,     0,     0,
1192           0,     0,     0,     0,     0,     0,     0,   162,   519,     0,
1193         527,     0,     0,     0,     0,     0,   503,     0,   502,     0,
1194           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1195           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1196           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1197           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1198           0,     0,     0,     0,   193,     0,     0,     0,     0,     0,
1199           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1200           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1201           0,     0,     0,     0,     0,     0,     0,     0,   610,     0,
1202           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1203           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1204           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1205           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1206           0,     0,     0,     0,     0,     0,     0,     0,   520,     0,
1207           0,     0,     0,     0,   506,   505,   504,   507,     0,     0,
1208           0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
1209           0,     0,     0,     0,     0,     0,   117,     0,     0,     0,
1210         196,   197,   119,   120,   121,   110,     0,   105,     0,     0,
1211           0,   111,     0,     0,   523,   129,   101,     0,     0,   134,
1212         132,   135,   137,   138,     0,     0,     0,     0,   226,     0,
1213           0,     0,   168,     0,     0,   166,     0,     0,   169,   170,
1214         171,   172,     0,     0,     0,   156,     0,   158,   160,   228,
1215         175,   233,     0,     0,     0,     0,   208,   210,     0,     0,
1216         232,     0,   214,     0,    96,     0,     0,     0,     0,     0,
1217           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1218           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1219           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1220           0,     0,     0,   258,     0,     0,     0,     0,     0,     0,
1221           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1222         597,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1223           0,   560,     0,     0,   600,     0,   601,   535,     0,     0,
1224           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1225           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1226           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1227           0,     0,     0,     0,     0,     0,     0,     0,     0,   603,
1228         604,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1229           0,     0,     0,     0,     0,     0,     0,   609,     0,     0,
1230           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1231           0,   259,   260,     0,     0,     0,     0,     0,     0,     0,
1232           0,     0,     0,     0,   529,     0,   531,     0,     0,     0,
1233           0,     0,    39,    35,    36,     0,     0,     0,   531,     0,
1234         588,     0,     0,     0,     0,   118,   106,     0,   114,     0,
1235         102,     0,   112,   131,     0,     0,    92,   227,     0,     0,
1236           0,   247,   249,   250,   167,   165,     0,     0,   588,     0,
1237           0,   353,   354,   194,   241,   243,   246,   245,   244,   161,
1238         240,     0,     0,     0,     0,     0,   212,     0,   596,     0,
1239           0,     0,     0,   178,   218,     0,   219,   180,   220,   182,
1240           0,     0,   189,   190,   191,   183,   221,   184,   222,   223,
1241         185,   224,     0,   186,   187,   188,   140,     0,   142,     0,
1242         145,     0,   602,     0,     0,     0,     0,     0,     0,   151,
1243         150,   236,   153,   152,     0,     0,     0,     0,     0,     0,
1244           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1245           0,     0,     0,     0,     0,   534,     0,   589,     0,     0,
1246           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1247           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1248           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1249           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1250           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1251           0,     0,   530,     0,     0,     0,     0,     0,    37,    34,
1252           0,     0,     0,     0,     0,     0,   605,     0,   107,   115,
1253         113,   103,   127,     0,     0,     0,     0,   248,     0,     0,
1254           0,   195,   242,     0,     0,     0,     0,   213,     0,     0,
1255           0,     0,   179,     0,     0,     0,   141,   143,     0,     0,
1256           0,   148,   149,   146,     0,     0,     0,     0,     0,     0,
1257           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1258           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1259           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1260           0,   559,     0,     0,     0,     0,     0,   524,     0,     0,
1261           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1262           0,     0,     0,     0,     0,     0,     0,     0,     0,   526,
1263           0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
1264           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1265           0,     0,     0,     0,     0,     0,   181,     0,     0,   147,
1266           0,     0,   553,     0,     0,     0,     0,     0,   558,     0,
1267           0,     0,     0,     0,   555,     0,     0,     0,     0,     0,
1268           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1269         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1270        20,    34,    44,    26,    36,    37,    27,    28,    48,    45,         0,     0,   586,     0,     0,     0,     0,     0,     0,   550,
1271        29,    38,    30,    39,    40,    31         0,     0,   552,     0,     0,     0,   554,     0,     0,     0,
1272           0,     0,     0,     0,     0,   593,     0,     0,     0,     0,
1273           0,     0,     0,     0,     0,     0,   593,     0,     0,     0,
1274           0,     0,     0,     0,     0,     0,     0,   525,     0,     0,
1275         595,     0,   549,     0,   551,     0,     0,   608,     0,   592,
1276           0,     0,     0,     0,     0,     0,     0,     0,   592,     0,
1277           0,     0,     0,     0,     0,   606,     0,     0,     0,     0,
1278           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1279           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1280           0,     0,     0,   599,     0,     0,     0,     0,     0,     0,
1281           0,     0,     0,     0,   583,   578,     0,   578,     0,     0,
1282           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1283           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1284           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1285           0,     0,     0,     0,     0,     0,     0,   579,     0,     0,
1286          88,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1287           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1288           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1289         532,     0,     0,     0,   576,   582,     0,     0,   556,     0,
1290           0,     0,   576,     0,     0,     0,     0,     0,     0,     0,
1291           0,     0,   583,   585,   587,     0,     0,     0,     0,     0,
1292           0,     0,     0,     0,   556,     0,     0,     0,     0,     0,
1293           0,     0,   594,     0,   575,     0,     0,     0,     0,     0,
1294           0,    89,    90,   239,   215,   216,   217,     0,     0,     0,
1295           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1296           0,   547,     0,     0,     0,     0,     0,   580,     0,   566,
1297         568,     0,     0,     0,     0,     0,   580,     0,     0,     0,
1298           0,     0,   566,     0,     0,     0,     0,     0,     0,   571,
1299           0,     0,     0,   546,     0,     0,     0,     0,     0,     0,
1300           0,   570,   565,     0,     0,     0,     0,     0,     0,   581,
1301           0,     0,     0,    91,     0,     0,     0,     0,     0,   584,
1302           0,     0,     0,     0,     0,     0,   543,     0,     0,     0,
1303           0,     0,     0,     0,     0,     0,   557,     0,     0,     0,
1304           0,     0,     0,     0,     0,     0,     0,     0,     0,   542,
1305           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1306           0,     0,     0,     0,     0,   570,     0,     0,     0,     0,
1307           0,   539,     0,     0,   590,     0,     0,     0,     0,     0,
1308           0,     0,     0,     0,     0,     0,     0,     0,   548,     0,
1309         538,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1310           0,     0,     0,     0,     0,   537,     0,     0,   541,     0,
1311           0,     0,     0,   591,     0,   574,     0,     0,     0,     0,
1312         536,     0,     0,   540,     0,     0,     0,     0,     0,   561,
1313           0,     0,     0,     0,     0,     0,     0,     0,     0,   577,
1314           0,   563,     0,   573,     0,     0,     0,     0,     0,   572,
1315           0,     0,     0,   545,     0,   567,     0,     0,   564,   544,
1316         569,   533,     0,   562
1317  };  };
1318    
1319  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM].  */
1320  static const short yydefgoto[] =  static const yytype_int16 yydefgoto[] =
1321  {  {
1322        -1,    11,    12,    13,    30,    33,    73,    98,    58,    62,        -1,    14,    15,    16,    17,   353,   481,   505,   402,   404,
1323       126,   132,   135,    66,   103,    75,   123,   130,    76,    63,       451,   367,   459,   423,   529,   407,   410,   414,   417,   427,
1324       127,    59,    60,    61       448,   785,   727,  1055,  1009,   435,   765,   769,  1851,  1303,
1325        1305,  1307,  1315,  1317,  1320,   708,  1037,  1266,  1058,   818,
1326         715,  1069,  1060,   770,   662,  1340,   766,   660,  1852,  1289,
1327        1283,  1284,  1042,  1271,   668,   823,  1285,  1286,   820,   278,
1328         716,   280,   847,   663,  1166,    55,    56,    18,    19,    20,
1329          21,    22,    23,    24,    25,    26,    27,    28,    29,  1319,
1330        1313,  1314,   669,    30,    31,    32,    33,   354,   369,   370,
1331         371,   684,   482,   483,   484,   485,   486,   487,   488,   489,
1332         490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
1333         500,   501,   372,   373,   503,   449,   374,  1854,  1855,  1856,
1334         461,   375,   376,   377,   378,   379,   380,   788,   381,   463,
1335         382,   383,   384,   385,   386,   387,   355,   389,   390,   391,
1336         792,   793,   794,   808,   392,   393,   356,   395,   357,   397,
1337         398,   812,   777,   670,   671,   672,   399,   400,   809,   796,
1338         797,  1010,  1011,    34,   504,   803,   470,    35
1339  };  };
1340    
1341  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1342     STATE-NUM.  */     STATE-NUM.  */
1343  #define YYPACT_NINF -48  #define YYPACT_NINF -1336
1344  static const yysigned_char yypact[] =  static const yytype_int16 yypact[] =
1345  {  {
1346        10,   -48,    -4,     3,    25,    40,    56,    60,    64,    70,        44, -1336, -1336,   110,   317,   138,   158,   188,   106,    81,
1347       -48,    28,   -48,   -48,    16,   -14,   -12,    57,    59,    61,       189,   229,    85,   230,   298,   130,  2405, -1336,    48,    48,
1348        62,    65,   -48,    10,    71,   -48,    73,   -48,   -48,    76,        48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
1349       -48,    79,    80,   -48,    81,    82,    83,    84,    85,   -48,        48,    48,    48,    48,    48, -1336,   296,   311,   302,   325,
1350        10,    20,    72,     0,    89,    88,    26,    90,     0,    88,       336,   354,   360,   369,   412,   447,   400,   465,   125,   496,
1351       -48,    91,    92,    93,    94,    95,   -48,   -48,   -48,    96,       509,   195, -1336, -1336, -1336, -1336,   314, -1336, -1336, -1336,
1352        27,   100,   -48,    98,   100,   -48,   -48,    99,   101,   102,     -1336, -1336, -1336, -1336,   495,   495,   495,   495,   495,   495,
1353       103,   104,   105,   -48,   -48,   -48,   -48,    27,   -48,    88,       495,   495,   495, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1354        30,    88,    88,    89,    58,   -48,   100,   -48,    88,    88,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1355        88,    88,    88,    88,    88,   -48,   -48,   -48,   106,   -48,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1356       -48,   -48,   107,   108,    27,   -48,   109,   110,   111,   112,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1357       113,   114,    88,    88,   116,    31,     0,   117,    87,    69,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1358       -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,    27,   -48,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1359       -48,   -48,   -48,   -48,   -48,   -48     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1360       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1361       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1362       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1363       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1364       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1365       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1366       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1367       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1368       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1369       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1370       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1371       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1372       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1373       -1336, -1336, -1336, -1336, -1336, -1336, -1336,  3291, -1336, -1336,
1374       -1336, -1336,   183,   136,   516,   516,   529,   539,   540,   540,
1375         214,   214,   285,   370,   257,   242,    82,    82,   542, -1336,
1376         545,   523,   546,   530,   547, -1336,   532,   549, -1336,   544,
1377         535,   541,   552, -1336,   543,   553,   537, -1336, -1336, -1336,
1378       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,   495, -1336,
1379         495,   495,   495,   495,   495,   495,   495,   495, -1336, -1336,
1380       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1381         551,   558,   554, -1336, -1336,    48,    48,    48,   403,   556,
1382         559,   561,   548,   557,   562,   565,   568, -1336,    48, -1336,
1383       -1336, -1336, -1336, -1336,    48, -1336,    48,    48,    48,    48,
1384          48, -1336,    48, -1336,    48,    48,    48,    48,    48, -1336,
1385          48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
1386       -1336,   564, -1336,    48, -1336,    48,   567, -1336,    48,   575,
1387       -1336,    48,    48,   583, -1336,    48,    48, -1336,    48,    48,
1388         569,   570,   582, -1336,    48,    48,    48, -1336,    48,    48,
1389          48,   417,   584,   571,   589, -1336, -1336, -1336, -1336, -1336,
1390       -1336, -1336,    48, -1336,    48,    48,    48,   579, -1336,    48,
1391          48, -1336,    48,    48,    48,    48,   578,   597,   595, -1336,
1392          48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
1393          48,   585,   586,   601,   603,   590,   598,   604,   596,   600,
1394         602, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1395       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1396       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1397       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1398       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1399          48,   605, -1336,   608,   611, -1336, -1336, -1336, -1336, -1336,
1400         610,   616,   619,   621,   636, -1336,   638,   576,   637,   318,
1401         318,     7,   642,   639,   647,   593,   667,   613,   645,   657,
1402         656,   669,    72,   673,   673,   673,   673,   673,   673,   673,
1403         673,   673,   673,   406,   673,   673,   673,   673,   506,   673,
1404          31,    31,   673,   673,   673,   682,   676,   506,   687,   406,
1405         622,    12,    12,   625,   318,   318,   318,   318,   688,   626,
1406         694,  3291,  3291,   506,   506,   506,   506,   695,   699,   634,
1407         706,   406,   506,    31,    31,   692,    14,  3291,   506,   406,
1408          17,   318,   708,   709,   712,   144,   506,   506,   506,   506,
1409         707,   147,   228,   228,   461,  3510,   716,   717,   721,   653,
1410         654,   711,   101,   710,   713,   722,   506, -1336,   730,   723,
1411         732, -1336,   724, -1336,   720,   726,   735,   736,  2627,  2627,
1412       -1336, -1336, -1336, -1336,   729,   731,   742,    48,    48,    48,
1413       -1336, -1336, -1336,   739,   740,   737,   741,   761,   752,   763,
1414         755,   781,   765,   773,    48,    48,    48,    48,    48,    48,
1415          48,    48,    48,    48,    48,    48,    48,    48,   495,   495,
1416         495,   495,   495,   495,   495,   495,   495,   776, -1336, -1336,
1417       -1336,    48,    48,    48,    48, -1336, -1336,    48, -1336,    48,
1418       -1336,    48,    48,    48, -1336,   780,   775,   506,    48,    48,
1419         782, -1336, -1336,   783,   778,    48,    48,    48,    48,   785,
1420          48,    48,    48,    48,   786,   777,   788,  2627,  2627,    48,
1421       -1336, -1336,    48,   789,   787,   784,   790, -1336, -1336, -1336,
1422       -1336,    48, -1336,    48,   791, -1336,    48, -1336,    48, -1336,
1423          48,  3291, -1336, -1336, -1336,   792, -1336,    48, -1336,   793,
1424         794,   795,   779,   143,   797, -1336,    48,    48,    48,    48,
1425          48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
1426          48,    48,   804,    48,   798,   801,   799,    48,    48,    48,
1427          48,   805,    48,    48,    48,    48,   495,   495, -1336, -1336,
1428         313,    32, -1336, -1336,  3291, -1336,   811,   808,   807,   813,
1429         806,   821,   815,   823,   822,   827,   826, -1336, -1336,   816,
1430       -1336,   833,   828,   829,   830,   759,  3291,  1961, -1336,  2183,
1431         844,   832,   845,   318,   318,    54,   834,   835,   836,   837,
1432         838,   848,   800,   849,   843,   847,   850,   506,   117,   506,
1433         506,  3291,   506,  3291,  3291,   506,   506,   506,   506,  3291,
1434         506,   846,   506,  3291,   506,   506,   318,   318,   318,   318,
1435         506,   802,   851,    48, -1336,   506,   809,   852,   863,  3291,
1436         318,  3291,   318,   864,   318,   318,   318,   318,   842,   856,
1437         810,  3291,  3291,   506,   506,   870,   865,   857,   817,   318,
1438         318,   868,   506,   318,   506,   871,   318,   875, -1336,   820,
1439         859,   888,   873,   882,   506,   506,   506,   506,   506,   506,
1440         506,   506,   506,   506,   506,   506,  3291,   506,  3291,   506,
1441         883,   506,   891,   876,   893,   506,   506,   506,   506,   880,
1442         318,   318,   318,   318,   449,   485,   495,   885,   896,   889,
1443         890,   897,   906,   839,   903,   908,   900,   910, -1336,   915,
1444         901,   913,   902,   911, -1336,  3291, -1336, -1336,   904,   858,
1445         909,    48,    48,    48,    48,   860,   921,   918,   916,   927,
1446         920,   928,   922,   867,   931,   929, -1336,   917,   940,    48,
1447       -1336, -1336, -1336, -1336, -1336, -1336,  2627,  3291,    48,    48,
1448          48, -1336,  2627,    48, -1336, -1336,  3291,    48,    48, -1336,
1449       -1336, -1336, -1336, -1336,   937,   877,   506,    48, -1336,   938,
1450         930,   881,    48,  3729,    48,    48,    48,   934, -1336, -1336,
1451       -1336, -1336,   884,   942,   952,    48,  3948,    48,    48, -1336,
1452       -1336, -1336,   892,   957,   950,   956, -1336, -1336,   945,    48,
1453       -1336,    48, -1336,   964, -1336,   898,   959,   961,   962,   967,
1454         958,    48,    48,    48,    48,    48,    48,    48,    48,    48,
1455          48,    48,    48,  4167,    48,  4386,    48,   969,    48,   968,
1456         971,   970,    48,    48,    48,    48,   975,    48,    48,    48,
1457          48,   495,   495,   495,   912,   963,   982,   972,   966,   978,
1458         983,   984,   985,   924,   926,   994,   991,   989,   986,   988,
1459       -1336,   279,   987,   506,   318,   318,   318,   992,  1002,   996,
1460         993, -1336,  1005,   997, -1336,   995, -1336, -1336,   998,  1001,
1461         506,  3291,   506,   506,   506,  3291,   506,   506,   506,  1000,
1462        1003,    48,   506,  1006,  1007,  1004,  3291,  2849,  3291,  3291,
1463        1009,  1010,  1011,  1012,  3291,  3070,   318,  1015,  1019,  1028,
1464        1020,  1023,   506,   506,  1033,  1018,  1025,  1026,   974, -1336,
1465       -1336,   506,   506,  3291,   506,   132,   506,   406,  3291,   506,
1466         461,  3510,  3510,  3070,  3291,  3070,  3291, -1336,   318,  1027,
1467        1031,   990,   506,   506,   506,   506,  1022,   318,   318,   318,
1468         318,   495,   495,  1044,  1013,  1034,  1043,  1061,  1014,  1052,
1469        1055,  1016,  1050,  1074, -1336,  1078, -1336,  1063,  1064,  1067,
1470        1081,  1069, -1336, -1336,    48,    48,  1068,  1079,  1073,  1075,
1471        1077,    59,  1082,  1096,  1101, -1336,  2627,    48, -1336,    48,
1472        2627,    48, -1336, -1336,  1086,   506, -1336, -1336,  1088,  1090,
1473        4605, -1336,  3291, -1336,    48,    48,  1093,  1091, -1336,  1097,
1474        4824,   495,   495,  1127, -1336,  3291, -1336, -1336, -1336, -1336,
1475       -1336,  1094,  1073,  1077,   175,  1112, -1336,    48, -1336,  1099,
1476         207,  1053,  1114, -1336, -1336,    48, -1336, -1336,  3291, -1336,
1477        1116,  1111, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1478       -1336,  3291,    48, -1336, -1336, -1336,  1127,  5043,  1127,  5262,
1479       -1336,  1058, -1336,  1128,    48,    48,    48,    48,  1121, -1336,
1480       -1336, -1336, -1336, -1336,  1117,  1126,  1062,  1119,  1070,  1130,
1481         237,  1134,  1137,  1132,  1136,  1138,  1131,  1122,  1149,  1152,
1482        1147,   506,   318,  1141,  1153, -1336,  1142, -1336,  1143,  1145,
1483        1148,  1150,  1161,  3291,  3291,  3291,  3291,   506,  1151,    48,
1484        1154,  1155,  2849,  1156,  1158,  1159,  3070,  3070,  1162,  1160,
1485        1165,  1176,   506,  1178,  1175,  1157,  1185,   506,  1164,  1188,
1486         506,  3070,  3070,  1193,  1194,   506,   506,   461,   318,  1163,
1487        1183,  1203,   290,  1192,   367,  1200,  1195,  1197,  1201,  1204,
1488        1209,  1199, -1336,  1208,  1210,  1167,  1211,  1207, -1336, -1336,
1489        1214,  1102,  1218,  1213,  1216,  1232, -1336,  1222,    48,  3291,
1490        3291,    48, -1336,  1219,  3291,  1220,  1226, -1336,  1227,  1225,
1491        1223,  1127, -1336,  1228,  1230,  1224,  1231, -1336,  1236,  1233,
1492        1234,   491, -1336,  1253,  1251,    48,  1127,  1127,  1237,  1245,
1493          48, -1336, -1336, -1336,  1241,  1246,  1252,  1250,  1254,  1256,
1494        1255,  1258,  1260,  1247,  1257,  1268,  1259,  1271,  1262,  1273,
1495        1261,  1267,  1263,  1278,  1264,   236,  1279,  1215,  1266,  1284,
1496        1270,  1272,    48,  1274,  1286,  1287,  1275,  1235,  1276,  1239,
1497        1277, -1336,  1283,  1240,  1285,  1291,  1292, -1336,   406,  1288,
1498        1294,   506,  1298,  1295,  1282,  1296,  1309,  1313,  1299,  1315,
1499        1304,  1265,  1301,  1308,  1310,  1320,  1306,  1314,  1316, -1336,
1500        1311, -1336,  1307,  1312,  1317,  1323,  1321,   149,  1325,  1269,
1501        1340,  1329,   318,  1330,  1332,  1333,  1324,  1345,  1331,  1348,
1502        1341,  1337,   191,  1342,  1339,  1349, -1336,  1344,  1346, -1336,
1503        1347,  1343, -1336,  1351,  1352,  1354,  1356,  1358, -1336,  1362,
1504        1363,  1350,  1357,  1319, -1336,  1361,  1377,  1378,  1334,  1384,
1505        1388,  1387,  1376,   174,  1391,  1398,  1405,  1402,  1406,    48,
1506        1409,  1390,  1397,  1353,  1413,  1355,  1414,  1415,  1359,  1416,
1507        1407,  1404,  1364,  1403,  1408,  1412,  1418,  1366,  1419, -1336,
1508        1421,  1422, -1336,  1423,  1428,  1424, -1336,  1431,    36,  1430,
1509        1426,   522,  1436,  1437,  1453,    39,  1441,  1455,  1447,  1452,
1510        1461,  1462,  1463,   506,  1464,    40,  1410,  1476,  1460,  1479,
1511        1465,  1470,   524,  1466,  1467,  1469,   131, -1336,  1471,  1474,
1512       -1336,  1486, -1336,    45, -1336,  1472,  1478, -1336,  1480, -1336,
1513        1489,  1477,  1493,  1491,   179,  1485,  1487,  1432,  1433,  1498,
1514        1496,  1484,  1488,  1492,  1490, -1336,  1494,    48,  1495,  1503,
1515        1511,  1509,  1514,  1513,  1504,  1515,  1520,  1517,  1507,  1457,
1516        1521,  1516,  1505,  1468,  1522,  1527,  1473,   278,  1524,  1518,
1517        1519,  1528,  1481, -1336,  1541,  1523,  1534,  1482,  1542,  1540,
1518        1544,  1546,  1547,  1551,  1497,    47,  1537, -1336,   461,  1538,
1519        1549,  1539,  1556,  1545,  1557,    51,  1561,  1548,  1560,  1497,
1520          73,  1563,  1553,  1550,  1566,  1567,  1552,  1565,  1558,  1568,
1521        1562,  1575,  1508,  1569,  1564,  1571,  1572,  1576,  1559,  1573,
1522        1570,  1577,  1578,  1574,  1582,  1579,  1580, -1336,  1581,  1583,
1523          48,  1584,  1586,  1585,  1590,  1595,  1588,  1591,  1597,  1599,
1524        1600,  1555,  1593,  1589,  1605,  1594,  1602,  1598,  1596,  1601,
1525        1608,  1610,   281,  1603,  1611,  1617,  1606,  1618,  1619,  1604,
1526       -1336,  1612,  1620,  1621,  1613,  1587,  1626,  1628,  1592,    25,
1527        1625,  1630, -1336,  1631,  1613,  1635,  1623,  1636,  1607,  1637,
1528        1615,  1627, -1336, -1336, -1336,  1639,  1638,  1629,  1640,  1632,
1529        1609,  1633,  1641,  1643, -1336,  1646,  1634,  1649,  1652,  1642,
1530        1644,  1650, -1336,  1648, -1336,  1645,  1647,  1656,  1660,  1662,
1531        1654,    48, -1336, -1336, -1336, -1336, -1336,  1659,  1669,  1672,
1532        1663,  1676,  1677,  1667,  1670,  1680,  1681,  1682,  1622,  1668,
1533        1686, -1336,   380,  1671,  1684,  1675,  1688, -1336,  1683,  1678,
1534        1651,  1685,  1690,  1691,  1695,  1699,  1687,  1703,  1653,  1694,
1535         318,  1696, -1336,  1678,  1687,  1702,  1655,  1714,  1704, -1336,
1536        1705,  1657,  1710, -1336,  1701,  1712,  1715,  1716,  1717,  1664,
1537        1719,  1666, -1336,  1723,  1720,  1673,  1725,  1713,  1729, -1336,
1538        1721,  1739,  1727, -1336,  1732,  1666,  1733,  1730,  1745, -1336,
1539         384,  1737,  1738,  1731,  1748,  1735, -1336,   414,  1740,  1741,
1540        1755,  1742,  1756,  1746,  1758,  1760, -1336,  1761,  1754,  1749,
1541        1767,  1768,  1759,  1757,  1762,  1764,  1763,  1765,  1769, -1336,
1542        1770,  1772,  1750,  1776,  1771,  1707,  1773,    83,  1774,  1753,
1543        1775,  1777,  1781,  1779,  1780, -1336,  1778,  1786,  1783,  1782,
1544        1784, -1336,  1785,  1788, -1336,  1787,  1794,  1796,  1792,  1797,
1545        1798,  1803,  1808,  1790,  1810,  1807,  1799,  1800, -1336,  1743,
1546       -1336,  1802,  1804,  1817,  1809,  1805,  1624,  1801,  1806,  1811,
1547        1813,  1816,  1812,  1814,  1815, -1336,   505,  1818, -1336,  1819,
1548        1823,  1821,  1826, -1336,  1828, -1336,  1820,  1822,  1832,  1834,
1549       -1336,  1825,  1827, -1336,  1837,  1824,  1829,  1830,  1831,  1789,
1550        1833,  1835,  1836,  1838,  1839,  1841,  1842,  1845,  1844, -1336,
1551        1848, -1336,  1847, -1336,  1843,  1849,  1853,  1850,  1851, -1336,
1552        1852,  1854,  1846, -1336,  1855, -1336,  1859,  1858, -1336, -1336,
1553       -1336, -1336,  1861, -1336
1554  };  };
1555    
1556  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
1557  static const yysigned_char yypgoto[] =  static const yytype_int16 yypgoto[] =
1558  {  {
1559       -48,   -48,   -11,   -48,   -48,   -48,   -48,   -48,   -48,   -48,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1560       -48,   -48,   -48,   -41,   -48,   -48,   -48,   -48,   -48,    13,     -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
1561       -48,   -48,   -47,   -44     -1336, -1336, -1336,  -883, -1336, -1336, -1336, -1336, -1336,  -848,
1562       -1335, -1336,   401,   343, -1336,  -547,  -988, -1205,   458, -1180,
1563         534, -1112, -1097,  -852,  -300,   677,  -922,   681,     8,   492,
1564       -1118,   512,  -879,   520,  1048,  -652,   519,  -604,   -15,   152,
1565          10,   471,  1248,  -274,   -16,  1856, -1336, -1336, -1336, -1336,
1566       -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,  -484,
1567       -1336, -1336,  -495, -1336, -1336, -1336, -1336,   -52,  1614,  1616,
1568        1658,  -376,  1661,  1665,  1887,  2108,  2330,  2331,  2552,  2553,
1569        5187,  5188,  5189,  5190,  5191,  5192,  5193,  5194,  5195,  -269,
1570        -261,  -259,   255, -1336,  5196, -1336,  5201, -1336, -1336, -1336,
1571       -1336,  5203,  -266, -1336, -1336,  5202,   -98, -1336,  5204, -1336,
1572        5205,  5206,  -258, -1336,   272,   244,  -260,  5207, -1336,  1280,
1573       -1336, -1336, -1336, -1336,   247,  5209,    49,   140,    62,    96,
1574       -1336,  1281, -1336, -1336,  -483,   -33, -1336,  -268, -1336, -1336,
1575       -1336, -1336, -1336, -1336,  5208,  -346, -1336, -1336
1576  };  };
1577    
1578  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1579     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
1580     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
1581     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
1582  #define YYTABLE_NINF -43  #define YYTABLE_NINF -274
1583  static const short yytable[] =  static const yytype_int16 yytable[] =
1584  {  {
1585        64,    77,    14,    56,    26,    57,    27,    28,    78,    15,       281,  1071,   282,   283,   284,   285,   286,   287,   288,   289,
1586        -5,     1,    39,    29,    31,    32,    86,    -5,    -5,     2,       290,   291,   292,   293,   294,   295,   296,   297,   298,  1014,
1587         3,     4,     5,     6,     7,     8,     9,    10,    22,    50,      1323,  1242,  1045,   388,   424,   428,   279,   469,   523,  1057,
1588        56,    16,    85,    86,    25,    23,    24,   104,    95,    64,       819,   664,   425,   429,   453,   465,   524,  -273,   525,   665,
1589        99,   100,    51,    52,    53,    54,    17,   105,   106,   107,       729,   775,   731,   666,   734,     1,   726,     2,  1161,   328,
1590       108,   109,   110,   111,    67,    68,    69,    70,    71,    72,       330,   331,   332,   333,   334,   335,   336,   337,  1849,  1850,
1591        86,    56,    18,   102,    96,    97,    19,   124,   125,   128,      1379,  1263,  1462,     3,   757,     4,     5,   666,     6,     7,
1592        20,   120,   121,   133,   134,    34,    21,    35,    40,    41,      1470,  1297,   773,  1669,     8,     9,  1678,  1669,   664,    10,
1593        36,    37,    42,    38,    86,    43,    44,    45,    46,    47,        11,    12,  1706,    13,  1767,  1326,   734,  1328,  1767,   710,
1594        48,    49,    56,    65,    55,    74,   101,    79,    80,    81,       666,   728,   472,  1368,  1780,  1690,  1369,   719,   721,   683,
1595        82,    83,    84,    87,    88,    89,     0,    90,    91,    92,        45,   471,   472,   473,   474,   732,   475,   476,    49,   478,
1596        93,    94,   112,   -42,   113,   114,   115,   116,   117,   118,      1989,  1781,   480,   477,    46,  1334,  1335,  1336,  1337,   478,
1597       119,   122,   129,   131       479,   768,   480,   832,    50,  1670,  1984,   758,  1679,  1689,
1598         761,   763,    36,    43,  1707,   774,  1768,  1007,   833,    44,
1599        1776,   318,   698,   699,   700,   701,   702,   703,   704,   705,
1600         706,  1008,  1700,  1604,  1310,   358,   311,   359,   360,   361,
1601         362,    40,   312,   782,  1311,  1701,   804,   363,  1261,  1702,
1602         931,  1593,  1442,   364,   365,   783,   366,   805,   806,   802,
1603         893,   784,   932,  1594,   366,    41,  1569,   688,   689,   690,
1604         691,   692,   693,   694,   695,   696,   697,  1636,   711,   712,
1605         713,   714,  1715,   717,   350,   351,   722,   723,   724,  1389,
1606        1637,    42,  1390,  1609,   352,  1716,   329,   329,   329,   329,
1607         329,   329,   329,   329,   329,  1610,   315,  1472,    47,   658,
1608         659,   368,   316,   420,   658,   659,   658,   659,   421,   658,
1609         659,  1394,   452,   460,  1357,   422,   530,   658,   659,  1428,
1610         811,   667,    48,   658,   659,  1543,  -273,  -273,  -273,  1544,
1611         802,   456,    51,   350,   413,   457,   421,  1545,  1451,    -4,
1612          -4,  1416,   276,   458,  1417,   661,   658,   659,   350,   413,
1613         718,   720,   366,  1466,  1467,   810,   813,   815,   352,  1274,
1614        1275,   735,   737,   685,   740,   741,   742,   743,    52,  1748,
1615        1749,   686,  1831,   687,   431,  1750,   432,   409,  1832,   433,
1616        1239,  1477,  1833,   760,   762,  1240,   434,  1478,   299,   966,
1617         776,   778,   318,   319,   320,   321,   322,   323,   324,   325,
1618         326,   327,   394,  1023,   300,  1025,   301,   415,   418,   549,
1619         550,   551,   767,   454,   467,   396,  1309,    37,   302,   412,
1620          38,  1322,   562,    39,   446,    53,    54,   795,   563,   786,
1621         564,   565,   566,   567,   568,   790,   569,   789,   570,   571,
1622         572,   573,   574,   303,   575,   576,   577,   578,   579,   580,
1623         581,   582,   583,   584,   416,   419,   304,   586,  1480,   587,
1624         455,   468,   589,   361,  1481,   591,   592,   447,   305,   594,
1625         595,  1905,   596,   597,  1098,  1953,   306,  1906,   601,   602,
1626         603,  1954,   604,   605,   606,   318,   698,   699,   700,   701,
1627         702,   703,   704,   705,   706,   707,   611,   411,   612,   613,
1628         614,   307,   445,   616,   617,  1960,   618,   619,   620,   621,
1629         309,  1961,   552,   553,   625,   626,   627,   628,   629,   630,
1630         631,   632,   633,   634,   635,  1111,   607,   553,   318,   319,
1631         320,   321,   322,   323,   324,   325,   326,   327,   816,   817,
1632         318,   698,   699,   700,   701,   702,   703,   704,   705,   706,
1633         545,   308,   545,   545,   545,   545,   545,   545,   545,   545,
1634        1438,  1112,   310,  1441,   318,   319,   320,   321,   322,   323,
1635         324,   325,   326,   327,   318,   319,   320,   321,   322,   323,
1636         324,   325,   326,   327,   646,   318,   698,   699,   700,   701,
1637         702,   703,   704,   705,   706,  1515,  2031,   787,  1357,   314,
1638         408,  1687,  2032,   807,   313,   277,   442,   426,   430,    53,
1639         658,   659,   466,  1673,  1674,  1695,  1696,   401,  1770,  1324,
1640        1325,   502,   526,   991,   992,   993,   403,   405,   736,   738,
1641         406,   409,   413,   350,   531,   533,   532,   538,   534,   535,
1642         536,   537,   543,   539,   540,   541,   544,   546,   547,   555,
1643         542,   548,   554,   709,   558,   559,  1029,  1030,  1031,  1032,
1644         557,   585,  1502,   556,   588,   590,   819,   709,   560,   709,
1645        1044,   561,  1046,   593,  1048,  1049,  1050,  1051,   598,   600,
1646         608,   615,   599,   609,   750,   751,   610,   622,   623,  1066,
1647        1067,   709,   624,   639,   636,   637,  1074,   638,   641,   709,
1648        1599,   642,   640,   644,   643,   645,   798,   799,   800,   801,
1649         652,   647,   848,   848,   822,   825,   648,   649,  1312,   767,
1650         650,   853,   854,   855,   651,   653,   654,   655,   674,   657,
1651        1107,  1108,  1109,  1110,   673,   656,   675,   679,   867,   868,
1652         869,   870,   871,   872,   873,   874,   875,   876,   877,   878,
1653         879,   880,   676,   328,   330,   331,   332,   333,   334,   335,
1654         336,   337,   677,   680,   681,   882,   883,   884,   885,   682,
1655         683,   886,   678,   887,   725,   888,   889,   890,   726,   730,
1656         744,   733,   894,   895,   739,   745,   746,   753,   754,   899,
1657         900,   901,   902,   755,   904,   905,   906,   907,   756,   764,
1658         779,   911,   912,   913,   781,   780,   914,   709,   826,   802,
1659         828,   827,   829,   830,   831,   919,   834,   920,   349,   836,
1660         922,   835,   923,   838,   924,   840,   839,   842,   843,   850,
1661         841,   926,   844,   845,   851,   852,   856,   857,   859,   858,
1662         934,   935,   936,   937,   938,   939,   940,   941,   942,   943,
1663         944,   945,   946,   947,   948,   949,   821,   951,   860,   861,
1664         862,   955,   956,   957,   958,   863,   960,   961,   962,   963,
1665         864,   964,   965,   819,   865,   866,   881,   891,   892,   896,
1666         897,   898,   903,   908,   909,   910,   915,   918,   930,   916,
1667         927,   917,   929,   950,   953,   925,   954,   928,   959,   921,
1668         933,   986,   968,   986,  1243,  1244,  1245,   952,   967,   969,
1669         970,   972,   973,   971,   974,   975,   976,   977,   983,   980,
1670         329,   329,   329,   329,   329,   329,   329,   329,   329,   978,
1671         979,   981,   982,   988,   989,   996,   990,   995,   997,   998,
1672         999,  1000,  1002,  1003,  1005,  1052,  1024,  1036,  1004,  1053,
1673        1064,  1077,  1015,  1035,  1040,  1018,  1019,  1020,  1021,  1001,
1674         709,  1034,   709,  1273,  1027,  1041,  1047,  1063,  1039,  1054,
1675        1033,  1288,  1290,  1062,  1068,  1038,  1065,  1073,  1075,  1076,
1676        1078,  1079,  1080,  1099,  1097,  1101,  1100,  1106,  1114,  1115,
1677        1118,  1116,  1117,  1059,  1061,  1119,  1121,  1122,  1120,  1288,
1678        1123,  1288,  1070,  1124,   661,  1125,  1127,  1126,  1129,  1128,
1679        1138,  1139,  1130,  1339,  1341,  1342,  1341,  1131,  1132,  1137,
1680        1141,  1113,  1142,  1140,  1146,  1143,  1145,  1094,  1144,  1096,
1681        1148,   709,  1147,  1149,  1159,  1163,  1160,  1164,   329,   329,
1682        1165,  1170,   545,  1171,  1172,  1133,  1134,  1135,  1136,  1173,
1683        1178,  1177,  1179,  1180,  1181,  1184,  1186,  1185,  1187,  1188,
1684        1189,  1190,  1207,  1150,  1210,  1209,  1216,  1211,  1227,  1224,
1685        1151,  1223,  1152,  1153,  1154,  1225,  1155,  1156,  1228,  1226,
1686        1229,  1157,  1158,  1232,  1230,  1233,  1231,  1234,  1235,  1236,
1687        1238,  1162,  1247,  1241,  1237,  1246,  1248,  1250,  1168,  1251,
1688        1169,  1249,  1264,  1278,  1239,  1252,  1253,  1254,  1268,  1174,
1689        1240,  1174,  1176,  1277,  1279,  1269,  1038,  1276,  1291,  1292,
1690        1293,  1299,  1294,  1182,  1295,  1183,  1298,  1300,  1338,  1301,
1691        1331,  1332,  1429,  1302,  1346,  1191,  1192,  1193,  1194,  1195,
1692        1196,  1197,  1198,  1199,  1200,  1201,  1202,  1344,  1204,  1333,
1693        1206,  1347,  1208,  1348,  1350,  1351,  1212,  1213,  1214,  1215,
1694        1353,  1217,  1218,  1219,  1220,  1354,  1221,  1222,  1355,  1356,
1695        1358,  1357,  1345,  1349,  1359,  1352,  1360,  1363,  1273,  1364,
1696        1365,  1366,  1288,  1288,  1367,  1370,   545,   545,   329,  1371,
1697         747,   748,  1372,  1378,   819,  1380,  1381,  1288,  1288,  1383,
1698        1384,  1385,  1387,  1388,  1290,  1391,   771,   749,  1393,  1398,
1699         752,  1396,  1395,  1070,  1399,  1265,   759,  1403,  1409,  1404,
1700        1411,  1412,   772,  1418,   824,  1413,  1410,  1415,  1419,  1414,
1701        1424,  1422,  1257,  1258,  1259,  1420,  1038,  1262,  1061,  1421,
1702        1423,  1425,  1267,  1426,  1427,  1435,  1431,   846,   846,  1430,
1703         837,  1432,  1433,  1434,  1437,  1287,  1491,  1436,  1463,  1443,
1704        1460,  1495,  1445,  1070,  1446,  1448,  1449,  1474,  1450,  1454,
1705        1453,  1304,  1306,  1455,  1304,   709,  1316,  1318,  1456,  1304,
1706         822,   825,   825,  1287,  1459,  1287,  1458,  1461,   349,   349,
1707        1464,  1475,  1061,  1061,  1061,  1061,  1468,  1469,  1361,  1362,
1708        1476,  1479,  1482,  1485,  1483,  1484,  1487,  1486,  1488,  1489,
1709        1373,  1374,   349,  1375,  1376,  1377,  1490,  1493,  1494,  1496,
1710        1492,  1497,  1498,  1499,  1500,  1501,  1503,  1504,  1505,  1506,
1711        1510,  1507,  1508,   329,   329,   545,   964,   965,  1509,  1511,
1712        1512,  1513,  1516,  1514,  1517,  1267,  1519,  1520,   767,  1522,
1713        1523,  1392,  1524,  1525,  1530,  1531,  1526,  1527,  1528,  1397,
1714        1529,  1533,  1535,  1532,  1536,   349,  1537,  1539,  1534,  1540,
1715        1538,  1541,  1546,  1542,  1547,  1548,  1400,  1549,  1550,  1554,
1716        1555,  1551,  1572,  1553,  1556,  1558,  1560,   349,  1405,  1406,
1717        1407,  1408,  1561,  1563,  1557,  1570,  1567,   821,  1559,  1562,
1718        1564,  1565,  1568,  1574,  1571,  1573,  1575,  1578,  1576,  1577,
1719        1580,  1581,  1582,  1583,  1584,  1588,  1585,  1586,  1587,  1590,
1720        1591,  1589,   821,  1592,  1579,   821,  1595,   821,  1596,  1597,
1721        1598,  1600,  1603,  1444,  1601,  1602,   985,  1604,   985,  1605,
1722        1606,  1070,  1607,   545,   545,  1608,  1611,  1612,  1614,  1613,
1723        1616,  1617,  1615,  1618,  1623,  1619,  1620,  1267,  1621,  1625,
1724         771,  1622,  1016,  1017,  1624,  1626,  1287,  1287,  1022,  1628,
1725        1629,  1006,  1026,  1012,  1013,  1630,  1632,  1306,  1627,  1634,
1726        1316,  1287,  1287,  1633,  1635,  1306,  1059,   822,  1043,  1028,
1727        1043,  1639,  1174,  1631,  1638,  1174,  1640,  1641,  1645,  1642,
1728        1056,  1056,  1644,   329,   329,  1646,  1648,  1650,  1651,  1653,
1729        1654,  1657,  1647,  1655,  1649,  1659,  1665,  1658,  1652,  1518,
1730        1660,  1666,  1668,  1656,  1521,  1661,   349,  1662,  1072,  1663,
1731        1664,  1667,  1671,  1675,  1676,  1093,  1672,  1095,  1081,  1082,
1732        1083,  1084,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,
1733        1677,  1680,  1681,  1682,  1683,  1685,  1552,   349,   349,  1102,
1734        1103,  1104,  1105,   349,  1684,  1686,  1688,   349,  1690,  1670,
1735        1691,  1692,  1694,  1698,  1704,  1693,  1697,  1699,  1705,  1703,
1736        1709,  1711,  1708,  1710,   349,  1712,  1713,  1714,  1717,  1718,
1737        1721,  1719,  1720,  1722,  1723,  1730,  1724,   349,  1318,  1726,
1738        1725,  1306,  1727,  1729,  1731,  1853,  1732,  1733,   821,   821,
1739        1734,  1736,  1735,  1737,  1738,  1739,  1740,  1741,  1743,  1742,
1740        1746,  1751,  1745,   821,   821,  1754,  1752,  1744,  1753,   821,
1741        1756,  1758,  1747,  1757,   349,  1760,   349,  1761,  1764,  1769,
1742        1755,  1759,  1762,  1763,  1765,  1767,  1771,  1773,  1775,  1772,
1743        1777,  1779,  1782,  1643,  1784,  1774,  1766,  1780,  1778,  1783,
1744        1785,  1788,  1786,  1787,  1790,  1789,  1791,  1792,  1820,  1798,
1745        1794,  1793,  1795,  1797,  1796,  1804,  1799,  1800,  1812,  1801,
1746        1803,  1802,  1807,  1811,  1806,  1805,  1853,  1813,  1814,  1815,
1747        1810,  1808,  1818,  1816,  1817,  1821,  1819,  1822,  1823,  1825,
1748        1824,  1826,  1829,  1830,  1835,  1827,  1836,  1828,  1837,  1838,
1749        1842,  1834,  1839,  1840,  1843,  1846,  1841,  1847,  1857,  1865,
1750        1844,  1858,  1859,  1070,  1860,  1861,  1864,  1862,  1868,  1866,
1751        1867,  1869,  1875,  1870,  2022,  1871,  1873,  1876,  1877,  1883,
1752        1256,  1728,  1878,  1874,  1260,  1879,  1845,  1889,  1880,  1884,
1753        1891,  1848,  1881,  1885,  1255,  1270,  1272,  1043,  1043,  1882,
1754        1886,  1887,  1892,  1280,  1888,  1893,  1863,  1894,  1872,  1895,
1755        1896,  1897,  1898,  1899,  1900,  1901,  1903,  1904,  1908,  1909,
1756        1907,  1902,  1308,  1911,  1917,  1912,  1296,  1321,  1918,  1914,
1757         824,   824,  1920,  1327,  1919,  1329,  1910,   349,  1915,  1916,
1758        1922,   349,  1925,  1927,  1924,  1929,  1928,  1931,   822,  1932,
1759        1913,   349,  1921,   349,  1926,  1933,  1930,  1934,  1935,  1944,
1760        1936,   349,  1938,  1937,  1809,  1939,   349,  1940,  1943,  1941,
1761        1945,  1947,  1942,  1946,  1948,  1949,  1951,  1950,  1952,  1955,
1762        1957,  1956,  1958,  1959,  1964,  1963,  1962,  1968,  1966,   349,
1763        1965,  1971,  1967,  1969,  1970,  1972,  1973,  1974,  1978,  1975,
1764        1976,  1991,   349,  1984,  1977,  1985,  1987,  1980,   349,  1979,
1765         349,  1465,  1981,  1982,  1983,  1990,  1992,  1986,  1989,  1988,
1766        1997,  1995,  2002,  2004,  1993,  1994,  1998,  1996,  2005,  2006,
1767        2007,  2008,  2000,  2003,  2001,  1999,  2009,  2010,  2011,  2012,
1768        2013,  2014,  2016,  2015,  2017,  1890,  2019,  2018,  2023,  2027,
1769        2020,  2021,  2039,  2028,  2024,  2026,  2035,  2025,  2036,  2037,
1770        2034,  2038,  2029,  2030,  2040,  2041,  2033,  2042,  2043,  2044,
1771        2045,  1566,  2046,  2055,  1471,  2057,  2048,  2049,  2058,  2047,
1772        2061,  2051,  2053,  2052,  2060,  2062,  2064,  2054,  2050,  2056,
1773         821,  2059,  2063,  2073,  2069,  2067,  2065,  2066,  2072,  1330,
1774        2068,  2070,  1056,  1439,  1440,  1056,  2071,  1343,  1923,  1452,
1775        1473,  1272,  1447,   994,     0,   791,   436,   849,   437,     0,
1776         349,   349,   317,     0,   814,     0,     0,     0,     0,     0,
1777           0,     0,     0,     0,     0,     0,  1457,     0,     0,     0,
1778           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780         438,     0,     0,     0,     0,     0,     0,     0,   506,     0,
1781           0,     0,   507,   771,   338,    58,    59,    60,    61,    62,
1782         339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1783          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1784          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1785          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1786         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1787         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1788         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1789         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1790         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1791         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1792         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1793         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1794         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1795         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1796         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1797         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1798         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1799         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1800         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1801         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1802         263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1803         273,   274,   275,   984,   508,   276,   338,    58,    59,    60,
1804          61,    62,   339,   340,   341,   342,   343,   344,   345,   346,
1805         347,   348,    73,    74,    75,    76,    77,    78,    79,    80,
1806          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1807          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1808         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1809         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1810         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1811         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1812         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1813         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1814         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1815         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1816         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1817         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1818         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1819         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1820         221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1821         231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1822         241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1823         251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1824         261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1825         271,   272,   273,   274,   275,   509,   987,   276,    57,    58,
1826          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1827          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1828          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1829          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1830          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1831         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1832         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1833         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1834         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1835         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1836         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1837         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1838         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1839         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1840         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1841         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1842         219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1843         229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1844         239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1845         249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1846         259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1847         269,   270,   271,   272,   273,   274,   275,   510,   511,   276,
1848         338,    58,    59,    60,    61,    62,   339,   340,   341,   342,
1849         343,   344,   345,   346,   347,   348,    73,    74,    75,    76,
1850          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1851          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1852          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1853         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1854         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1855         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1856         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1857         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1858         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1859         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1860         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1861         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1862         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1863         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1864         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1865         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1866         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1867         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1868         257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1869         267,   268,   269,   270,   271,   272,   273,   274,   275,   512,
1870         513,   276,   338,    58,    59,    60,    61,    62,   339,   340,
1871         341,   342,   343,   344,   345,   346,   347,   348,    73,    74,
1872          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1873          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1874          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1875         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1876         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1877         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1878         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1879         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1880         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1881         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1882         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1883         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1884         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1885         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1886         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1887         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1888         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1889         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1890         255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1891         265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1892         275,   658,   659,   338,    58,    59,    60,  1281,  1282,    63,
1893          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1894          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1895          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1896          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1897         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1898         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1899         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1900         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1901         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1902         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1903         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1904         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1905         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1906         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1907         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1908         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1909         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1910         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1911         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1912         254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1913         264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1914         274,   275,   658,   659,   338,    58,    59,    60,    61,    62,
1915         339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1916          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1917          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1918          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1919         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1920         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1921         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1922         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1923         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1924         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1925         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1926         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1927         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1928         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1929         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1930         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1931         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1932         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1933         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1934         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1935         263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1936         273,   274,   275,   338,    58,    59,    60,    61,    62,    63,
1937          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1938          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1939          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1940          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1941         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1942         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1943         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1944         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1945         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1946         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1947         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1948         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1949         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1950         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1951         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1952         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1953         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1954         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1955         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1956         254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1957         264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1958         274,   275,   338,  1167,    59,    60,    61,    62,   339,   340,
1959         341,   342,   343,   344,   345,   346,   347,   348,    73,    74,
1960          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1961          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1962          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1963         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1964         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1965         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1966         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1967         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1968         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1969         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1970         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1971         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1972         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1973         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1974         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1975         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1976         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1977         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1978         255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1979         265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1980         275,   338,  1175,    59,    60,    61,    62,   339,   340,   341,
1981         342,   343,   344,   345,   346,   347,   348,    73,    74,    75,
1982          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1983          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1984          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1985         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1986         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1987         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1988         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1989         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1990         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1991         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1992         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1993         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1994         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1995         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1996         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1997         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1998         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1999         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2000         256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2001         266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2002         338,  1203,    59,    60,    61,    62,   339,   340,   341,   342,
2003         343,   344,   345,   346,   347,   348,    73,    74,    75,    76,
2004          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2005          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2006          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2007         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2008         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2009         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2010         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2011         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2012         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2013         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2014         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2015         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2016         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2017         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2018         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2019         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2020         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2021         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2022         257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2023         267,   268,   269,   270,   271,   272,   273,   274,   275,   338,
2024        1205,    59,    60,    61,    62,   339,   340,   341,   342,   343,
2025         344,   345,   346,   347,   348,    73,    74,    75,    76,    77,
2026          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2027          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2028          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2029         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2030         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2031         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2032         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2033         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2034         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2035         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2036         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2037         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2038         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2039         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2040         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
2041         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2042         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
2043         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2044         258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2045         268,   269,   270,   271,   272,   273,   274,   275,   338,  1382,
2046          59,    60,    61,    62,   339,   340,   341,   342,   343,   344,
2047         345,   346,   347,   348,    73,    74,    75,    76,    77,    78,
2048          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2049          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2050          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2051         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2052         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2053         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2054         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2055         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2056         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2057         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2058         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2059         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2060         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2061         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2062         219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2063         229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2064         239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2065         249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2066         259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2067         269,   270,   271,   272,   273,   274,   275,   338,  1386,    59,
2068          60,    61,    62,   339,   340,   341,   342,   343,   344,   345,
2069         346,   347,   348,    73,    74,    75,    76,    77,    78,    79,
2070          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2071          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2072         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2073         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2074         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2075         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2076         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2077         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2078         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2079         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2080         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2081         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2082         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2083         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2084         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2085         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
2086         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2087         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
2088         260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
2089         270,   271,   272,   273,   274,   275,   338,  1401,    59,    60,
2090          61,    62,   339,   340,   341,   342,   343,   344,   345,   346,
2091         347,   348,    73,    74,    75,    76,    77,    78,    79,    80,
2092          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2093          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2094         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2095         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2096         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2097         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2098         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2099         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2100         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2101         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2102         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2103         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2104         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2105         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2106         221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2107         231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2108         241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2109         251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2110         261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2111         271,   272,   273,   274,   275,   338,  1402,    59,    60,    61,
2112          62,   339,   340,   341,   342,   343,   344,   345,   346,   347,
2113         348,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2114          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2115          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2116         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2117         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2118         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2119         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2120         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2121         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2122         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2123         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2124         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2125         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2126         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2127         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2128         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2129         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2130         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2131         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2132         262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2133         272,   273,   274,   275,   514,   515,   516,   517,   518,   519,
2134         520,   521,   522,   527,   450,   439,   440,   462,   441,   443,
2135         464,   444,     0,     0,     0,   528
2136  };  };
2137    
2138  static const short yycheck[] =  static const yytype_int16 yycheck[] =
2139  {  {
2140        44,    48,     6,     3,    18,     5,    20,    21,    49,     6,        16,   923,    18,    19,    20,    21,    22,    23,    24,    25,
2141         0,     1,    23,    27,    26,    27,    60,     7,     8,     9,        26,    27,    28,    29,    30,    31,    32,    33,    34,   871,
2142        10,    11,    12,    13,    14,    15,    16,    17,     0,    40,      1200,  1133,   901,   283,   290,   291,    16,   295,   297,   912,
2143         3,     6,     5,    77,    18,     7,     8,    84,    79,    83,       634,    24,   290,   291,   294,   295,   297,     5,   297,    32,
2144        81,    82,    22,    23,    24,    25,     6,    88,    89,    90,       587,    24,   589,    36,    32,     1,    32,     3,  1036,    64,
2145        91,    92,    93,    94,    28,    29,    30,    31,    32,    33,        65,    66,    67,    68,    69,    70,    71,    72,    33,    34,
2146       104,     3,     6,     5,    34,    35,     6,    36,    37,   116,      1265,  1158,  1397,    19,   611,    21,    22,    36,    24,    25,
2147         6,   112,   113,     4,     5,    18,     6,    18,     7,     6,      1405,  1183,   619,    37,    30,    31,    37,    37,    24,    35,
2148        19,    19,     6,    18,   128,     6,     6,     6,     6,     6,        36,    37,    37,    39,    37,  1203,    32,  1205,    37,   573,
2149         6,     6,     3,     5,    22,     5,    83,     6,     6,     6,        36,   586,    20,    34,    21,    22,    37,   580,   581,    27,
2150         6,     6,     6,     3,     6,     6,    -1,     6,     6,     6,        19,    19,    20,    21,    22,   589,    24,    25,    23,    37,
2151         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,        27,    38,    40,    31,    33,  1212,  1213,  1214,  1215,    37,
2152         6,     5,     5,    36        38,   616,    40,    22,    39,    89,    43,   611,    89,    89,
2153         613,   614,    22,    27,    89,   619,    89,    20,    37,    33,
2154          89,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2155          18,    34,    21,    22,    22,    19,    31,    21,    22,    23,
2156          24,    23,    37,    19,    32,    34,    19,    31,  1156,    38,
2157          27,    22,  1377,    37,    38,    31,    40,    30,    31,    32,
2158         727,    37,    39,    34,    40,    27,  1521,   563,   564,   565,
2159         566,   567,   568,   569,   570,   571,   572,    23,   574,   575,
2160         576,   577,    23,   579,    21,    22,   582,   583,   584,    34,
2161          36,    23,    37,    22,    31,    36,    64,    65,    66,    67,
2162          68,    69,    70,    71,    72,    34,    31,  1407,    39,   222,
2163         223,   283,    37,    19,   222,   223,   222,   223,    24,   222,
2164         223,    34,   294,   295,    37,    31,   298,   222,   223,  1361,
2165          22,   551,    23,   222,   223,    19,   224,   225,   226,    23,
2166          32,    19,    32,    21,    22,    23,    24,    31,  1386,   225,
2167         226,    34,   224,    31,    37,   549,   222,   223,    21,    22,
2168         580,   581,    40,  1401,  1402,   631,   632,   633,    31,  1168,
2169        1169,   591,   592,   562,   594,   595,   596,   597,     0,    21,
2170          22,   562,    21,   562,    19,    27,    21,    22,    27,    24,
2171          31,    21,    31,   613,   614,    36,    31,    27,    22,     6,
2172         620,   621,     9,    10,    11,    12,    13,    14,    15,    16,
2173          17,    18,   283,   880,    23,   882,    34,   288,   289,   355,
2174         356,   357,   616,   294,   295,   283,  1194,    30,    23,   287,
2175          33,  1199,   368,    36,   292,   225,   226,   625,   374,   625,
2176         376,   377,   378,   379,   380,   625,   382,   625,   384,   385,
2177         386,   387,   388,    37,   390,   391,   392,   393,   394,   395,
2178         396,   397,   398,   399,   288,   289,    32,   403,    21,   405,
2179         294,   295,   408,    23,    27,   411,   412,    27,    38,   415,
2180         416,    21,   418,   419,   951,    21,    37,    27,   424,   425,
2181         426,    27,   428,   429,   430,     9,    10,    11,    12,    13,
2182          14,    15,    16,    17,    18,    19,   442,   287,   444,   445,
2183         446,    19,   292,   449,   450,    21,   452,   453,   454,   455,
2184          40,    27,    39,    40,   460,   461,   462,   463,   464,   465,
2185         466,   467,   468,   469,   470,     6,    39,    40,     9,    10,
2186          11,    12,    13,    14,    15,    16,    17,    18,     7,     8,
2187           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2188         328,    34,   330,   331,   332,   333,   334,   335,   336,   337,
2189        1373,     6,    27,  1376,     9,    10,    11,    12,    13,    14,
2190          15,    16,    17,    18,     9,    10,    11,    12,    13,    14,
2191          15,    16,    17,    18,   530,     9,    10,    11,    12,    13,
2192          14,    15,    16,    17,    18,    34,    21,   625,    37,    20,
2193         286,  1643,    27,   631,    38,    16,   292,   290,   291,   225,
2194         222,   223,   295,    21,    22,    21,    22,    31,  1728,  1201,
2195        1202,   296,   297,   853,   854,   855,   284,   285,   591,   592,
2196          31,    22,    22,    21,    19,    19,    43,    23,    38,    22,
2197          38,    22,    19,    38,    33,    23,    39,    26,    20,    20,
2198          37,    27,    26,   573,    27,    23,   886,   887,   888,   889,
2199          42,    27,  1444,    32,    27,    20,  1200,   587,    33,   589,
2200         900,    33,   902,    20,   904,   905,   906,   907,    39,    27,
2201          26,    32,    42,    42,   604,   605,    27,    39,    21,   919,
2202         920,   611,    27,    20,    39,    39,   926,    26,    30,   619,
2203        1552,    27,    42,    33,    38,    33,   626,   627,   628,   629,
2204          21,    36,   658,   659,   634,   635,    38,    36,  1195,   923,
2205          40,   667,   668,   669,    38,    34,    20,    19,    19,    22,
2206         960,   961,   962,   963,    22,    89,    19,    22,   684,   685,
2207         686,   687,   688,   689,   690,   691,   692,   693,   694,   695,
2208         696,   697,    89,   698,   699,   700,   701,   702,   703,   704,
2209         705,   706,    25,    36,    38,   711,   712,   713,   714,    30,
2210          27,   717,    89,   719,    22,   721,   722,   723,    32,    22,
2211          22,    89,   728,   729,    89,    89,    22,    22,    19,   735,
2212         736,   737,   738,    89,   740,   741,   742,   743,    22,    37,
2213          22,   747,   748,   749,    22,    26,   752,   727,    22,    32,
2214          19,    24,    89,    89,    33,   761,    36,   763,   277,    27,
2215         766,    38,   768,    23,   770,    23,    33,    37,    32,    30,
2216          36,   777,    27,    27,    33,    23,    27,    27,    27,    32,
2217         786,   787,   788,   789,   790,   791,   792,   793,   794,   795,
2218         796,   797,   798,   799,   800,   801,   634,   803,    27,    37,
2219          27,   807,   808,   809,   810,    40,   812,   813,   814,   815,
2220          19,   816,   817,  1407,    39,    32,    30,    27,    33,    27,
2221          27,    33,    27,    27,    37,    27,    27,    27,    39,    32,
2222          27,    37,    27,    19,    23,    33,    27,    33,    23,    38,
2223          33,   847,    24,   849,  1134,  1135,  1136,    39,    27,    32,
2224          27,    20,    27,    37,    21,    23,    19,    21,    89,    21,
2225         698,   699,   700,   701,   702,   703,   704,   705,   706,    43,
2226          27,    32,    32,    19,    32,    30,    21,    33,    32,    32,
2227          32,    23,    23,    30,    24,    33,    30,   893,    31,    23,
2228          23,    22,   872,    32,    32,   875,   876,   877,   878,    89,
2229         880,    89,   882,  1167,   884,    32,    32,    32,    89,    89,
2230         890,  1175,  1176,    33,    36,   895,    89,    36,    33,    89,
2231          22,    38,    30,    22,    31,    22,    40,    37,    33,    23,
2232          23,    32,    32,   913,   914,    19,    23,    19,    89,  1203,
2233          30,  1205,   922,    23,  1208,    20,    23,    36,    27,    37,
2234          19,    23,    38,  1217,  1218,  1219,  1220,    89,    39,    89,
2235          23,   966,    32,    37,    23,    27,    89,   947,    36,   949,
2236          43,   951,    33,    23,    27,    27,    89,    37,   816,   817,
2237          89,    37,   820,    89,    32,   991,   992,   993,   994,    27,
2238          23,    89,    32,    27,    39,    21,    27,    89,    27,    27,
2239          23,    33,    23,  1009,    23,    27,    21,    27,    32,    36,
2240        1016,    89,  1018,  1019,  1020,    23,  1022,  1023,    30,    37,
2241          27,  1027,  1028,    89,    30,    89,    31,    23,    27,    30,
2242          32,  1037,    20,    36,    38,    33,    30,    22,  1044,    32,
2243        1046,    38,    32,    22,    31,    40,    38,    36,    32,  1055,
2244          36,  1057,  1058,    33,    32,    38,  1036,    38,    33,    30,
2245          22,    33,    32,  1069,    31,  1071,    23,    32,    36,    33,
2246          33,    30,  1362,    89,    30,  1081,  1082,  1083,  1084,  1085,
2247        1086,  1087,  1088,  1089,  1090,  1091,  1092,    33,  1094,    89,
2248        1096,    38,  1098,    22,    32,    30,  1102,  1103,  1104,  1105,
2249          40,  1107,  1108,  1109,  1110,    21,  1111,  1112,    20,    36,
2250          33,    37,    89,    89,    23,    89,    37,    39,  1382,    30,
2251          37,    36,  1386,  1387,    37,    33,   964,   965,   966,    23,
2252         601,   602,    21,    37,  1728,    37,    36,  1401,  1402,    36,
2253          39,    34,     5,    39,  1408,    23,   617,   603,    39,    23,
2254         606,    27,    89,  1133,    33,  1161,   612,    89,    27,    21,
2255          24,    89,   618,    19,   635,    36,    39,    27,    21,    89,
2256          38,    23,  1152,  1153,  1154,    33,  1156,  1157,  1158,    33,
2257          39,    22,  1162,    21,    27,    27,    23,   658,   659,    38,
2258         646,    39,    39,    38,    23,  1175,    19,    37,    24,    38,
2259          33,    89,    38,  1183,    39,    39,    38,    34,    39,    39,
2260          38,  1191,  1192,    38,  1194,  1195,  1196,  1197,    32,  1199,
2261        1200,  1201,  1202,  1203,    39,  1205,    38,    32,   747,   748,
2262          32,    38,  1212,  1213,  1214,  1215,    33,    33,  1244,  1245,
2263          27,    39,    32,    32,    39,    38,    27,    33,    39,    31,
2264        1256,  1257,   771,  1259,  1260,  1261,    36,    40,    34,    31,
2265          39,    38,    36,    21,    32,    36,    36,    31,    31,    34,
2266          36,    38,    34,  1111,  1112,  1113,  1281,  1282,    38,    38,
2267          34,    38,    19,    39,    23,  1265,    39,    32,  1552,    38,
2268          34,  1297,    30,    33,    24,    38,    32,    31,    33,  1305,
2269          32,    23,    21,    36,    32,   824,    23,    30,    39,    36,
2270          39,    23,    23,    39,    89,    39,  1322,    23,    38,    23,
2271          23,    39,    30,    39,    39,    39,    39,   846,  1334,  1335,
2272        1336,  1337,    39,    38,    89,    27,    38,  1175,    89,    89,
2273          39,    39,    38,    24,    39,    39,    23,    33,    39,    24,
2274          39,    33,    32,    23,    38,    38,    32,    31,    37,    32,
2275          27,    39,  1200,    32,    89,  1203,    31,  1205,    89,    19,
2276          31,    31,    38,  1379,    32,    32,   847,    22,   849,    38,
2277          22,  1361,    31,  1221,  1222,    38,    34,    38,    34,    30,
2278          33,    38,    36,    32,    22,    33,    32,  1377,    32,    39,
2279         871,    33,   873,   874,    31,    38,  1386,  1387,   879,    38,
2280          23,   867,   883,   869,   870,    27,    22,  1397,    89,    22,
2281        1400,  1401,  1402,    25,    38,  1405,  1406,  1407,   899,   885,
2282         901,    23,  1438,    89,    33,  1441,    21,    25,    38,    23,
2283         911,   912,    23,  1281,  1282,    38,    23,    23,    23,    23,
2284          33,    38,    89,    39,    89,    33,    23,    39,    89,  1465,
2285          32,    23,    21,    89,  1470,    89,   985,    38,   924,    38,
2286          38,    37,    32,    27,    27,   946,    40,   948,   934,   935,
2287         936,   937,   938,   939,   940,   941,   942,   943,   944,   945,
2288          27,    40,    27,    36,    32,    23,  1502,  1016,  1017,   955,
2289         956,   957,   958,  1022,    33,    32,    32,  1026,    22,    89,
2290          40,    22,    32,    36,    30,    40,    40,    38,    22,    38,
2291          32,    22,    40,    33,  1043,    38,    23,    26,    33,    32,
2292          22,    89,    89,    27,    40,    22,    38,  1056,  1518,    39,
2293          38,  1521,    38,    38,    23,  1809,    27,    23,  1386,  1387,
2294          27,    26,    38,    23,    27,    38,    89,    26,    43,    33,
2295          23,    27,    30,  1401,  1402,    27,    38,    89,    39,  1407,
2296          19,    27,    89,    40,  1093,    23,  1095,    27,    21,    32,
2297          89,    89,    28,    27,    23,    37,    27,    21,    21,    40,
2298          19,    21,    19,  1599,    34,    40,    89,    21,    40,    36,
2299          23,    33,    40,    28,    32,    27,    21,    89,    43,    40,
2300          36,    32,    31,    27,    32,    23,    33,    37,    23,    32,
2301          36,    33,    31,    27,    34,    36,  1890,    27,    23,    31,
2302          36,    38,    23,    32,    27,    32,    26,    38,    23,    27,
2303          36,    33,    24,    23,    23,    39,    19,    36,    32,    21,
2304          20,    38,    23,    39,    23,    19,    34,    19,    23,    34,
2305          37,    21,    21,  1643,    19,    32,    19,    21,    20,    32,
2306          21,    32,    19,    23,    40,    33,    33,    21,    34,    21,
2307        1151,  1687,    23,    32,  1155,    23,    89,    23,    36,    34,
2308          21,    89,    38,    36,  1150,  1166,  1167,  1168,  1169,    39,
2309          34,    31,    23,  1174,    32,    23,    89,    34,    89,    23,
2310          23,    34,    32,    23,    23,    23,    38,    21,    24,    34,
2311          39,    89,  1193,    30,    19,    37,  1182,  1198,    19,    34,
2312        1201,  1202,    19,  1204,    37,  1206,    38,  1256,    38,    38,
2313          36,  1260,    30,    19,    38,    30,    32,    27,  1728,    38,
2314          89,  1270,    89,  1272,    89,    33,    89,    32,    32,    36,
2315          33,  1280,    33,    89,  1770,    89,  1285,    34,    33,    39,
2316          31,    22,    89,    42,    37,    33,    36,    34,    23,    32,
2317          39,    33,    24,    38,    19,    34,    36,    19,    22,  1308,
2318          38,    27,    36,    23,    23,    36,    19,    19,    24,    30,
2319          33,    38,  1321,    43,    32,    19,    89,    32,  1327,    36,
2320        1329,  1400,    33,    33,    32,    31,    31,    36,    27,    36,
2321          24,    31,    24,    19,    37,    36,    33,    39,    22,    27,
2322          23,    23,    38,    36,    39,    43,    23,    19,    38,    19,
2323          23,    32,    89,    33,    32,  1851,    19,    33,    37,    23,
2324          31,    36,    22,    31,    38,    32,    23,    36,    27,    23,
2325          31,    23,    38,    38,    32,    23,    38,    23,    33,    32,
2326          23,  1518,    38,    24,  1406,    23,    36,    36,    23,    40,
2327          23,    38,    36,    38,    26,    32,    23,    39,    89,    38,
2328        1728,    37,    33,    22,    38,    33,    36,    36,    30,  1208,
2329          36,    36,  1373,  1374,  1375,  1376,    37,  1220,  1890,  1387,
2330        1408,  1382,  1382,   855,    -1,   625,   292,   659,   292,    -1,
2331        1439,  1440,    56,    -1,   633,    -1,    -1,    -1,    -1,    -1,
2332          -1,    -1,    -1,    -1,    -1,    -1,  1392,    -1,    -1,    -1,
2333          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2334          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2335         292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   297,    -1,
2336          -1,    -1,   297,  1444,     3,     4,     5,     6,     7,     8,
2337           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2338          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2339          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2340          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2341          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2342          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2343          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2344          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2345          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2346          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2347         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2348         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2349         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2350         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2351         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2352         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2353         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2354         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2355         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2356         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2357         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2358         219,   220,   221,   222,   297,   224,     3,     4,     5,     6,
2359           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2360          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2361          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2362          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2363          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2364          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2365          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2366          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2367          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2368          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2369         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2370         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2371         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2372         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2373         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2374         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2375         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2376         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2377         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2378         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2379         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2380         217,   218,   219,   220,   221,   297,   223,   224,     3,     4,
2381           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2382          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2383          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2384          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2385          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2386          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2387          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2388          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2389          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2390          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2391         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2392         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2393         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2394         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2395         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2396         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2397         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2398         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2399         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2400         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2401         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2402         215,   216,   217,   218,   219,   220,   221,   297,   297,   224,
2403           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2404          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2405          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2406          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2407          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2408          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2409          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2410          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2411          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2412          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2413         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2414         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2415         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2416         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2417         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2418         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2419         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2420         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2421         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2422         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2423         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2424         213,   214,   215,   216,   217,   218,   219,   220,   221,   297,
2425         297,   224,     3,     4,     5,     6,     7,     8,     9,    10,
2426          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2427          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2428          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2429          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2430          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2431          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2432          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2433          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2434          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2435         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2436         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2437         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2438         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2439         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2440         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2441         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2442         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2443         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2444         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2445         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2446         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2447         221,   222,   223,     3,     4,     5,     6,     7,     8,     9,
2448          10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2449          20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2450          30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2451          40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2452          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2453          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2454          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2455          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2456          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2457         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2458         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2459         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2460         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2461         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2462         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2463         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2464         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2465         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2466         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2467         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2468         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2469         220,   221,   222,   223,     3,     4,     5,     6,     7,     8,
2470           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2471          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2472          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2473          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2474          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2475          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2476          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2477          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2478          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2479          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2480         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2481         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2482         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2483         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2484         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2485         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2486         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2487         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2488         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2489         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2490         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2491         219,   220,   221,     3,     4,     5,     6,     7,     8,     9,
2492          10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2493          20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2494          30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2495          40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2496          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2497          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2498          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2499          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2500          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2501         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2502         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2503         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2504         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2505         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2506         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2507         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2508         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2509         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2510         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2511         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2512         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2513         220,   221,     3,     4,     5,     6,     7,     8,     9,    10,
2514          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2515          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2516          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2517          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2518          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2519          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2520          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2521          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2522          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2523         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2524         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2525         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2526         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2527         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2528         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2529         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2530         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2531         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2532         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2533         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2534         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2535         221,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2536          12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2537          22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2538          32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2539          42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2540          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2541          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2542          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2543          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2544          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2545         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2546         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2547         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2548         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2549         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2550         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2551         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2552         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2553         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2554         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2555         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2556         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2557           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2558          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2559          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2560          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2561          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2562          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2563          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2564          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2565          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2566          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2567         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2568         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2569         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2570         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2571         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2572         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2573         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2574         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2575         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2576         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2577         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2578         213,   214,   215,   216,   217,   218,   219,   220,   221,     3,
2579           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2580          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2581          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2582          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2583          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2584          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2585          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2586          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2587          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2588          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2589         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2590         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2591         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2592         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2593         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2594         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2595         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2596         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2597         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2598         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2599         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2600         214,   215,   216,   217,   218,   219,   220,   221,     3,     4,
2601           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2602          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2603          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2604          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2605          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2606          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2607          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2608          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2609          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2610          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2611         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2612         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2613         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2614         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2615         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2616         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2617         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2618         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2619         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2620         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2621         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2622         215,   216,   217,   218,   219,   220,   221,     3,     4,     5,
2623           6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2624          16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2625          26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2626          36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2627          46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2628          56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2629          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2630          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2631          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2632          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2633         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2634         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2635         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2636         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2637         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2638         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2639         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2640         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2641         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2642         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2643         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2644         216,   217,   218,   219,   220,   221,     3,     4,     5,     6,
2645           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2646          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2647          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2648          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2649          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2650          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2651          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2652          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2653          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2654          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2655         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2656         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2657         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2658         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2659         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2660         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2661         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2662         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2663         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2664         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2665         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2666         217,   218,   219,   220,   221,     3,     4,     5,     6,     7,
2667           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2668          18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2669          28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2670          38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2671          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2672          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2673          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2674          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2675          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2676          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2677         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2678         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2679         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2680         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2681         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2682         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2683         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2684         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2685         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2686         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2687         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2688         218,   219,   220,   221,   297,   297,   297,   297,   297,   297,
2689         297,   297,   297,   297,   293,   292,   292,   295,   292,   292,
2690         295,   292,    -1,    -1,    -1,   297
2691  };  };
2692    
2693  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2694     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
2695  static const unsigned char yystos[] =  static const yytype_uint16 yystos[] =
2696  {  {
2697         0,     1,     9,    10,    11,    12,    13,    14,    15,    16,         0,     1,     3,    19,    21,    22,    24,    25,    30,    31,
2698        17,    39,    40,    41,     6,     6,     6,     6,     6,     6,        35,    36,    37,    39,   228,   229,   230,   231,   294,   295,
2699         6,     6,     0,     7,     8,    18,    18,    20,    21,    27,       296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2700        42,    26,    27,    43,    18,    18,    19,    19,    18,    40,       310,   311,   312,   313,   390,   394,    22,    30,    33,    36,
2701         7,     6,     6,     6,     6,     6,     6,     6,     6,     6,        23,    27,    23,    27,    33,    19,    33,    39,    23,    23,
2702        40,    22,    23,    24,    25,    22,     3,     5,    46,    59,        39,    32,     0,   225,   226,   292,   293,     3,     4,     5,
2703        60,    61,    47,    57,    61,     5,    51,    28,    29,    30,         6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2704        31,    32,    33,    44,     5,    53,    56,    60,    51,     6,        16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2705         6,     6,     6,     6,     6,     5,    61,     3,     6,     6,        26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2706         6,     6,     6,     6,     6,    51,    34,    35,    45,    51,        36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2707        51,    57,     5,    52,    60,    51,    51,    51,    51,    51,        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2708        51,    51,     6,     6,     6,     6,     6,     6,     6,     6,        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2709        51,    51,     5,    54,    36,    37,    48,    58,    60,     5,        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2710        55,    36,    49,     4,     5,    50        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2711          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2712          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2713         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2714         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2715         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2716         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2717         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2718         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2719         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2720         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2721         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2722         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
2723         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2724         216,   217,   218,   219,   220,   221,   224,   283,   286,   287,
2725         288,   291,   291,   291,   291,   291,   291,   291,   291,   291,
2726         291,   291,   291,   291,   291,   291,   291,   291,   291,    22,
2727          23,    34,    23,    37,    32,    38,    37,    19,    34,    40,
2728          27,    31,    37,    38,    20,    31,    37,   292,     9,    10,
2729          11,    12,    13,    14,    15,    16,    17,    18,   285,   286,
2730         285,   285,   285,   285,   285,   285,   285,   285,     3,     9,
2731          10,    11,    12,    13,    14,    15,    16,    17,    18,   288,
2732          21,    22,    31,   232,   314,   363,   373,   375,    19,    21,
2733          22,    23,    24,    31,    37,    38,    40,   238,   314,   315,
2734         316,   317,   339,   340,   343,   348,   349,   350,   351,   352,
2735         353,   355,   357,   358,   359,   360,   361,   362,   363,   364,
2736         365,   366,   371,   372,   373,   374,   375,   376,   377,   383,
2737         384,    31,   235,   361,   236,   361,    31,   242,   362,    22,
2738         243,   374,   375,    22,   244,   373,   376,   245,   373,   376,
2739          19,    24,    31,   240,   349,   359,   371,   246,   349,   359,
2740         371,    19,    21,    24,    31,   252,   315,   316,   317,   348,
2741         355,   358,   362,   364,   372,   374,   375,    27,   247,   342,
2742         343,   237,   314,   363,   373,   376,    19,    23,    31,   239,
2743         314,   347,   352,   356,   357,   363,   371,   373,   376,   384,
2744         393,    19,    20,    21,    22,    24,    25,    31,    37,    38,
2745          40,   233,   319,   320,   321,   322,   323,   324,   325,   326,
2746         327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2747         337,   338,   339,   341,   391,   234,   319,   320,   321,   322,
2748         323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2749         333,   334,   335,   336,   337,   338,   339,   341,   391,   241,
2750         314,    19,    43,    19,    38,    22,    38,    22,    23,    38,
2751          33,    23,    37,    19,    39,   286,    26,    20,    27,   291,
2752         291,   291,    39,    40,    26,    20,    32,    42,    27,    23,
2753          33,    33,   291,   291,   291,   291,   291,   291,   291,   291,
2754         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
2755         291,   291,   291,   291,   291,    27,   291,   291,    27,   291,
2756          20,   291,   291,    20,   291,   291,   291,   291,    39,    42,
2757          27,   291,   291,   291,   291,   291,   291,    39,    26,    42,
2758          27,   291,   291,   291,   291,    32,   291,   291,   291,   291,
2759         291,   291,    39,    21,    27,   291,   291,   291,   291,   291,
2760         291,   291,   291,   291,   291,   291,    39,    39,    26,    20,
2761          42,    30,    27,    38,    33,    33,   291,    36,    38,    36,
2762          40,    38,    21,    34,    20,    19,    89,    22,   222,   223,
2763         274,   290,   271,   290,    24,    32,    36,   271,   281,   309,
2764         380,   381,   382,    22,    19,    19,    89,    25,    89,    22,
2765          36,    38,    30,    27,   318,   336,   337,   338,   318,   318,
2766         318,   318,   318,   318,   318,   318,   318,   318,    10,    11,
2767          12,    13,    14,    15,    16,    17,    18,    19,   262,   287,
2768         306,   318,   318,   318,   318,   267,   287,   318,   271,   381,
2769         271,   381,   318,   318,   318,    22,    32,   249,   309,   262,
2770          22,   262,   306,    89,    32,   271,   382,   271,   382,    89,
2771         271,   271,   271,   271,    22,    89,    22,   283,   283,   267,
2772         287,   287,   267,    22,    19,    89,    22,   262,   306,   267,
2773         271,   381,   271,   381,    37,   253,   273,   290,   309,   254,
2774         270,   283,   267,   262,   306,    24,   271,   379,   271,    22,
2775          26,    22,    19,    31,    37,   248,   349,   353,   354,   359,
2776         363,   366,   367,   368,   369,   384,   386,   387,   287,   287,
2777         287,   287,    32,   392,    19,    30,    31,   353,   370,   385,
2778         392,    22,   378,   392,   378,   392,     7,     8,   266,   284,
2779         285,   286,   287,   282,   283,   287,    22,    24,    19,    89,
2780          89,    33,    22,    37,    36,    38,    27,   267,    23,    33,
2781          23,    36,    37,    32,    27,    27,   283,   289,   291,   289,
2782          30,    33,    23,   291,   291,   291,    27,    27,    32,    27,
2783          27,    37,    27,    40,    19,    39,    32,   291,   291,   291,
2784         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
2785         291,    30,   291,   291,   291,   291,   291,   291,   291,   291,
2786         291,    27,    33,   262,   291,   291,    27,    27,    33,   291,
2787         291,   291,   291,    27,   291,   291,   291,   291,    27,    37,
2788          27,   291,   291,   291,   291,    27,    32,    37,    27,   291,
2789         291,    38,   291,   291,   291,    33,   291,    27,    33,    27,
2790          39,    27,    39,    33,   291,   291,   291,   291,   291,   291,
2791         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
2792          19,   291,    39,    23,    27,   291,   291,   291,   291,    23,
2793         291,   291,   291,   291,   285,   285,     6,    27,    24,    32,
2794          27,    37,    20,    27,    21,    23,    19,    21,    43,    27,
2795          21,    32,    32,    89,   222,   283,   291,   223,    19,    32,
2796          21,   271,   271,   271,   281,    33,    30,    32,    32,    32,
2797          23,    89,    23,    30,    31,    24,   267,    20,    34,   251,
2798         388,   389,   267,   267,   270,   287,   283,   283,   287,   287,
2799         287,   287,   283,   262,    30,   262,   283,   287,   267,   271,
2800         271,   271,   271,   287,    89,    32,   291,   263,   287,    89,
2801          32,    32,   279,   283,   271,   279,   271,    32,   271,   271,
2802         271,   271,    33,    23,    89,   250,   283,   250,   265,   287,
2803         269,   287,    33,    32,    23,    89,   271,   271,    36,   268,
2804         287,   273,   267,    36,   271,    33,    89,    22,    22,    38,
2805          30,   267,   267,   267,   267,   267,   267,   267,   267,   267,
2806         267,   267,   267,   283,   287,   283,   287,    31,   262,    22,
2807          40,    22,   267,   267,   267,   267,    37,   271,   271,   271,
2808         271,     6,     6,   285,    33,    23,    32,    32,    23,    19,
2809          89,    23,    19,    30,    23,    20,    36,    23,    37,    27,
2810          38,    89,    39,   291,   291,   291,   291,    89,    19,    23,
2811          37,    23,    32,    27,    36,    89,    23,    33,    43,    23,
2812         291,   291,   291,   291,   291,   291,   291,   291,   291,    27,
2813          89,   263,   291,    27,    37,    89,   291,     4,   291,   291,
2814          37,    89,    32,    27,   291,     4,   291,    89,    23,    32,
2815          27,    39,   291,   291,    21,    89,    27,    27,    27,    23,
2816          33,   291,   291,   291,   291,   291,   291,   291,   291,   291,
2817         291,   291,   291,     4,   291,     4,   291,    23,   291,    27,
2818          23,    27,   291,   291,   291,   291,    21,   291,   291,   291,
2819         291,   285,   285,    89,    36,    23,    37,    32,    30,    27,
2820          30,    31,    89,    89,    23,    27,    30,    38,    32,    31,
2821          36,    36,   268,   271,   271,   271,    33,    20,    30,    38,
2822          22,    32,    40,    38,    36,   267,   283,   287,   287,   287,
2823         283,   263,   287,   269,    32,   291,   264,   287,    32,    38,
2824         283,   280,   283,   290,   279,   279,    38,    33,    22,    32,
2825         283,     7,     8,   277,   278,   283,   284,   287,   290,   276,
2826         290,    33,    30,    22,    32,    31,   267,   268,    23,    33,
2827          32,    33,    89,   256,   287,   257,   287,   258,   283,   256,
2828          22,    32,   262,   307,   308,   259,   287,   260,   287,   306,
2829         261,   283,   256,   266,   282,   282,   277,   283,   277,   283,
2830         274,    33,    30,    89,   269,   269,   269,   269,    36,   290,
2831         272,   290,   290,   272,    33,    89,    30,    38,    22,    89,
2832          32,    30,    89,    40,    21,    20,    36,    37,    33,    23,
2833          37,   291,   291,    39,    30,    37,    36,    37,    34,    37,
2834          33,    23,    21,   291,   291,   291,   291,   291,    37,   264,
2835          37,    36,     4,    36,    39,    34,     4,     5,    39,    34,
2836          37,    23,   291,    39,    34,    89,    27,   291,    23,    33,
2837         291,     4,     4,    89,    21,   291,   291,   291,   291,    27,
2838          39,    24,    89,    36,    89,    27,    34,    37,    19,    21,
2839          33,    33,    23,    39,    38,    22,    21,    27,   268,   271,
2840          38,    23,    39,    39,    38,    27,    37,    23,   250,   283,
2841         283,   250,   264,    38,   291,    38,    39,   280,    39,    38,
2842          39,   277,   278,    38,    39,    38,    32,   267,    38,    39,
2843          33,    32,   257,    24,    32,   259,   277,   277,    33,    33,
2844         257,   265,   266,   276,    34,    38,    27,    21,    27,    39,
2845          21,    27,    32,    39,    38,    32,    33,    27,    39,    31,
2846          36,    19,    39,    40,    34,    89,    31,    38,    36,    21,
2847          32,    36,   270,    36,    31,    31,    34,    38,    34,    38,
2848          36,    38,    34,    38,    39,    34,    19,    23,   291,    39,
2849          32,   291,    38,    34,    30,    33,    32,    31,    33,    32,
2850          24,    38,    36,    23,    39,    21,    32,    23,    39,    30,
2851          36,    23,    39,    19,    23,    31,    23,    89,    39,    23,
2852          38,    39,   291,    39,    23,    23,    39,    89,    39,    89,
2853          39,    39,    89,    38,    39,    39,   260,    38,    38,   257,
2854          27,    39,    30,    39,    24,    23,    39,    24,    33,    89,
2855          39,    33,    32,    23,    38,    32,    31,    37,    38,    39,
2856          32,    27,    32,    22,    34,    31,    89,    19,    31,   273,
2857          31,    32,    32,    38,    22,    38,    22,    31,    38,    22,
2858          34,    34,    38,    30,    34,    36,    33,    38,    32,    33,
2859          32,    32,    33,    22,    31,    39,    38,    89,    38,    23,
2860          27,    89,    22,    25,    22,    38,    23,    36,    33,    23,
2861          21,    25,    23,   291,    23,    38,    38,    89,    23,    89,
2862          23,    23,    89,    23,    33,    39,    89,    38,    39,    33,
2863          32,    89,    38,    38,    38,    23,    23,    37,    21,    37,
2864          89,    32,    40,    21,    22,    27,    27,    27,    37,    89,
2865          40,    27,    36,    32,    33,    23,    32,   268,    32,    89,
2866          22,    40,    22,    40,    32,    21,    22,    40,    36,    38,
2867          21,    34,    38,    38,    30,    22,    37,    89,    40,    32,
2868          33,    22,    38,    23,    26,    23,    36,    33,    32,    89,
2869          89,    22,    27,    40,    38,    38,    39,    38,   291,    38,
2870          22,    23,    27,    23,    27,    38,    26,    23,    27,    38,
2871          89,    26,    33,    43,    89,    30,    23,    89,    21,    22,
2872          27,    27,    38,    39,    27,    89,    19,    40,    27,    89,
2873          23,    27,    28,    27,    21,    23,    89,    37,    89,    32,
2874         266,    27,    40,    21,    40,    21,    89,    19,    40,    21,
2875          21,    38,    19,    36,    34,    23,    40,    28,    33,    27,
2876          32,    21,    89,    32,    36,    31,    32,    27,    40,    33,
2877          37,    32,    33,    36,    23,    36,    34,    31,    38,   291,
2878          36,    27,    23,    27,    23,    31,    32,    27,    23,    26,
2879          43,    32,    38,    23,    36,    27,    33,    39,    36,    24,
2880          23,    21,    27,    31,    38,    23,    19,    32,    21,    23,
2881          39,    34,    20,    23,    37,    89,    19,    19,    89,    33,
2882          34,   255,   275,   290,   344,   345,   346,    23,    21,    21,
2883          19,    32,    21,    89,    19,    34,    32,    21,    20,    32,
2884          23,    33,    89,    33,    32,    19,    21,    34,    23,    23,
2885          36,    38,    39,    21,    34,    36,    34,    31,    32,    23,
2886         291,    21,    23,    23,    34,    23,    23,    34,    32,    23,
2887          23,    23,    89,    38,    21,    21,    27,    39,    24,    34,
2888          38,    30,    37,    89,    34,    38,    38,    19,    19,    37,
2889          19,    89,    36,   275,    38,    30,    89,    19,    32,    30,
2890          89,    27,    38,    33,    32,    32,    33,    89,    33,    89,
2891          34,    39,    89,    33,    36,    31,    42,    22,    37,    33,
2892          34,    36,    23,    21,    27,    32,    33,    39,    24,    38,
2893          21,    27,    36,    34,    19,    38,    22,    36,    19,    23,
2894          23,    27,    36,    19,    19,    30,    33,    32,    24,    36,
2895          32,    33,    33,    32,    43,    19,    36,    89,    36,    27,
2896          31,    38,    31,    37,    36,    31,    39,    24,    33,    43,
2897          38,    39,    24,    36,    19,    22,    27,    23,    23,    23,
2898          19,    38,    19,    23,    32,    33,    89,    32,    33,    19,
2899          31,    36,    40,    37,    38,    36,    32,    23,    31,    38,
2900          38,    21,    27,    38,    31,    23,    27,    23,    23,    22,
2901          32,    23,    23,    33,    32,    23,    38,    40,    36,    36,
2902          89,    38,    38,    36,    39,    24,    38,    23,    23,    37,
2903          26,    23,    32,    33,    23,    36,    36,    33,    36,    38,
2904          36,    37,    30,    22
2905  };  };
2906    
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  
 # define YYSIZE_T __SIZE_TYPE__  
 #endif  
 #if ! defined (YYSIZE_T) && defined (size_t)  
 # define YYSIZE_T size_t  
 #endif  
 #if ! defined (YYSIZE_T)  
 # if defined (__STDC__) || defined (__cplusplus)  
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */  
 #  define YYSIZE_T size_t  
 # endif  
 #endif  
 #if ! defined (YYSIZE_T)  
 # define YYSIZE_T unsigned int  
 #endif  
   
2907  #define yyerrok         (yyerrstatus = 0)  #define yyerrok         (yyerrstatus = 0)
2908  #define yyclearin       (yychar = YYEMPTY)  #define yyclearin       (yychar = YYEMPTY)
2909  #define YYEMPTY         (-2)  #define YYEMPTY         (-2)
# Line 582  static const unsigned char yystos[] = Line 2911  static const unsigned char yystos[] =
2911    
2912  #define YYACCEPT        goto yyacceptlab  #define YYACCEPT        goto yyacceptlab
2913  #define YYABORT         goto yyabortlab  #define YYABORT         goto yyabortlab
2914  #define YYERROR         goto yyerrlab1  #define YYERROR         goto yyerrorlab
2915    
2916    
2917  /* Like YYERROR except do call yyerror.  This remains here temporarily  /* Like YYERROR except do call yyerror.  This remains here temporarily
# Line 600  do                                                             \ Line 2929  do                                                             \
2929        yychar = (Token);                                         \        yychar = (Token);                                         \
2930        yylval = (Value);                                         \        yylval = (Value);                                         \
2931        yytoken = YYTRANSLATE (yychar);                           \        yytoken = YYTRANSLATE (yychar);                           \
2932        YYPOPSTACK;                                               \        YYPOPSTACK (1);                                           \
2933        goto yybackup;                                            \        goto yybackup;                                            \
2934      }                                                           \      }                                                           \
2935    else                                                          \    else                                                          \
2936      {                                                           \      {                                                           \
2937        yyerror ("syntax error: cannot back up");\        yyerror (YY_("syntax error: cannot back up")); \
2938        YYERROR;                                                  \        YYERROR;                                                  \
2939      }                                                           \      }                                                           \
2940  while (0)  while (YYID (0))
2941    
2942    
2943  #define YYTERROR        1  #define YYTERROR        1
2944  #define YYERRCODE       256  #define YYERRCODE       256
2945    
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions  
    are run).  */  
2946    
2947    /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2948       If N is 0, then set CURRENT to the empty location which ends
2949       the previous symbol: RHS[0] (always defined).  */
2950    
2951    #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2952  #ifndef YYLLOC_DEFAULT  #ifndef YYLLOC_DEFAULT
2953  # define YYLLOC_DEFAULT(Current, Rhs, N)         \  # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2954    Current.first_line   = Rhs[1].first_line;      \      do                                                                  \
2955    Current.first_column = Rhs[1].first_column;    \        if (YYID (N))                                                    \
2956    Current.last_line    = Rhs[N].last_line;       \          {                                                               \
2957    Current.last_column  = Rhs[N].last_column;            (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2958              (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2959              (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2960              (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2961            }                                                               \
2962          else                                                              \
2963            {                                                               \
2964              (Current).first_line   = (Current).last_line   =              \
2965                YYRHSLOC (Rhs, 0).last_line;                                \
2966              (Current).first_column = (Current).last_column =              \
2967                YYRHSLOC (Rhs, 0).last_column;                              \
2968            }                                                               \
2969        while (YYID (0))
2970    #endif
2971    
2972    
2973    /* YY_LOCATION_PRINT -- Print the location on the stream.
2974       This macro was not mandated originally: define only if we know
2975       we won't break user code: when these are the locations we know.  */
2976    
2977    #ifndef YY_LOCATION_PRINT
2978    # if YYLTYPE_IS_TRIVIAL
2979    #  define YY_LOCATION_PRINT(File, Loc)                  \
2980         fprintf (File, "%d.%d-%d.%d",                      \
2981                  (Loc).first_line, (Loc).first_column,     \
2982                  (Loc).last_line,  (Loc).last_column)
2983    # else
2984    #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2985    # endif
2986  #endif  #endif
2987    
2988    
2989  /* YYLEX -- calling `yylex' with the right arguments.  */  /* YYLEX -- calling `yylex' with the right arguments.  */
2990    
2991  #ifdef YYLEX_PARAM  #ifdef YYLEX_PARAM
# Line 644  while (0) Line 3006  while (0)
3006  do {                                            \  do {                                            \
3007    if (yydebug)                                  \    if (yydebug)                                  \
3008      YYFPRINTF Args;                             \      YYFPRINTF Args;                             \
3009  } while (0)  } while (YYID (0))
3010    
3011  # define YYDSYMPRINT(Args)                      \  # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
3012  do {                                            \  do {                                                                      \
3013    if (yydebug)                                  \    if (yydebug)                                                            \
3014      yysymprint Args;                            \      {                                                                     \
3015  } while (0)        YYFPRINTF (stderr, "%s ", Title);                                   \
3016          yy_symbol_print (stderr,                                            \
3017                      Type, Value); \
3018          YYFPRINTF (stderr, "\n");                                           \
3019        }                                                                     \
3020    } while (YYID (0))
3021    
3022  # define YYDSYMPRINTF(Title, Token, Value, Location)            \  
3023  do {                                                            \  /*--------------------------------.
3024    if (yydebug)                                                  \  | Print this symbol on YYOUTPUT.  |
3025      {                                                           \  `--------------------------------*/
3026        YYFPRINTF (stderr, "%s ", Title);                         \  
3027        yysymprint (stderr,                                       \  /*ARGSUSED*/
3028                    Token, Value);        \  #if (defined __STDC__ || defined __C99__FUNC__ \
3029        YYFPRINTF (stderr, "\n");                                 \       || defined __cplusplus || defined _MSC_VER)
3030      }                                                           \  static void
3031  } while (0)  yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3032    #else
3033    static void
3034    yy_symbol_value_print (yyoutput, yytype, yyvaluep)
3035        FILE *yyoutput;
3036        int yytype;
3037        YYSTYPE const * const yyvaluep;
3038    #endif
3039    {
3040      if (!yyvaluep)
3041        return;
3042    # ifdef YYPRINT
3043      if (yytype < YYNTOKENS)
3044        YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3045    # else
3046      YYUSE (yyoutput);
3047    # endif
3048      switch (yytype)
3049        {
3050          default:
3051            break;
3052        }
3053    }
3054    
3055    
3056    /*--------------------------------.
3057    | Print this symbol on YYOUTPUT.  |
3058    `--------------------------------*/
3059    
3060    #if (defined __STDC__ || defined __C99__FUNC__ \
3061         || defined __cplusplus || defined _MSC_VER)
3062    static void
3063    yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3064    #else
3065    static void
3066    yy_symbol_print (yyoutput, yytype, yyvaluep)
3067        FILE *yyoutput;
3068        int yytype;
3069        YYSTYPE const * const yyvaluep;
3070    #endif
3071    {
3072      if (yytype < YYNTOKENS)
3073        YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3074      else
3075        YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3076    
3077      yy_symbol_value_print (yyoutput, yytype, yyvaluep);
3078      YYFPRINTF (yyoutput, ")");
3079    }
3080    
3081  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
3082  | yy_stack_print -- Print the state stack from its BOTTOM up to its |  | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3083  | TOP (cinluded).                                                   |  | TOP (included).                                                   |
3084  `------------------------------------------------------------------*/  `------------------------------------------------------------------*/
3085    
3086  #if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
3087         || defined __cplusplus || defined _MSC_VER)
3088  static void  static void
3089  yy_stack_print (short *bottom, short *top)  yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
3090  #else  #else
3091  static void  static void
3092  yy_stack_print (bottom, top)  yy_stack_print (bottom, top)
3093      short *bottom;      yytype_int16 *bottom;
3094      short *top;      yytype_int16 *top;
3095  #endif  #endif
3096  {  {
3097    YYFPRINTF (stderr, "Stack now");    YYFPRINTF (stderr, "Stack now");
3098    for (/* Nothing. */; bottom <= top; ++bottom)    for (; bottom <= top; ++bottom)
3099      YYFPRINTF (stderr, " %d", *bottom);      YYFPRINTF (stderr, " %d", *bottom);
3100    YYFPRINTF (stderr, "\n");    YYFPRINTF (stderr, "\n");
3101  }  }
# Line 688  yy_stack_print (bottom, top) Line 3104  yy_stack_print (bottom, top)
3104  do {                                                            \  do {                                                            \
3105    if (yydebug)                                                  \    if (yydebug)                                                  \
3106      yy_stack_print ((Bottom), (Top));                           \      yy_stack_print ((Bottom), (Top));                           \
3107  } while (0)  } while (YYID (0))
3108    
3109    
3110  /*------------------------------------------------.  /*------------------------------------------------.
3111  | Report that the YYRULE is going to be reduced.  |  | Report that the YYRULE is going to be reduced.  |
3112  `------------------------------------------------*/  `------------------------------------------------*/
3113    
3114  #if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
3115         || defined __cplusplus || defined _MSC_VER)
3116  static void  static void
3117  yy_reduce_print (int yyrule)  yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
3118  #else  #else
3119  static void  static void
3120  yy_reduce_print (yyrule)  yy_reduce_print (yyvsp, yyrule)
3121        YYSTYPE *yyvsp;
3122      int yyrule;      int yyrule;
3123  #endif  #endif
3124  {  {
3125      int yynrhs = yyr2[yyrule];
3126    int yyi;    int yyi;
3127    unsigned int yylineno = yyrline[yyrule];    unsigned long int yylno = yyrline[yyrule];
3128    YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3129               yyrule - 1, yylineno);               yyrule - 1, yylno);
3130    /* Print the symbols being reduced, and their result.  */    /* The symbols being reduced.  */
3131    for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)    for (yyi = 0; yyi < yynrhs; yyi++)
3132      YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);      {
3133    YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);        fprintf (stderr, "   $%d = ", yyi + 1);
3134          yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3135                           &(yyvsp[(yyi + 1) - (yynrhs)])
3136                                           );
3137          fprintf (stderr, "\n");
3138        }
3139  }  }
3140    
3141  # define YY_REDUCE_PRINT(Rule)          \  # define YY_REDUCE_PRINT(Rule)          \
3142  do {                                    \  do {                                    \
3143    if (yydebug)                          \    if (yydebug)                          \
3144      yy_reduce_print (Rule);             \      yy_reduce_print (yyvsp, Rule); \
3145  } while (0)  } while (YYID (0))
3146    
3147  /* Nonzero means print parse trace.  It is left uninitialized so that  /* Nonzero means print parse trace.  It is left uninitialized so that
3148     multiple parsers can coexist.  */     multiple parsers can coexist.  */
3149  int yydebug;  int yydebug;
3150  #else /* !YYDEBUG */  #else /* !YYDEBUG */
3151  # define YYDPRINTF(Args)  # define YYDPRINTF(Args)
3152  # define YYDSYMPRINT(Args)  # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 # define YYDSYMPRINTF(Title, Token, Value, Location)  
3153  # define YY_STACK_PRINT(Bottom, Top)  # define YY_STACK_PRINT(Bottom, Top)
3154  # define YY_REDUCE_PRINT(Rule)  # define YY_REDUCE_PRINT(Rule)
3155  #endif /* !YYDEBUG */  #endif /* !YYDEBUG */
# Line 741  int yydebug; Line 3164  int yydebug;
3164     if the built-in stack extension method is used).     if the built-in stack extension method is used).
3165    
3166     Do not make this value too large; the results are undefined if     Do not make this value too large; the results are undefined if
3167     SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)     YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3168     evaluated with infinite-precision integer arithmetic.  */     evaluated with infinite-precision integer arithmetic.  */
3169    
 #if YYMAXDEPTH == 0  
 # undef YYMAXDEPTH  
 #endif  
   
3170  #ifndef YYMAXDEPTH  #ifndef YYMAXDEPTH
3171  # define YYMAXDEPTH 10000  # define YYMAXDEPTH 10000
3172  #endif  #endif
# Line 757  int yydebug; Line 3176  int yydebug;
3176  #if YYERROR_VERBOSE  #if YYERROR_VERBOSE
3177    
3178  # ifndef yystrlen  # ifndef yystrlen
3179  #  if defined (__GLIBC__) && defined (_STRING_H)  #  if defined __GLIBC__ && defined _STRING_H
3180  #   define yystrlen strlen  #   define yystrlen strlen
3181  #  else  #  else
3182  /* Return the length of YYSTR.  */  /* Return the length of YYSTR.  */
3183    #if (defined __STDC__ || defined __C99__FUNC__ \
3184         || defined __cplusplus || defined _MSC_VER)
3185  static YYSIZE_T  static YYSIZE_T
 #   if defined (__STDC__) || defined (__cplusplus)  
3186  yystrlen (const char *yystr)  yystrlen (const char *yystr)
3187  #   else  #else
3188    static YYSIZE_T
3189  yystrlen (yystr)  yystrlen (yystr)
3190       const char *yystr;      const char *yystr;
3191  #   endif  #endif
3192  {  {
3193    register const char *yys = yystr;    YYSIZE_T yylen;
3194      for (yylen = 0; yystr[yylen]; yylen++)
   while (*yys++ != '\0')  
3195      continue;      continue;
3196      return yylen;
   return yys - yystr - 1;  
3197  }  }
3198  #  endif  #  endif
3199  # endif  # endif
3200    
3201  # ifndef yystpcpy  # ifndef yystpcpy
3202  #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)  #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3203  #   define yystpcpy stpcpy  #   define yystpcpy stpcpy
3204  #  else  #  else
3205  /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in  /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3206     YYDEST.  */     YYDEST.  */
3207    #if (defined __STDC__ || defined __C99__FUNC__ \
3208         || defined __cplusplus || defined _MSC_VER)
3209  static char *  static char *
 #   if defined (__STDC__) || defined (__cplusplus)  
3210  yystpcpy (char *yydest, const char *yysrc)  yystpcpy (char *yydest, const char *yysrc)
3211  #   else  #else
3212    static char *
3213  yystpcpy (yydest, yysrc)  yystpcpy (yydest, yysrc)
3214       char *yydest;      char *yydest;
3215       const char *yysrc;      const char *yysrc;
3216  #   endif  #endif
3217  {  {
3218    register char *yyd = yydest;    char *yyd = yydest;
3219    register const char *yys = yysrc;    const char *yys = yysrc;
3220    
3221    while ((*yyd++ = *yys++) != '\0')    while ((*yyd++ = *yys++) != '\0')
3222      continue;      continue;
# Line 805  yystpcpy (yydest, yysrc) Line 3226  yystpcpy (yydest, yysrc)
3226  #  endif  #  endif
3227  # endif  # endif
3228    
3229  #endif /* !YYERROR_VERBOSE */  # ifndef yytnamerr
3230    /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3231       quotes and backslashes, so that it's suitable for yyerror.  The
3232       heuristic is that double-quoting is unnecessary unless the string
3233       contains an apostrophe, a comma, or backslash (other than
3234       backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3235       null, do not copy; instead, return the length of what the result
3236       would have been.  */
3237    static YYSIZE_T
3238    yytnamerr (char *yyres, const char *yystr)
3239    {
3240      if (*yystr == '"')
3241        {
3242          YYSIZE_T yyn = 0;
3243          char const *yyp = yystr;
3244    
3245          for (;;)
3246            switch (*++yyp)
3247              {
3248              case '\'':
3249              case ',':
3250                goto do_not_strip_quotes;
3251    
3252              case '\\':
3253                if (*++yyp != '\\')
3254                  goto do_not_strip_quotes;
3255                /* Fall through.  */
3256              default:
3257                if (yyres)
3258                  yyres[yyn] = *yyp;
3259                yyn++;
3260                break;
3261    
3262              case '"':
3263                if (yyres)
3264                  yyres[yyn] = '\0';
3265                return yyn;
3266              }
3267        do_not_strip_quotes: ;
3268        }
3269    
3270  #if YYDEBUG    if (! yyres)
3271  /*--------------------------------.      return yystrlen (yystr);
 | Print this symbol on YYOUTPUT.  |  
 `--------------------------------*/  
3272    
3273  #if defined (__STDC__) || defined (__cplusplus)    return yystpcpy (yyres, yystr) - yyres;
3274  static void  }
3275  yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)  # endif
3276  #else  
3277  static void  /* Copy into YYRESULT an error message about the unexpected token
3278  yysymprint (yyoutput, yytype, yyvaluep)     YYCHAR while in state YYSTATE.  Return the number of bytes copied,
3279      FILE *yyoutput;     including the terminating null byte.  If YYRESULT is null, do not
3280      int yytype;     copy anything; just return the number of bytes that would be
3281      YYSTYPE *yyvaluep;     copied.  As a special case, return 0 if an ordinary "syntax error"
3282  #endif     message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
3283       size calculation.  */
3284    static YYSIZE_T
3285    yysyntax_error (char *yyresult, int yystate, int yychar)
3286  {  {
3287    /* Pacify ``unused variable'' warnings.  */    int yyn = yypact[yystate];
   (void) yyvaluep;  
3288    
3289    if (yytype < YYNTOKENS)    if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3290        return 0;
3291      else
3292      {      {
3293        YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);        int yytype = YYTRANSLATE (yychar);
3294  # ifdef YYPRINT        YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3295        YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);        YYSIZE_T yysize = yysize0;
3296          YYSIZE_T yysize1;
3297          int yysize_overflow = 0;
3298          enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3299          char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3300          int yyx;
3301    
3302    # if 0
3303          /* This is so xgettext sees the translatable formats that are
3304             constructed on the fly.  */
3305          YY_("syntax error, unexpected %s");
3306          YY_("syntax error, unexpected %s, expecting %s");
3307          YY_("syntax error, unexpected %s, expecting %s or %s");
3308          YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3309          YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3310  # endif  # endif
3311      }        char *yyfmt;
3312    else        char const *yyf;
3313      YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);        static char const yyunexpected[] = "syntax error, unexpected %s";
3314          static char const yyexpecting[] = ", expecting %s";
3315          static char const yyor[] = " or %s";
3316          char yyformat[sizeof yyunexpected
3317                        + sizeof yyexpecting - 1
3318                        + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3319                           * (sizeof yyor - 1))];
3320          char const *yyprefix = yyexpecting;
3321    
3322          /* Start YYX at -YYN if negative to avoid negative indexes in
3323             YYCHECK.  */
3324          int yyxbegin = yyn < 0 ? -yyn : 0;
3325    
3326          /* Stay within bounds of both yycheck and yytname.  */
3327          int yychecklim = YYLAST - yyn + 1;
3328          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3329          int yycount = 1;
3330    
3331          yyarg[0] = yytname[yytype];
3332          yyfmt = yystpcpy (yyformat, yyunexpected);
3333    
3334          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3335            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3336              {
3337                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3338                  {
3339                    yycount = 1;
3340                    yysize = yysize0;
3341                    yyformat[sizeof yyunexpected - 1] = '\0';
3342                    break;
3343                  }
3344                yyarg[yycount++] = yytname[yyx];
3345                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3346                yysize_overflow |= (yysize1 < yysize);
3347                yysize = yysize1;
3348                yyfmt = yystpcpy (yyfmt, yyprefix);
3349                yyprefix = yyor;
3350              }
3351    
3352          yyf = YY_(yyformat);
3353          yysize1 = yysize + yystrlen (yyf);
3354          yysize_overflow |= (yysize1 < yysize);
3355          yysize = yysize1;
3356    
3357    switch (yytype)        if (yysize_overflow)
3358      {          return YYSIZE_MAXIMUM;
3359        default:  
3360          break;        if (yyresult)
3361            {
3362              /* Avoid sprintf, as that infringes on the user's name space.
3363                 Don't have undefined behavior even if the translation
3364                 produced a string with the wrong number of "%s"s.  */
3365              char *yyp = yyresult;
3366              int yyi = 0;
3367              while ((*yyp = *yyf) != '\0')
3368                {
3369                  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3370                    {
3371                      yyp += yytnamerr (yyp, yyarg[yyi++]);
3372                      yyf += 2;
3373                    }
3374                  else
3375                    {
3376                      yyp++;
3377                      yyf++;
3378                    }
3379                }
3380            }
3381          return yysize;
3382      }      }
   YYFPRINTF (yyoutput, ")");  
3383  }  }
3384    #endif /* YYERROR_VERBOSE */
3385    
3386    
 #endif /* ! YYDEBUG */  
3387  /*-----------------------------------------------.  /*-----------------------------------------------.
3388  | Release the memory associated to this symbol.  |  | Release the memory associated to this symbol.  |
3389  `-----------------------------------------------*/  `-----------------------------------------------*/
3390    
3391  #if defined (__STDC__) || defined (__cplusplus)  /*ARGSUSED*/
3392    #if (defined __STDC__ || defined __C99__FUNC__ \
3393         || defined __cplusplus || defined _MSC_VER)
3394  static void  static void
3395  yydestruct (int yytype, YYSTYPE *yyvaluep)  yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3396  #else  #else
3397  static void  static void
3398  yydestruct (yytype, yyvaluep)  yydestruct (yymsg, yytype, yyvaluep)
3399        const char *yymsg;
3400      int yytype;      int yytype;
3401      YYSTYPE *yyvaluep;      YYSTYPE *yyvaluep;
3402  #endif  #endif
3403  {  {
3404    /* Pacify ``unused variable'' warnings.  */    YYUSE (yyvaluep);
3405    (void) yyvaluep;  
3406      if (!yymsg)
3407        yymsg = "Deleting";
3408      YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3409    
3410    switch (yytype)    switch (yytype)
3411      {      {
3412    
3413        default:        default:
3414          break;          break;
3415      }      }
3416  }  }
3417    
# Line 876  yydestruct (yytype, yyvaluep) Line 3419  yydestruct (yytype, yyvaluep)
3419  /* Prevent warnings from -Wmissing-prototypes.  */  /* Prevent warnings from -Wmissing-prototypes.  */
3420    
3421  #ifdef YYPARSE_PARAM  #ifdef YYPARSE_PARAM
3422  # if defined (__STDC__) || defined (__cplusplus)  #if defined __STDC__ || defined __cplusplus
3423  int yyparse (void *YYPARSE_PARAM);  int yyparse (void *YYPARSE_PARAM);
3424  # else  #else
3425  int yyparse ();  int yyparse ();
3426  # endif  #endif
3427  #else /* ! YYPARSE_PARAM */  #else /* ! YYPARSE_PARAM */
3428  #if defined (__STDC__) || defined (__cplusplus)  #if defined __STDC__ || defined __cplusplus
3429  int yyparse (void);  int yyparse (void);
3430  #else  #else
3431  int yyparse ();  int yyparse ();
# Line 899  int yyparse (); Line 3442  int yyparse ();
3442  `----------*/  `----------*/
3443    
3444  #ifdef YYPARSE_PARAM  #ifdef YYPARSE_PARAM
3445  # if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
3446  int yyparse (void *YYPARSE_PARAM)       || defined __cplusplus || defined _MSC_VER)
3447  # else  int
3448  int yyparse (YYPARSE_PARAM)  yyparse (void *YYPARSE_PARAM)
3449    void *YYPARSE_PARAM;  #else
3450  # endif  int
3451    yyparse (YYPARSE_PARAM)
3452        void *YYPARSE_PARAM;
3453    #endif
3454  #else /* ! YYPARSE_PARAM */  #else /* ! YYPARSE_PARAM */
3455  #if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
3456         || defined __cplusplus || defined _MSC_VER)
3457  int  int
3458  yyparse (void)  yyparse (void)
3459  #else  #else
# Line 916  yyparse () Line 3463  yyparse ()
3463  #endif  #endif
3464  #endif  #endif
3465  {  {
3466    /* The lookahead symbol.  */    /* The look-ahead symbol.  */
3467  int yychar;  int yychar;
3468    
3469  /* The semantic value of the lookahead symbol.  */  /* The semantic value of the look-ahead symbol.  */
3470  YYSTYPE yylval;  YYSTYPE yylval;
3471    
3472  /* Number of syntax errors so far.  */  /* Number of syntax errors so far.  */
3473  int yynerrs;  int yynerrs;
3474    
3475    register int yystate;    int yystate;
3476    register int yyn;    int yyn;
3477    int yyresult;    int yyresult;
3478    /* Number of tokens to shift before error messages enabled.  */    /* Number of tokens to shift before error messages enabled.  */
3479    int yyerrstatus;    int yyerrstatus;
3480    /* Lookahead token as an internal (translated) token number.  */    /* Look-ahead token as an internal (translated) token number.  */
3481    int yytoken = 0;    int yytoken = 0;
3482    #if YYERROR_VERBOSE
3483      /* Buffer for error messages, and its allocated size.  */
3484      char yymsgbuf[128];
3485      char *yymsg = yymsgbuf;
3486      YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3487    #endif
3488    
3489    /* Three stacks and their tools:    /* Three stacks and their tools:
3490       `yyss': related to states,       `yyss': related to states,
# Line 942  int yynerrs; Line 3495  int yynerrs;
3495       to reallocate them elsewhere.  */       to reallocate them elsewhere.  */
3496    
3497    /* The state stack.  */    /* The state stack.  */
3498    short yyssa[YYINITDEPTH];    yytype_int16 yyssa[YYINITDEPTH];
3499    short *yyss = yyssa;    yytype_int16 *yyss = yyssa;
3500    register short *yyssp;    yytype_int16 *yyssp;
3501    
3502    /* The semantic value stack.  */    /* The semantic value stack.  */
3503    YYSTYPE yyvsa[YYINITDEPTH];    YYSTYPE yyvsa[YYINITDEPTH];
3504    YYSTYPE *yyvs = yyvsa;    YYSTYPE *yyvs = yyvsa;
3505    register YYSTYPE *yyvsp;    YYSTYPE *yyvsp;
3506    
3507    
3508    
3509  #define YYPOPSTACK   (yyvsp--, yyssp--)  #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3510    
3511    YYSIZE_T yystacksize = YYINITDEPTH;    YYSIZE_T yystacksize = YYINITDEPTH;
3512    
# Line 962  int yynerrs; Line 3515  int yynerrs;
3515    YYSTYPE yyval;    YYSTYPE yyval;
3516    
3517    
3518    /* When reducing, the number of symbols on the RHS of the reduced    /* The number of symbols on the RHS of the reduced rule.
3519       rule.  */       Keep to zero when no symbol should be popped.  */
3520    int yylen;    int yylen = 0;
3521    
3522    YYDPRINTF ((stderr, "Starting parse\n"));    YYDPRINTF ((stderr, "Starting parse\n"));
3523    
# Line 988  int yynerrs; Line 3541  int yynerrs;
3541  `------------------------------------------------------------*/  `------------------------------------------------------------*/
3542   yynewstate:   yynewstate:
3543    /* In all cases, when you get here, the value and location stacks    /* In all cases, when you get here, the value and location stacks
3544       have just been pushed. so pushing a state here evens the stacks.       have just been pushed.  So pushing a state here evens the stacks.  */
      */  
3545    yyssp++;    yyssp++;
3546    
3547   yysetstate:   yysetstate:
# Line 1002  int yynerrs; Line 3554  int yynerrs;
3554    
3555  #ifdef yyoverflow  #ifdef yyoverflow
3556        {        {
3557          /* Give user a chance to reallocate the stack. Use copies of          /* Give user a chance to reallocate the stack.  Use copies of
3558             these so that the &'s don't force the real ones into             these so that the &'s don't force the real ones into
3559             memory.  */             memory.  */
3560          YYSTYPE *yyvs1 = yyvs;          YYSTYPE *yyvs1 = yyvs;
3561          short *yyss1 = yyss;          yytype_int16 *yyss1 = yyss;
3562    
3563    
3564          /* Each stack pointer address is followed by the size of the          /* Each stack pointer address is followed by the size of the
3565             data in use in that stack, in bytes.  This used to be a             data in use in that stack, in bytes.  This used to be a
3566             conditional around just the two extra args, but that might             conditional around just the two extra args, but that might
3567             be undefined if yyoverflow is a macro.  */             be undefined if yyoverflow is a macro.  */
3568          yyoverflow ("parser stack overflow",          yyoverflow (YY_("memory exhausted"),
3569                      &yyss1, yysize * sizeof (*yyssp),                      &yyss1, yysize * sizeof (*yyssp),
3570                      &yyvs1, yysize * sizeof (*yyvsp),                      &yyvs1, yysize * sizeof (*yyvsp),
3571    
# Line 1024  int yynerrs; Line 3576  int yynerrs;
3576        }        }
3577  #else /* no yyoverflow */  #else /* no yyoverflow */
3578  # ifndef YYSTACK_RELOCATE  # ifndef YYSTACK_RELOCATE
3579        goto yyoverflowlab;        goto yyexhaustedlab;
3580  # else  # else
3581        /* Extend the stack our own way.  */        /* Extend the stack our own way.  */
3582        if (YYMAXDEPTH <= yystacksize)        if (YYMAXDEPTH <= yystacksize)
3583          goto yyoverflowlab;          goto yyexhaustedlab;
3584        yystacksize *= 2;        yystacksize *= 2;
3585        if (YYMAXDEPTH < yystacksize)        if (YYMAXDEPTH < yystacksize)
3586          yystacksize = YYMAXDEPTH;          yystacksize = YYMAXDEPTH;
3587    
3588        {        {
3589          short *yyss1 = yyss;          yytype_int16 *yyss1 = yyss;
3590          union yyalloc *yyptr =          union yyalloc *yyptr =
3591            (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));            (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3592          if (! yyptr)          if (! yyptr)
3593            goto yyoverflowlab;            goto yyexhaustedlab;
3594          YYSTACK_RELOCATE (yyss);          YYSTACK_RELOCATE (yyss);
3595          YYSTACK_RELOCATE (yyvs);          YYSTACK_RELOCATE (yyvs);
3596    
# Line 1069  int yynerrs; Line 3621  int yynerrs;
3621  `-----------*/  `-----------*/
3622  yybackup:  yybackup:
3623    
3624  /* Do appropriate processing given the current state.  */    /* Do appropriate processing given the current state.  Read a
3625  /* Read a lookahead token if we need one and don't already have one.  */       look-ahead token if we need one and don't already have one.  */
 /* yyresume: */  
   
   /* First try to decide what to do without reference to lookahead token.  */  
3626    
3627      /* First try to decide what to do without reference to look-ahead token.  */
3628    yyn = yypact[yystate];    yyn = yypact[yystate];
3629    if (yyn == YYPACT_NINF)    if (yyn == YYPACT_NINF)
3630      goto yydefault;      goto yydefault;
3631    
3632    /* Not known => get a lookahead token if don't already have one.  */    /* Not known => get a look-ahead token if don't already have one.  */
3633    
3634    /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */    /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
3635    if (yychar == YYEMPTY)    if (yychar == YYEMPTY)
3636      {      {
3637        YYDPRINTF ((stderr, "Reading a token: "));        YYDPRINTF ((stderr, "Reading a token: "));
# Line 1096  yybackup: Line 3646  yybackup:
3646    else    else
3647      {      {
3648        yytoken = YYTRANSLATE (yychar);        yytoken = YYTRANSLATE (yychar);
3649        YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);        YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3650      }      }
3651    
3652    /* If the proper action on seeing token YYTOKEN is to reduce or to    /* If the proper action on seeing token YYTOKEN is to reduce or to
# Line 1116  yybackup: Line 3666  yybackup:
3666    if (yyn == YYFINAL)    if (yyn == YYFINAL)
3667      YYACCEPT;      YYACCEPT;
3668    
   /* Shift the lookahead token.  */  
   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));  
   
   /* Discard the token being shifted unless it is eof.  */  
   if (yychar != YYEOF)  
     yychar = YYEMPTY;  
   
   *++yyvsp = yylval;  
   
   
3669    /* Count tokens shifted since error; after three, turn off error    /* Count tokens shifted since error; after three, turn off error
3670       status.  */       status.  */
3671    if (yyerrstatus)    if (yyerrstatus)
3672      yyerrstatus--;      yyerrstatus--;
3673    
3674      /* Shift the look-ahead token.  */
3675      YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3676    
3677      /* Discard the shifted token unless it is eof.  */
3678      if (yychar != YYEOF)
3679        yychar = YYEMPTY;
3680    
3681    yystate = yyn;    yystate = yyn;
3682      *++yyvsp = yylval;
3683    
3684    goto yynewstate;    goto yynewstate;
3685    
3686    
# Line 1166  yyreduce: Line 3715  yyreduce:
3715    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
3716    switch (yyn)    switch (yyn)
3717      {      {
3718          case 6:          case 4:
3719  #line 83 "lscp.y"  #line 101 "lscp.y"
3720      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
     break;  
   
   case 7:  
 #line 84 "lscp.y"  
     { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }  
     break;  
   
   case 8:  
 #line 87 "lscp.y"  
     { yyval.String = LSCPSERVER->AddChannel();                  }  
     break;  
   
   case 9:  
 #line 88 "lscp.y"  
     { yyval.String = yyvsp[0].String;                                        }  
3721      break;      break;
3722    
3723    case 10:    case 5:
3724  #line 89 "lscp.y"  #line 102 "lscp.y"
3725      { yyval.String = yyvsp[0].String;                                        }      { return LSCP_DONE; }
3726      break;      break;
3727    
3728    case 11:    case 6:
3729  #line 90 "lscp.y"  #line 103 "lscp.y"
3730      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { LSCPSERVER->AnswerClient((yyvsp[(1) - (1)].String)); return LSCP_DONE; }
3731      break;      break;
3732    
3733    case 12:    case 7:
3734  #line 91 "lscp.y"  #line 104 "lscp.y"
3735      { yyval.String = yyvsp[0].String;                                        }      { LSCPSERVER->AnswerClient("ERR:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
3736      break;      break;
3737    
3738    case 13:    case 13:
3739  #line 92 "lscp.y"  #line 114 "lscp.y"
3740      { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3741      break;      break;
3742    
3743    case 14:    case 14:
3744  #line 93 "lscp.y"  #line 115 "lscp.y"
3745      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3746      break;      break;
3747    
3748    case 15:    case 15:
3749  #line 94 "lscp.y"  #line 116 "lscp.y"
3750      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3751      break;      break;
3752    
3753    case 16:    case 16:
3754  #line 95 "lscp.y"  #line 117 "lscp.y"
3755      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3756      break;      break;
3757    
3758    case 17:    case 17:
3759  #line 98 "lscp.y"  #line 118 "lscp.y"
3760      { yyval.String = LSCPSERVER->GetAvailableEngines(); }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3761      break;      break;
3762    
3763    case 18:    case 18:
3764  #line 99 "lscp.y"  #line 119 "lscp.y"
3765      { yyval.String = LSCPSERVER->GetChannels();         }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3766      break;      break;
3767    
3768    case 19:    case 19:
3769  #line 100 "lscp.y"  #line 120 "lscp.y"
3770      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);    }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3771      break;      break;
3772    
3773    case 20:    case 20:
3774  #line 101 "lscp.y"  #line 121 "lscp.y"
3775      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3776      break;      break;
3777    
3778    case 21:    case 21:
3779  #line 102 "lscp.y"  #line 122 "lscp.y"
3780      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);    }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3781      break;      break;
3782    
3783    case 22:    case 22:
3784  #line 103 "lscp.y"  #line 123 "lscp.y"
3785      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);     }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3786      break;      break;
3787    
3788    case 23:    case 23:
3789  #line 104 "lscp.y"  #line 124 "lscp.y"
3790      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);     }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3791      break;      break;
3792    
3793    case 24:    case 24:
3794  #line 107 "lscp.y"  #line 125 "lscp.y"
3795      { yyval.String = yyvsp[0].String; }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3796      break;      break;
3797    
3798    case 25:    case 25:
3799  #line 108 "lscp.y"  #line 126 "lscp.y"
3800      { yyval.String = yyvsp[0].String; }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3801      break;      break;
3802    
3803    case 26:    case 26:
3804  #line 111 "lscp.y"  #line 127 "lscp.y"
3805      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[0].Number, yyvsp[-2].Number); }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3806      break;      break;
3807    
3808    case 27:    case 27:
3809  #line 112 "lscp.y"  #line 128 "lscp.y"
3810      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].AudioOutput, yyvsp[-2].Number);    }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3811      break;      break;
3812    
3813    case 28:    case 28:
3814  #line 113 "lscp.y"  #line 129 "lscp.y"
3815      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);      }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3816      break;      break;
3817    
3818    case 29:    case 29:
3819  #line 114 "lscp.y"  #line 130 "lscp.y"
3820      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);   }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3821      break;      break;
3822    
3823    case 30:    case 30:
3824  #line 115 "lscp.y"  #line 131 "lscp.y"
3825      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].MidiInput, yyvsp[-2].Number);      }      { (yyval.String) = LSCPSERVER->ResetSampler();                        }
3826      break;      break;
3827    
3828    case 31:    case 31:
3829  #line 116 "lscp.y"  #line 132 "lscp.y"
3830      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);             }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
3831      break;      break;
3832    
3833    case 32:    case 32:
3834  #line 119 "lscp.y"  #line 135 "lscp.y"
3835      { yyval.FillResponse = fill_response_bytes;      }      { (yyval.String) = LSCPSERVER->AddChannel();                          }
3836      break;      break;
3837    
3838    case 33:    case 33:
3839  #line 120 "lscp.y"  #line 136 "lscp.y"
3840      { yyval.FillResponse = fill_response_percentage; }      { (yyval.String) = LSCPSERVER->AddDbInstrumentDirectory((yyvsp[(3) - (3)].String));          }
3841      break;      break;
3842    
3843    case 34:    case 34:
3844  #line 123 "lscp.y"  #line 137 "lscp.y"
3845      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[(5) - (9)].String),(yyvsp[(7) - (9)].String),(yyvsp[(9) - (9)].String), true);  }
3846      break;      break;
3847    
3848    case 35:    case 35:
3849  #line 126 "lscp.y"  #line 138 "lscp.y"
3850      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[(3) - (7)].String),(yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].String));        }
3851      break;      break;
3852    
3853    case 36:    case 36:
3854  #line 129 "lscp.y"  #line 139 "lscp.y"
3855      { yyval.AudioOutput = audio_output_type_alsa; }      { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].String), -1, true); }
3856      break;      break;
3857    
3858    case 37:    case 37:
3859  #line 130 "lscp.y"  #line 140 "lscp.y"
3860      { yyval.AudioOutput = audio_output_type_jack; }      { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[(5) - (9)].String),(yyvsp[(7) - (9)].String),(yyvsp[(9) - (9)].Number), true);  }
3861      break;      break;
3862    
3863    case 38:    case 38:
3864  #line 133 "lscp.y"  #line 141 "lscp.y"
3865      { yyval.MidiInput = midi_input_type_alsa; }      { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].String));           }
3866        break;
3867    
3868      case 39:
3869    #line 142 "lscp.y"
3870        { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[(3) - (7)].String),(yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].Number));        }
3871      break;      break;
3872    
3873    case 40:    case 40:
3874  #line 137 "lscp.y"  #line 143 "lscp.y"
3875      { yyval.Dotnum = yyvsp[0].Number; }      { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap();                }
3876        break;
3877    
3878      case 41:
3879    #line 144 "lscp.y"
3880        { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap((yyvsp[(3) - (3)].String));              }
3881        break;
3882    
3883      case 42:
3884    #line 147 "lscp.y"
3885        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_count);   }
3886        break;
3887    
3888      case 43:
3889    #line 148 "lscp.y"
3890        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_info);    }
3891        break;
3892    
3893      case 44:
3894    #line 149 "lscp.y"
3895        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_count);    }
3896        break;
3897    
3898      case 45:
3899    #line 150 "lscp.y"
3900        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_info);     }
3901        break;
3902    
3903      case 46:
3904    #line 151 "lscp.y"
3905        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_count);        }
3906        break;
3907    
3908      case 47:
3909    #line 152 "lscp.y"
3910        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);          }
3911        break;
3912    
3913      case 48:
3914    #line 153 "lscp.y"
3915        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count);         }
3916        break;
3917    
3918      case 49:
3919    #line 154 "lscp.y"
3920        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);          }
3921      break;      break;
3922    
3923    case 50:    case 50:
3924  #line 165 "lscp.y"  #line 155 "lscp.y"
3925      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_info);         }
3926      break;      break;
3927    
3928    case 51:    case 51:
3929  #line 168 "lscp.y"  #line 156 "lscp.y"
3930      { yyval.String = yyvsp[0].String;                                             }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_count);        }
3931      break;      break;
3932    
3933    case 52:    case 52:
3934  #line 169 "lscp.y"  #line 157 "lscp.y"
3935      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_info);         }
3936      break;      break;
3937    
3938    case 53:    case 53:
3939  #line 170 "lscp.y"  #line 158 "lscp.y"
3940      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
3941      break;      break;
3942    
3943    case 54:    case 54:
3944  #line 171 "lscp.y"  #line 159 "lscp.y"
3945      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_info);  }
3946      break;      break;
3947    
3948    case 55:    case 55:
3949  #line 174 "lscp.y"  #line 160 "lscp.y"
3950      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_count);     }
3951      break;      break;
3952    
3953    case 56:    case 56:
3954    #line 161 "lscp.y"
3955        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_info);      }
3956        break;
3957    
3958      case 57:
3959    #line 162 "lscp.y"
3960        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_dir_count);   }
3961        break;
3962    
3963      case 58:
3964    #line 163 "lscp.y"
3965        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_dir_info);    }
3966        break;
3967    
3968      case 59:
3969    #line 164 "lscp.y"
3970        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_count);       }
3971        break;
3972    
3973      case 60:
3974    #line 165 "lscp.y"
3975        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_info);        }
3976        break;
3977    
3978      case 61:
3979    #line 166 "lscp.y"
3980        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instrs_job_info);   }
3981        break;
3982    
3983      case 62:
3984    #line 167 "lscp.y"
3985        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);                 }
3986        break;
3987    
3988      case 63:
3989    #line 168 "lscp.y"
3990        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_total_voice_count);    }
3991        break;
3992    
3993      case 64:
3994    #line 169 "lscp.y"
3995        { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_global_info);          }
3996        break;
3997    
3998      case 65:
3999    #line 172 "lscp.y"
4000        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_count);   }
4001        break;
4002    
4003      case 66:
4004    #line 173 "lscp.y"
4005        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_info);    }
4006        break;
4007    
4008      case 67:
4009    #line 174 "lscp.y"
4010        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_count);    }
4011        break;
4012    
4013      case 68:
4014  #line 175 "lscp.y"  #line 175 "lscp.y"
4015      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_info);     }
4016      break;      break;
4017    
4018      case 69:
4019    #line 176 "lscp.y"
4020        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_count);        }
4021        break;
4022    
4023      }    case 70:
4024    #line 177 "lscp.y"
4025        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);          }
4026        break;
4027    
4028  /* Line 999 of yacc.c.  */    case 71:
4029  #line 1379 "y.tab.c"  #line 178 "lscp.y"
4030        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count);         }
4031    yyvsp -= yylen;      break;
4032    yyssp -= yylen;  
4033      case 72:
4034    #line 179 "lscp.y"
4035        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);          }
4036        break;
4037    
4038      case 73:
4039    #line 180 "lscp.y"
4040        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_info);         }
4041        break;
4042    
4043      case 74:
4044    #line 181 "lscp.y"
4045        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_count);        }
4046        break;
4047    
4048      case 75:
4049    #line 182 "lscp.y"
4050        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_info);         }
4051        break;
4052    
4053      case 76:
4054    #line 183 "lscp.y"
4055        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
4056        break;
4057    
4058      case 77:
4059    #line 184 "lscp.y"
4060        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_info);  }
4061        break;
4062    
4063      case 78:
4064    #line 185 "lscp.y"
4065        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_count);     }
4066        break;
4067    
4068      case 79:
4069    #line 186 "lscp.y"
4070        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_info);      }
4071        break;
4072    
4073      case 80:
4074    #line 187 "lscp.y"
4075        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_dir_count);   }
4076        break;
4077    
4078      case 81:
4079    #line 188 "lscp.y"
4080        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_dir_info);    }
4081        break;
4082    
4083      case 82:
4084    #line 189 "lscp.y"
4085        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_count);       }
4086        break;
4087    
4088      case 83:
4089    #line 190 "lscp.y"
4090        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_info);        }
4091        break;
4092    
4093      case 84:
4094    #line 191 "lscp.y"
4095        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instrs_job_info);   }
4096        break;
4097    
4098      case 85:
4099    #line 192 "lscp.y"
4100        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);                 }
4101        break;
4102    
4103      case 86:
4104    #line 193 "lscp.y"
4105        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_total_voice_count);    }
4106        break;
4107    
4108      case 87:
4109    #line 194 "lscp.y"
4110        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_global_info);          }
4111        break;
4112    
4113      case 88:
4114    #line 197 "lscp.y"
4115        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (16)].Number),(yyvsp[(6) - (16)].Number),(yyvsp[(8) - (16)].Number),(yyvsp[(10) - (16)].String),(yyvsp[(12) - (16)].String),(yyvsp[(14) - (16)].Number),(yyvsp[(16) - (16)].Dotnum),MidiInstrumentMapper::VOID,"",(yyvsp[(3) - (16)].Bool)); }
4116        break;
4117    
4118      case 89:
4119    #line 198 "lscp.y"
4120        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (18)].Number),(yyvsp[(6) - (18)].Number),(yyvsp[(8) - (18)].Number),(yyvsp[(10) - (18)].String),(yyvsp[(12) - (18)].String),(yyvsp[(14) - (18)].Number),(yyvsp[(16) - (18)].Dotnum),(yyvsp[(18) - (18)].LoadMode),"",(yyvsp[(3) - (18)].Bool)); }
4121        break;
4122    
4123      case 90:
4124    #line 199 "lscp.y"
4125        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (18)].Number),(yyvsp[(6) - (18)].Number),(yyvsp[(8) - (18)].Number),(yyvsp[(10) - (18)].String),(yyvsp[(12) - (18)].String),(yyvsp[(14) - (18)].Number),(yyvsp[(16) - (18)].Dotnum),MidiInstrumentMapper::VOID,(yyvsp[(18) - (18)].String),(yyvsp[(3) - (18)].Bool)); }
4126        break;
4127    
4128      case 91:
4129    #line 200 "lscp.y"
4130        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (20)].Number),(yyvsp[(6) - (20)].Number),(yyvsp[(8) - (20)].Number),(yyvsp[(10) - (20)].String),(yyvsp[(12) - (20)].String),(yyvsp[(14) - (20)].Number),(yyvsp[(16) - (20)].Dotnum),(yyvsp[(18) - (20)].LoadMode),(yyvsp[(20) - (20)].String),(yyvsp[(3) - (20)].Bool)); }
4131        break;
4132    
4133      case 92:
4134    #line 203 "lscp.y"
4135        { (yyval.String) = LSCPSERVER->RemoveMIDIInstrumentMapping((yyvsp[(3) - (7)].Number),(yyvsp[(5) - (7)].Number),(yyvsp[(7) - (7)].Number)); }
4136        break;
4137    
4138      case 93:
4139    #line 206 "lscp.y"
4140        { (yyval.String) = LSCPSERVER->RemoveChannel((yyvsp[(3) - (3)].Number));                     }
4141        break;
4142    
4143      case 94:
4144    #line 207 "lscp.y"
4145        { (yyval.String) = LSCPSERVER->RemoveMidiInstrumentMap((yyvsp[(3) - (3)].Number));           }
4146        break;
4147    
4148      case 95:
4149    #line 208 "lscp.y"
4150        { (yyval.String) = LSCPSERVER->RemoveAllMidiInstrumentMaps();         }
4151        break;
4152    
4153      case 96:
4154    #line 209 "lscp.y"
4155        { (yyval.String) = LSCPSERVER->RemoveDbInstrumentDirectory((yyvsp[(5) - (5)].String), true); }
4156        break;
4157    
4158      case 97:
4159    #line 210 "lscp.y"
4160        { (yyval.String) = LSCPSERVER->RemoveDbInstrumentDirectory((yyvsp[(3) - (3)].String));       }
4161        break;
4162    
4163      case 98:
4164    #line 211 "lscp.y"
4165        { (yyval.String) = LSCPSERVER->RemoveDbInstrument((yyvsp[(3) - (3)].String));                }
4166        break;
4167    
4168      case 99:
4169    #line 214 "lscp.y"
4170        { (yyval.String) = LSCPSERVER->GetAvailableEngines();                          }
4171        break;
4172    
4173      case 100:
4174    #line 215 "lscp.y"
4175        { (yyval.String) = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
4176        break;
4177    
4178      case 101:
4179    #line 216 "lscp.y"
4180        { (yyval.String) = LSCPSERVER->GetMidiInputDriverInfo((yyvsp[(5) - (5)].String));                     }
4181        break;
4182    
4183      case 102:
4184    #line 217 "lscp.y"
4185        { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));        }
4186        break;
4187    
4188      case 103:
4189    #line 218 "lscp.y"
4190        { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[(5) - (9)].String), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].KeyValList));    }
4191        break;
4192    
4193      case 104:
4194    #line 219 "lscp.y"
4195        { (yyval.String) = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
4196        break;
4197    
4198      case 105:
4199    #line 220 "lscp.y"
4200        { (yyval.String) = LSCPSERVER->GetAudioOutputDriverInfo((yyvsp[(5) - (5)].String));                   }
4201        break;
4202    
4203      case 106:
4204    #line 221 "lscp.y"
4205        { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));      }
4206        break;
4207    
4208      case 107:
4209    #line 222 "lscp.y"
4210        { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[(5) - (9)].String), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].KeyValList));  }
4211        break;
4212    
4213      case 108:
4214    #line 223 "lscp.y"
4215        { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceCount();                    }
4216        break;
4217    
4218      case 109:
4219    #line 224 "lscp.y"
4220        { (yyval.String) = LSCPSERVER->GetMidiInputDeviceCount();                      }
4221        break;
4222    
4223      case 110:
4224    #line 225 "lscp.y"
4225        { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceInfo((yyvsp[(5) - (5)].Number));                   }
4226        break;
4227    
4228      case 111:
4229    #line 226 "lscp.y"
4230        { (yyval.String) = LSCPSERVER->GetMidiInputDeviceInfo((yyvsp[(5) - (5)].Number));                     }
4231        break;
4232    
4233      case 112:
4234    #line 227 "lscp.y"
4235        { (yyval.String) = LSCPSERVER->GetMidiInputPortInfo((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number));                   }
4236        break;
4237    
4238      case 113:
4239    #line 228 "lscp.y"
4240        { (yyval.String) = LSCPSERVER->GetMidiInputPortParameterInfo((yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].Number), (yyvsp[(9) - (9)].String));      }
4241        break;
4242    
4243      case 114:
4244    #line 229 "lscp.y"
4245        { (yyval.String) = LSCPSERVER->GetAudioOutputChannelInfo((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number));              }
4246        break;
4247    
4248      case 115:
4249    #line 230 "lscp.y"
4250        { (yyval.String) = LSCPSERVER->GetAudioOutputChannelParameterInfo((yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].Number), (yyvsp[(9) - (9)].String)); }
4251        break;
4252    
4253      case 116:
4254    #line 231 "lscp.y"
4255        { (yyval.String) = LSCPSERVER->GetChannels();                                  }
4256        break;
4257    
4258      case 117:
4259    #line 232 "lscp.y"
4260        { (yyval.String) = LSCPSERVER->GetChannelInfo((yyvsp[(5) - (5)].Number));                             }
4261        break;
4262    
4263      case 118:
4264    #line 233 "lscp.y"
4265        { (yyval.String) = LSCPSERVER->GetBufferFill((yyvsp[(5) - (7)].FillResponse), (yyvsp[(7) - (7)].Number));                          }
4266        break;
4267    
4268      case 119:
4269    #line 234 "lscp.y"
4270        { (yyval.String) = LSCPSERVER->GetStreamCount((yyvsp[(5) - (5)].Number));                             }
4271        break;
4272    
4273      case 120:
4274    #line 235 "lscp.y"
4275        { (yyval.String) = LSCPSERVER->GetVoiceCount((yyvsp[(5) - (5)].Number));                              }
4276        break;
4277    
4278      case 121:
4279    #line 236 "lscp.y"
4280        { (yyval.String) = LSCPSERVER->GetEngineInfo((yyvsp[(5) - (5)].String));                              }
4281        break;
4282    
4283      case 122:
4284    #line 237 "lscp.y"
4285        { (yyval.String) = LSCPSERVER->GetServerInfo();                                }
4286        break;
4287    
4288      case 123:
4289    #line 238 "lscp.y"
4290        { (yyval.String) = LSCPSERVER->GetTotalVoiceCount();                           }
4291        break;
4292    
4293      case 124:
4294    #line 239 "lscp.y"
4295        { (yyval.String) = LSCPSERVER->GetTotalVoiceCountMax();                        }
4296        break;
4297    
4298      case 125:
4299    #line 240 "lscp.y"
4300        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMappings((yyvsp[(3) - (3)].Number));                  }
4301        break;
4302    
4303      case 126:
4304    #line 241 "lscp.y"
4305        { (yyval.String) = LSCPSERVER->GetAllMidiInstrumentMappings();                 }
4306        break;
4307    
4308      case 127:
4309    #line 242 "lscp.y"
4310        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMapping((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].Number));             }
4311        break;
4312    
4313      case 128:
4314    #line 243 "lscp.y"
4315        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMaps();                        }
4316        break;
4317    
4318      case 129:
4319    #line 244 "lscp.y"
4320        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMap((yyvsp[(5) - (5)].Number));                       }
4321        break;
4322    
4323      case 130:
4324    #line 245 "lscp.y"
4325        { (yyval.String) = LSCPSERVER->GetFxSends((yyvsp[(3) - (3)].Number));                                 }
4326        break;
4327    
4328      case 131:
4329    #line 246 "lscp.y"
4330        { (yyval.String) = LSCPSERVER->GetFxSendInfo((yyvsp[(5) - (7)].Number),(yyvsp[(7) - (7)].Number));                           }
4331        break;
4332    
4333      case 132:
4334    #line 247 "lscp.y"
4335        { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryCount((yyvsp[(5) - (5)].String), true);        }
4336        break;
4337    
4338      case 133:
4339    #line 248 "lscp.y"
4340        { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryCount((yyvsp[(3) - (3)].String), false);       }
4341        break;
4342    
4343      case 134:
4344    #line 249 "lscp.y"
4345        { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryInfo((yyvsp[(5) - (5)].String));               }
4346        break;
4347    
4348      case 135:
4349    #line 250 "lscp.y"
4350        { (yyval.String) = LSCPSERVER->GetDbInstrumentCount((yyvsp[(5) - (5)].String), true);                 }
4351        break;
4352    
4353      case 136:
4354    #line 251 "lscp.y"
4355        { (yyval.String) = LSCPSERVER->GetDbInstrumentCount((yyvsp[(3) - (3)].String), false);                }
4356        break;
4357    
4358      case 137:
4359    #line 252 "lscp.y"
4360        { (yyval.String) = LSCPSERVER->GetDbInstrumentInfo((yyvsp[(5) - (5)].String));                        }
4361        break;
4362    
4363      case 138:
4364    #line 253 "lscp.y"
4365        { (yyval.String) = LSCPSERVER->GetDbInstrumentsJobInfo((yyvsp[(5) - (5)].Number));                    }
4366        break;
4367    
4368      case 139:
4369    #line 254 "lscp.y"
4370        { (yyval.String) = LSCPSERVER->GetGlobalVolume();                              }
4371        break;
4372    
4373      case 140:
4374    #line 257 "lscp.y"
4375        { (yyval.String) = LSCPSERVER->SetAudioOutputDeviceParameter((yyvsp[(3) - (7)].Number), (yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));      }
4376        break;
4377    
4378      case 141:
4379    #line 258 "lscp.y"
4380        { (yyval.String) = LSCPSERVER->SetAudioOutputChannelParameter((yyvsp[(3) - (9)].Number), (yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].String)); }
4381        break;
4382    
4383      case 142:
4384    #line 259 "lscp.y"
4385        { (yyval.String) = LSCPSERVER->SetMidiInputDeviceParameter((yyvsp[(3) - (7)].Number), (yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));        }
4386        break;
4387    
4388      case 143:
4389    #line 260 "lscp.y"
4390        { (yyval.String) = LSCPSERVER->SetMidiInputPortParameter((yyvsp[(3) - (9)].Number), (yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].String));      }
4391        break;
4392    
4393      case 144:
4394    #line 261 "lscp.y"
4395        { (yyval.String) = (yyvsp[(3) - (3)].String);                                                         }
4396        break;
4397    
4398      case 145:
4399    #line 262 "lscp.y"
4400        { (yyval.String) = LSCPSERVER->SetMidiInstrumentMapName((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].String));               }
4401        break;
4402    
4403      case 146:
4404    #line 263 "lscp.y"
4405        { (yyval.String) = LSCPSERVER->SetFxSendName((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].String));                        }
4406        break;
4407    
4408      case 147:
4409    #line 264 "lscp.y"
4410        { (yyval.String) = LSCPSERVER->SetFxSendAudioOutputChannel((yyvsp[(5) - (11)].Number),(yyvsp[(7) - (11)].Number),(yyvsp[(9) - (11)].Number),(yyvsp[(11) - (11)].Number)); }
4411        break;
4412    
4413      case 148:
4414    #line 265 "lscp.y"
4415        { (yyval.String) = LSCPSERVER->SetFxSendMidiController((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].Number));              }
4416        break;
4417    
4418      case 149:
4419    #line 266 "lscp.y"
4420        { (yyval.String) = LSCPSERVER->SetFxSendLevel((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].Dotnum));                       }
4421        break;
4422    
4423      case 150:
4424    #line 267 "lscp.y"
4425        { (yyval.String) = LSCPSERVER->SetDbInstrumentDirectoryName((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].String));            }
4426        break;
4427    
4428      case 151:
4429    #line 268 "lscp.y"
4430        { (yyval.String) = LSCPSERVER->SetDbInstrumentDirectoryDescription((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].String));     }
4431        break;
4432    
4433      case 152:
4434    #line 269 "lscp.y"
4435        { (yyval.String) = LSCPSERVER->SetDbInstrumentName((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].String));                     }
4436        break;
4437    
4438      case 153:
4439    #line 270 "lscp.y"
4440        { (yyval.String) = LSCPSERVER->SetDbInstrumentDescription((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].String));              }
4441        break;
4442    
4443      case 154:
4444    #line 271 "lscp.y"
4445        { (yyval.String) = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, (yyvsp[(3) - (3)].Dotnum));  }
4446        break;
4447    
4448      case 155:
4449    #line 272 "lscp.y"
4450        { (yyval.String) = LSCPSERVER->SetGlobalVolume((yyvsp[(3) - (3)].Dotnum));                            }
4451        break;
4452    
4453      case 156:
4454    #line 275 "lscp.y"
4455        { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].KeyValList)); }
4456        break;
4457    
4458      case 157:
4459    #line 276 "lscp.y"
4460        { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[(3) - (3)].String));    }
4461        break;
4462    
4463      case 158:
4464    #line 277 "lscp.y"
4465        { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].KeyValList));   }
4466        break;
4467    
4468      case 159:
4469    #line 278 "lscp.y"
4470        { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[(3) - (3)].String));      }
4471        break;
4472    
4473      case 160:
4474    #line 279 "lscp.y"
4475        { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[(3) - (5)].Number),(yyvsp[(5) - (5)].Number));            }
4476        break;
4477    
4478      case 161:
4479    #line 280 "lscp.y"
4480        { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[(3) - (7)].Number),(yyvsp[(5) - (7)].Number),(yyvsp[(7) - (7)].String)); }
4481        break;
4482    
4483      case 162:
4484    #line 283 "lscp.y"
4485        { (yyval.String) = LSCPSERVER->ResetChannel((yyvsp[(3) - (3)].Number)); }
4486        break;
4487    
4488      case 163:
4489    #line 286 "lscp.y"
4490        { (yyval.String) = LSCPSERVER->ClearMidiInstrumentMappings((yyvsp[(3) - (3)].Number));  }
4491        break;
4492    
4493      case 164:
4494    #line 287 "lscp.y"
4495        { (yyval.String) = LSCPSERVER->ClearAllMidiInstrumentMappings(); }
4496        break;
4497    
4498      case 165:
4499    #line 290 "lscp.y"
4500        { (yyval.String) = LSCPSERVER->FindDbInstruments((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].KeyValList), false);           }
4501        break;
4502    
4503      case 166:
4504    #line 291 "lscp.y"
4505        { (yyval.String) = LSCPSERVER->FindDbInstruments((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].KeyValList), true);            }
4506        break;
4507    
4508      case 167:
4509    #line 292 "lscp.y"
4510        { (yyval.String) = LSCPSERVER->FindDbInstrumentDirectories((yyvsp[(5) - (7)].String),(yyvsp[(7) - (7)].KeyValList), false); }
4511        break;
4512    
4513      case 168:
4514    #line 293 "lscp.y"
4515        { (yyval.String) = LSCPSERVER->FindDbInstrumentDirectories((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].KeyValList), true);  }
4516        break;
4517    
4518      case 169:
4519    #line 296 "lscp.y"
4520        { (yyval.String) = LSCPSERVER->MoveDbInstrumentDirectory((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].String)); }
4521        break;
4522    
4523      case 170:
4524    #line 297 "lscp.y"
4525        { (yyval.String) = LSCPSERVER->MoveDbInstrument((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].String));          }
4526        break;
4527    
4528      case 171:
4529    #line 300 "lscp.y"
4530        { (yyval.String) = LSCPSERVER->CopyDbInstrumentDirectory((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].String)); }
4531        break;
4532    
4533      case 172:
4534    #line 301 "lscp.y"
4535        { (yyval.String) = LSCPSERVER->CopyDbInstrument((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].String));          }
4536        break;
4537    
4538      case 173:
4539    #line 304 "lscp.y"
4540        { (yyval.String) = LSCPSERVER->DestroyAudioOutputDevice((yyvsp[(3) - (3)].Number)); }
4541        break;
4542    
4543      case 174:
4544    #line 305 "lscp.y"
4545        { (yyval.String) = LSCPSERVER->DestroyMidiInputDevice((yyvsp[(3) - (3)].Number));   }
4546        break;
4547    
4548      case 175:
4549    #line 306 "lscp.y"
4550        { (yyval.String) = LSCPSERVER->DestroyFxSend((yyvsp[(3) - (5)].Number),(yyvsp[(5) - (5)].Number)); }
4551        break;
4552    
4553      case 176:
4554    #line 309 "lscp.y"
4555        { (yyval.String) = (yyvsp[(3) - (3)].String); }
4556        break;
4557    
4558      case 177:
4559    #line 310 "lscp.y"
4560        { (yyval.String) = (yyvsp[(3) - (3)].String); }
4561        break;
4562    
4563      case 178:
4564    #line 313 "lscp.y"
4565        { (yyval.String) = LSCPSERVER->SetAudioOutputDevice((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));      }
4566        break;
4567    
4568      case 179:
4569    #line 314 "lscp.y"
4570        { (yyval.String) = LSCPSERVER->SetAudioOutputChannel((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number), (yyvsp[(3) - (7)].Number)); }
4571        break;
4572    
4573      case 180:
4574    #line 315 "lscp.y"
4575        { (yyval.String) = LSCPSERVER->SetAudioOutputType((yyvsp[(5) - (5)].String), (yyvsp[(3) - (5)].Number));        }
4576        break;
4577    
4578      case 181:
4579    #line 316 "lscp.y"
4580        { (yyval.String) = LSCPSERVER->SetMIDIInput((yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].Number), (yyvsp[(9) - (9)].Number), (yyvsp[(3) - (9)].Number));      }
4581        break;
4582    
4583      case 182:
4584    #line 317 "lscp.y"
4585        { (yyval.String) = LSCPSERVER->SetMIDIInputDevice((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));        }
4586        break;
4587    
4588      case 183:
4589    #line 318 "lscp.y"
4590        { (yyval.String) = LSCPSERVER->SetMIDIInputPort((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));          }
4591        break;
4592    
4593      case 184:
4594    #line 319 "lscp.y"
4595        { (yyval.String) = LSCPSERVER->SetMIDIInputChannel((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));       }
4596        break;
4597    
4598      case 185:
4599    #line 320 "lscp.y"
4600        { (yyval.String) = LSCPSERVER->SetMIDIInputType((yyvsp[(5) - (5)].String), (yyvsp[(3) - (5)].Number));          }
4601        break;
4602    
4603      case 186:
4604    #line 321 "lscp.y"
4605        { (yyval.String) = LSCPSERVER->SetVolume((yyvsp[(5) - (5)].Dotnum), (yyvsp[(3) - (5)].Number));                 }
4606        break;
4607    
4608      case 187:
4609    #line 322 "lscp.y"
4610        { (yyval.String) = LSCPSERVER->SetChannelMute((yyvsp[(5) - (5)].Dotnum), (yyvsp[(3) - (5)].Number));            }
4611        break;
4612    
4613      case 188:
4614    #line 323 "lscp.y"
4615        { (yyval.String) = LSCPSERVER->SetChannelSolo((yyvsp[(5) - (5)].Dotnum), (yyvsp[(3) - (5)].Number));            }
4616        break;
4617    
4618      case 189:
4619    #line 324 "lscp.y"
4620        { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[(3) - (5)].Number), (yyvsp[(5) - (5)].Number));             }
4621        break;
4622    
4623      case 190:
4624    #line 325 "lscp.y"
4625        { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[(3) - (5)].Number), -1);             }
4626        break;
4627    
4628      case 191:
4629    #line 326 "lscp.y"
4630        { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[(3) - (5)].Number), -2);             }
4631        break;
4632    
4633      case 192:
4634    #line 329 "lscp.y"
4635        { (yyval.Bool) = true;  }
4636        break;
4637    
4638      case 193:
4639    #line 330 "lscp.y"
4640        { (yyval.Bool) = false; }
4641        break;
4642    
4643      case 194:
4644    #line 333 "lscp.y"
4645        { (yyval.KeyValList)[(yyvsp[(1) - (3)].String)] = (yyvsp[(3) - (3)].String);          }
4646        break;
4647    
4648      case 195:
4649    #line 334 "lscp.y"
4650        { (yyval.KeyValList) = (yyvsp[(1) - (5)].KeyValList); (yyval.KeyValList)[(yyvsp[(3) - (5)].String)] = (yyvsp[(5) - (5)].String); }
4651        break;
4652    
4653      case 196:
4654    #line 337 "lscp.y"
4655        { (yyval.FillResponse) = fill_response_bytes;      }
4656        break;
4657    
4658      case 197:
4659    #line 338 "lscp.y"
4660        { (yyval.FillResponse) = fill_response_percentage; }
4661        break;
4662    
4663      case 198:
4664    #line 341 "lscp.y"
4665        { (yyval.String) = LSCPSERVER->GetAudioOutputDevices();              }
4666        break;
4667    
4668      case 199:
4669    #line 342 "lscp.y"
4670        { (yyval.String) = LSCPSERVER->GetMidiInputDevices();                }
4671        break;
4672    
4673      case 200:
4674    #line 343 "lscp.y"
4675        { (yyval.String) = LSCPSERVER->ListChannels();                       }
4676        break;
4677    
4678      case 201:
4679    #line 344 "lscp.y"
4680        { (yyval.String) = LSCPSERVER->ListAvailableEngines();               }
4681        break;
4682    
4683      case 202:
4684    #line 345 "lscp.y"
4685        { (yyval.String) = LSCPSERVER->ListAvailableMidiInputDrivers();      }
4686        break;
4687    
4688      case 203:
4689    #line 346 "lscp.y"
4690        { (yyval.String) = LSCPSERVER->ListAvailableAudioOutputDrivers();    }
4691        break;
4692    
4693      case 204:
4694    #line 347 "lscp.y"
4695        { (yyval.String) = LSCPSERVER->ListMidiInstrumentMappings((yyvsp[(3) - (3)].Number));       }
4696        break;
4697    
4698      case 205:
4699    #line 348 "lscp.y"
4700        { (yyval.String) = LSCPSERVER->ListAllMidiInstrumentMappings();      }
4701        break;
4702    
4703      case 206:
4704    #line 349 "lscp.y"
4705        { (yyval.String) = LSCPSERVER->ListMidiInstrumentMaps();             }
4706        break;
4707    
4708      case 207:
4709    #line 350 "lscp.y"
4710        { (yyval.String) = LSCPSERVER->ListFxSends((yyvsp[(3) - (3)].Number));                      }
4711        break;
4712    
4713      case 208:
4714    #line 351 "lscp.y"
4715        { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectories((yyvsp[(5) - (5)].String), true); }
4716        break;
4717    
4718      case 209:
4719    #line 352 "lscp.y"
4720        { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectories((yyvsp[(3) - (3)].String));       }
4721        break;
4722    
4723      case 210:
4724    #line 353 "lscp.y"
4725        { (yyval.String) = LSCPSERVER->GetDbInstruments((yyvsp[(5) - (5)].String), true);           }
4726        break;
4727    
4728      case 211:
4729    #line 354 "lscp.y"
4730        { (yyval.String) = LSCPSERVER->GetDbInstruments((yyvsp[(3) - (3)].String));                 }
4731        break;
4732    
4733      case 212:
4734    #line 357 "lscp.y"
4735        { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[(1) - (5)].String), (yyvsp[(3) - (5)].Number), (yyvsp[(5) - (5)].Number));       }
4736        break;
4737    
4738      case 213:
4739    #line 358 "lscp.y"
4740        { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[(3) - (7)].String), (yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number), true); }
4741        break;
4742    
4743      case 214:
4744    #line 361 "lscp.y"
4745        { (yyval.String) = LSCPSERVER->SetEngineType((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].Number)); }
4746        break;
4747    
4748      case 215:
4749    #line 364 "lscp.y"
4750        { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND;      }
4751        break;
4752    
4753      case 216:
4754    #line 365 "lscp.y"
4755        { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND_HOLD; }
4756        break;
4757    
4758      case 217:
4759    #line 366 "lscp.y"
4760        { (yyval.LoadMode) = MidiInstrumentMapper::PERSISTENT;     }
4761        break;
4762    
4763      case 223:
4764    #line 382 "lscp.y"
4765        { (yyval.Number) = 16; }
4766        break;
4767    
4768      case 230:
4769    #line 401 "lscp.y"
4770        { (yyval.Dotnum) = (yyvsp[(1) - (1)].Number); }
4771        break;
4772    
4773      case 242:
4774    #line 435 "lscp.y"
4775        { (yyval.String) = (yyvsp[(1) - (3)].String) + "," + (yyvsp[(3) - (3)].String); }
4776        break;
4777    
4778      case 245:
4779    #line 440 "lscp.y"
4780        { std::stringstream ss; ss << "\'" << (yyvsp[(1) - (1)].Number) << "\'"; (yyval.String) = ss.str(); }
4781        break;
4782    
4783      case 246:
4784    #line 441 "lscp.y"
4785        { std::stringstream ss; ss << "\'" << (yyvsp[(1) - (1)].Dotnum) << "\'"; (yyval.String) = ss.str(); }
4786        break;
4787    
4788      case 247:
4789    #line 444 "lscp.y"
4790        { (yyval.KeyValList)[(yyvsp[(1) - (3)].String)] = (yyvsp[(3) - (3)].String);          }
4791        break;
4792    
4793      case 248:
4794    #line 445 "lscp.y"
4795        { (yyval.KeyValList) = (yyvsp[(1) - (5)].KeyValList); (yyval.KeyValList)[(yyvsp[(3) - (5)].String)] = (yyvsp[(5) - (5)].String); }
4796        break;
4797    
4798      case 251:
4799    #line 452 "lscp.y"
4800        { (yyval.String) = "RECURSIVE"; }
4801        break;
4802    
4803      case 252:
4804    #line 453 "lscp.y"
4805        { (yyval.String) = "NON_RECURSIVE"; }
4806        break;
4807    
4808      case 253:
4809    #line 454 "lscp.y"
4810        { (yyval.String) = "FLAT"; }
4811        break;
4812    
4813      case 254:
4814    #line 462 "lscp.y"
4815        { (yyval.Dotnum) = (yyvsp[(1) - (1)].Number); }
4816        break;
4817    
4818      case 255:
4819    #line 463 "lscp.y"
4820        { (yyval.Dotnum) = -1; }
4821        break;
4822    
4823      case 256:
4824    #line 466 "lscp.y"
4825        { std::string s; s = (yyvsp[(1) - (1)].Char); (yyval.String) = s; }
4826        break;
4827    
4828      case 257:
4829    #line 467 "lscp.y"
4830        { (yyval.String) = (yyvsp[(1) - (2)].String) + (yyvsp[(2) - (2)].Char);                  }
4831        break;
4832    
4833      case 258:
4834    #line 470 "lscp.y"
4835        { (yyval.Dotnum) = atof(String((yyvsp[(1) - (3)].String) + "." + (yyvsp[(3) - (3)].String)).c_str());                         }
4836        break;
4837    
4838      case 259:
4839    #line 471 "lscp.y"
4840        { String s = "+"; s += (yyvsp[(2) - (4)].String); s += "."; s += (yyvsp[(4) - (4)].String); (yyval.Dotnum) = atof(s.c_str()); }
4841        break;
4842    
4843      case 260:
4844    #line 472 "lscp.y"
4845        { (yyval.Dotnum) = atof(String("-" + (yyvsp[(2) - (4)].String) + "." + (yyvsp[(4) - (4)].String)).c_str());                   }
4846        break;
4847    
4848      case 261:
4849    #line 476 "lscp.y"
4850        { (yyval.String) = (yyvsp[(1) - (1)].Char);      }
4851        break;
4852    
4853      case 262:
4854    #line 477 "lscp.y"
4855        { (yyval.String) = (yyvsp[(1) - (2)].String) + (yyvsp[(2) - (2)].Char); }
4856        break;
4857    
4858      case 263:
4859    #line 480 "lscp.y"
4860        { (yyval.Char) = '0'; }
4861        break;
4862    
4863      case 264:
4864    #line 481 "lscp.y"
4865        { (yyval.Char) = '1'; }
4866        break;
4867    
4868      case 265:
4869    #line 482 "lscp.y"
4870        { (yyval.Char) = '2'; }
4871        break;
4872    
4873      case 266:
4874    #line 483 "lscp.y"
4875        { (yyval.Char) = '3'; }
4876        break;
4877    
4878      case 267:
4879    #line 484 "lscp.y"
4880        { (yyval.Char) = '4'; }
4881        break;
4882    
4883      case 268:
4884    #line 485 "lscp.y"
4885        { (yyval.Char) = '5'; }
4886        break;
4887    
4888      case 269:
4889    #line 486 "lscp.y"
4890        { (yyval.Char) = '6'; }
4891        break;
4892    
4893      case 270:
4894    #line 487 "lscp.y"
4895        { (yyval.Char) = '7'; }
4896        break;
4897    
4898      case 271:
4899    #line 488 "lscp.y"
4900        { (yyval.Char) = '8'; }
4901        break;
4902    
4903      case 272:
4904    #line 489 "lscp.y"
4905        { (yyval.Char) = '9'; }
4906        break;
4907    
4908      case 273:
4909    #line 492 "lscp.y"
4910        { (yyval.Number) = atoi(String(1, (yyvsp[(1) - (1)].Char)).c_str());      }
4911        break;
4912    
4913      case 274:
4914    #line 493 "lscp.y"
4915        { (yyval.Number) = atoi(String(String("1") + (yyvsp[(2) - (2)].String)).c_str()); }
4916        break;
4917    
4918      case 275:
4919    #line 494 "lscp.y"
4920        { (yyval.Number) = atoi(String(String("2") + (yyvsp[(2) - (2)].String)).c_str()); }
4921        break;
4922    
4923      case 276:
4924    #line 495 "lscp.y"
4925        { (yyval.Number) = atoi(String(String("3") + (yyvsp[(2) - (2)].String)).c_str()); }
4926        break;
4927    
4928      case 277:
4929    #line 496 "lscp.y"
4930        { (yyval.Number) = atoi(String(String("4") + (yyvsp[(2) - (2)].String)).c_str()); }
4931        break;
4932    
4933      case 278:
4934    #line 497 "lscp.y"
4935        { (yyval.Number) = atoi(String(String("5") + (yyvsp[(2) - (2)].String)).c_str()); }
4936        break;
4937    
4938      case 279:
4939    #line 498 "lscp.y"
4940        { (yyval.Number) = atoi(String(String("6") + (yyvsp[(2) - (2)].String)).c_str()); }
4941        break;
4942    
4943      case 280:
4944    #line 499 "lscp.y"
4945        { (yyval.Number) = atoi(String(String("7") + (yyvsp[(2) - (2)].String)).c_str()); }
4946        break;
4947    
4948      case 281:
4949    #line 500 "lscp.y"
4950        { (yyval.Number) = atoi(String(String("8") + (yyvsp[(2) - (2)].String)).c_str()); }
4951        break;
4952    
4953      case 282:
4954    #line 501 "lscp.y"
4955        { (yyval.Number) = atoi(String(String("9") + (yyvsp[(2) - (2)].String)).c_str()); }
4956        break;
4957    
4958      case 283:
4959    #line 503 "lscp.y"
4960        { (yyval.Char) = 'A'; }
4961        break;
4962    
4963      case 284:
4964    #line 503 "lscp.y"
4965        { (yyval.Char) = 'B'; }
4966        break;
4967    
4968      case 285:
4969    #line 503 "lscp.y"
4970        { (yyval.Char) = 'C'; }
4971        break;
4972    
4973      case 286:
4974    #line 503 "lscp.y"
4975        { (yyval.Char) = 'D'; }
4976        break;
4977    
4978      case 287:
4979    #line 503 "lscp.y"
4980        { (yyval.Char) = 'E'; }
4981        break;
4982    
4983      case 288:
4984    #line 503 "lscp.y"
4985        { (yyval.Char) = 'F'; }
4986        break;
4987    
4988      case 289:
4989    #line 503 "lscp.y"
4990        { (yyval.Char) = 'G'; }
4991        break;
4992    
4993      case 290:
4994    #line 503 "lscp.y"
4995        { (yyval.Char) = 'H'; }
4996        break;
4997    
4998      case 291:
4999    #line 503 "lscp.y"
5000        { (yyval.Char) = 'I'; }
5001        break;
5002    
5003      case 292:
5004    #line 503 "lscp.y"
5005        { (yyval.Char) = 'J'; }
5006        break;
5007    
5008      case 293:
5009    #line 503 "lscp.y"
5010        { (yyval.Char) = 'K'; }
5011        break;
5012    
5013      case 294:
5014    #line 503 "lscp.y"
5015        { (yyval.Char) = 'L'; }
5016        break;
5017    
5018      case 295:
5019    #line 503 "lscp.y"
5020        { (yyval.Char) = 'M'; }
5021        break;
5022    
5023      case 296:
5024    #line 503 "lscp.y"
5025        { (yyval.Char) = 'N'; }
5026        break;
5027    
5028      case 297:
5029    #line 503 "lscp.y"
5030        { (yyval.Char) = 'O'; }
5031        break;
5032    
5033      case 298:
5034    #line 503 "lscp.y"
5035        { (yyval.Char) = 'P'; }
5036        break;
5037    
5038      case 299:
5039    #line 503 "lscp.y"
5040        { (yyval.Char) = 'Q'; }
5041        break;
5042    
5043      case 300:
5044    #line 503 "lscp.y"
5045        { (yyval.Char) = 'R'; }
5046        break;
5047    
5048      case 301:
5049    #line 503 "lscp.y"
5050        { (yyval.Char) = 'S'; }
5051        break;
5052    
5053      case 302:
5054    #line 503 "lscp.y"
5055        { (yyval.Char) = 'T'; }
5056        break;
5057    
5058      case 303:
5059    #line 503 "lscp.y"
5060        { (yyval.Char) = 'U'; }
5061        break;
5062    
5063      case 304:
5064    #line 503 "lscp.y"
5065        { (yyval.Char) = 'V'; }
5066        break;
5067    
5068      case 305:
5069    #line 503 "lscp.y"
5070        { (yyval.Char) = 'W'; }
5071        break;
5072    
5073      case 306:
5074    #line 503 "lscp.y"
5075        { (yyval.Char) = 'X'; }
5076        break;
5077    
5078      case 307:
5079    #line 503 "lscp.y"
5080        { (yyval.Char) = 'Y'; }
5081        break;
5082    
5083      case 308:
5084    #line 503 "lscp.y"
5085        { (yyval.Char) = 'Z'; }
5086        break;
5087    
5088      case 309:
5089    #line 504 "lscp.y"
5090        { (yyval.Char) = 'a'; }
5091        break;
5092    
5093      case 310:
5094    #line 504 "lscp.y"
5095        { (yyval.Char) = 'b'; }
5096        break;
5097    
5098      case 311:
5099    #line 504 "lscp.y"
5100        { (yyval.Char) = 'c'; }
5101        break;
5102    
5103      case 312:
5104    #line 504 "lscp.y"
5105        { (yyval.Char) = 'd'; }
5106        break;
5107    
5108      case 313:
5109    #line 504 "lscp.y"
5110        { (yyval.Char) = 'e'; }
5111        break;
5112    
5113      case 314:
5114    #line 504 "lscp.y"
5115        { (yyval.Char) = 'f'; }
5116        break;
5117    
5118      case 315:
5119    #line 504 "lscp.y"
5120        { (yyval.Char) = 'g'; }
5121        break;
5122    
5123      case 316:
5124    #line 504 "lscp.y"
5125        { (yyval.Char) = 'h'; }
5126        break;
5127    
5128      case 317:
5129    #line 504 "lscp.y"
5130        { (yyval.Char) = 'i'; }
5131        break;
5132    
5133      case 318:
5134    #line 504 "lscp.y"
5135        { (yyval.Char) = 'j'; }
5136        break;
5137    
5138      case 319:
5139    #line 504 "lscp.y"
5140        { (yyval.Char) = 'k'; }
5141        break;
5142    
5143      case 320:
5144    #line 504 "lscp.y"
5145        { (yyval.Char) = 'l'; }
5146        break;
5147    
5148      case 321:
5149    #line 504 "lscp.y"
5150        { (yyval.Char) = 'm'; }
5151        break;
5152    
5153      case 322:
5154    #line 504 "lscp.y"
5155        { (yyval.Char) = 'n'; }
5156        break;
5157    
5158      case 323:
5159    #line 504 "lscp.y"
5160        { (yyval.Char) = 'o'; }
5161        break;
5162    
5163      case 324:
5164    #line 504 "lscp.y"
5165        { (yyval.Char) = 'p'; }
5166        break;
5167    
5168      case 325:
5169    #line 504 "lscp.y"
5170        { (yyval.Char) = 'q'; }
5171        break;
5172    
5173      case 326:
5174    #line 504 "lscp.y"
5175        { (yyval.Char) = 'r'; }
5176        break;
5177    
5178      case 327:
5179    #line 504 "lscp.y"
5180        { (yyval.Char) = 's'; }
5181        break;
5182    
5183      case 328:
5184    #line 504 "lscp.y"
5185        { (yyval.Char) = 't'; }
5186        break;
5187    
5188      case 329:
5189    #line 504 "lscp.y"
5190        { (yyval.Char) = 'u'; }
5191        break;
5192    
5193      case 330:
5194    #line 504 "lscp.y"
5195        { (yyval.Char) = 'v'; }
5196        break;
5197    
5198      case 331:
5199    #line 504 "lscp.y"
5200        { (yyval.Char) = 'w'; }
5201        break;
5202    
5203      case 332:
5204    #line 504 "lscp.y"
5205        { (yyval.Char) = 'x'; }
5206        break;
5207    
5208      case 333:
5209    #line 504 "lscp.y"
5210        { (yyval.Char) = 'y'; }
5211        break;
5212    
5213      case 334:
5214    #line 504 "lscp.y"
5215        { (yyval.Char) = 'z'; }
5216        break;
5217    
5218      case 335:
5219    #line 505 "lscp.y"
5220        { (yyval.Char) = '0'; }
5221        break;
5222    
5223      case 336:
5224    #line 505 "lscp.y"
5225        { (yyval.Char) = '1'; }
5226        break;
5227    
5228      case 337:
5229    #line 505 "lscp.y"
5230        { (yyval.Char) = '2'; }
5231        break;
5232    
5233      case 338:
5234    #line 505 "lscp.y"
5235        { (yyval.Char) = '3'; }
5236        break;
5237    
5238      case 339:
5239    #line 505 "lscp.y"
5240        { (yyval.Char) = '4'; }
5241        break;
5242    
5243      case 340:
5244    #line 505 "lscp.y"
5245        { (yyval.Char) = '5'; }
5246        break;
5247    
5248      case 341:
5249    #line 505 "lscp.y"
5250        { (yyval.Char) = '6'; }
5251        break;
5252    
5253      case 342:
5254    #line 505 "lscp.y"
5255        { (yyval.Char) = '7'; }
5256        break;
5257    
5258      case 343:
5259    #line 505 "lscp.y"
5260        { (yyval.Char) = '8'; }
5261        break;
5262    
5263      case 344:
5264    #line 505 "lscp.y"
5265        { (yyval.Char) = '9'; }
5266        break;
5267    
5268      case 345:
5269    #line 506 "lscp.y"
5270        { (yyval.Char) = '!'; }
5271        break;
5272    
5273      case 346:
5274    #line 506 "lscp.y"
5275        { (yyval.Char) = '#'; }
5276        break;
5277    
5278      case 347:
5279    #line 506 "lscp.y"
5280        { (yyval.Char) = '$'; }
5281        break;
5282    
5283      case 348:
5284    #line 506 "lscp.y"
5285        { (yyval.Char) = '%'; }
5286        break;
5287    
5288      case 349:
5289    #line 506 "lscp.y"
5290        { (yyval.Char) = '&'; }
5291        break;
5292    
5293      case 350:
5294    #line 506 "lscp.y"
5295        { (yyval.Char) = '('; }
5296        break;
5297    
5298      case 351:
5299    #line 506 "lscp.y"
5300        { (yyval.Char) = ')'; }
5301        break;
5302    
5303      case 352:
5304    #line 506 "lscp.y"
5305        { (yyval.Char) = '*'; }
5306        break;
5307    
5308      case 353:
5309    #line 506 "lscp.y"
5310        { (yyval.Char) = '+'; }
5311        break;
5312    
5313      case 354:
5314    #line 506 "lscp.y"
5315        { (yyval.Char) = '-'; }
5316        break;
5317    
5318      case 355:
5319    #line 506 "lscp.y"
5320        { (yyval.Char) = '.'; }
5321        break;
5322    
5323      case 356:
5324    #line 506 "lscp.y"
5325        { (yyval.Char) = ','; }
5326        break;
5327    
5328      case 357:
5329    #line 506 "lscp.y"
5330        { (yyval.Char) = '/'; }
5331        break;
5332    
5333      case 358:
5334    #line 507 "lscp.y"
5335        { (yyval.Char) = ':'; }
5336        break;
5337    
5338      case 359:
5339    #line 507 "lscp.y"
5340        { (yyval.Char) = ';'; }
5341        break;
5342    
5343      case 360:
5344    #line 507 "lscp.y"
5345        { (yyval.Char) = '<'; }
5346        break;
5347    
5348      case 361:
5349    #line 507 "lscp.y"
5350        { (yyval.Char) = '='; }
5351        break;
5352    
5353      case 362:
5354    #line 507 "lscp.y"
5355        { (yyval.Char) = '>'; }
5356        break;
5357    
5358      case 363:
5359    #line 507 "lscp.y"
5360        { (yyval.Char) = '?'; }
5361        break;
5362    
5363      case 364:
5364    #line 507 "lscp.y"
5365        { (yyval.Char) = '@'; }
5366        break;
5367    
5368      case 365:
5369    #line 508 "lscp.y"
5370        { (yyval.Char) = '['; }
5371        break;
5372    
5373      case 366:
5374    #line 508 "lscp.y"
5375        { (yyval.Char) = '\\'; }
5376        break;
5377    
5378      case 367:
5379    #line 508 "lscp.y"
5380        { (yyval.Char) = ']'; }
5381        break;
5382    
5383      case 368:
5384    #line 508 "lscp.y"
5385        { (yyval.Char) = '^'; }
5386        break;
5387    
5388      case 369:
5389    #line 508 "lscp.y"
5390        { (yyval.Char) = '_'; }
5391        break;
5392    
5393      case 370:
5394    #line 509 "lscp.y"
5395        { (yyval.Char) = '{'; }
5396        break;
5397    
5398      case 371:
5399    #line 509 "lscp.y"
5400        { (yyval.Char) = '|'; }
5401        break;
5402    
5403      case 372:
5404    #line 509 "lscp.y"
5405        { (yyval.Char) = '}'; }
5406        break;
5407    
5408      case 373:
5409    #line 509 "lscp.y"
5410        { (yyval.Char) = '~'; }
5411        break;
5412    
5413      case 374:
5414    #line 510 "lscp.y"
5415        { (yyval.Char) = '\200'; }
5416        break;
5417    
5418      case 375:
5419    #line 510 "lscp.y"
5420        { (yyval.Char) = '\201'; }
5421        break;
5422    
5423      case 376:
5424    #line 510 "lscp.y"
5425        { (yyval.Char) = '\202'; }
5426        break;
5427    
5428      case 377:
5429    #line 511 "lscp.y"
5430        { (yyval.Char) = '\203'; }
5431        break;
5432    
5433      case 378:
5434    #line 511 "lscp.y"
5435        { (yyval.Char) = '\204'; }
5436        break;
5437    
5438      case 379:
5439    #line 511 "lscp.y"
5440        { (yyval.Char) = '\205'; }
5441        break;
5442    
5443      case 380:
5444    #line 512 "lscp.y"
5445        { (yyval.Char) = '\206'; }
5446        break;
5447    
5448      case 381:
5449    #line 512 "lscp.y"
5450        { (yyval.Char) = '\207'; }
5451        break;
5452    
5453      case 382:
5454    #line 512 "lscp.y"
5455        { (yyval.Char) = '\210'; }
5456        break;
5457    
5458      case 383:
5459    #line 513 "lscp.y"
5460        { (yyval.Char) = '\211'; }
5461        break;
5462    
5463      case 384:
5464    #line 513 "lscp.y"
5465        { (yyval.Char) = '\212'; }
5466        break;
5467    
5468      case 385:
5469    #line 513 "lscp.y"
5470        { (yyval.Char) = '\213'; }
5471        break;
5472    
5473      case 386:
5474    #line 514 "lscp.y"
5475        { (yyval.Char) = '\214'; }
5476        break;
5477    
5478      case 387:
5479    #line 514 "lscp.y"
5480        { (yyval.Char) = '\215'; }
5481        break;
5482    
5483      case 388:
5484    #line 514 "lscp.y"
5485        { (yyval.Char) = '\216'; }
5486        break;
5487    
5488      case 389:
5489    #line 515 "lscp.y"
5490        { (yyval.Char) = '\217'; }
5491        break;
5492    
5493      case 390:
5494    #line 515 "lscp.y"
5495        { (yyval.Char) = '\220'; }
5496        break;
5497    
5498      case 391:
5499    #line 515 "lscp.y"
5500        { (yyval.Char) = '\221'; }
5501        break;
5502    
5503      case 392:
5504    #line 516 "lscp.y"
5505        { (yyval.Char) = '\222'; }
5506        break;
5507    
5508      case 393:
5509    #line 516 "lscp.y"
5510        { (yyval.Char) = '\223'; }
5511        break;
5512    
5513      case 394:
5514    #line 516 "lscp.y"
5515        { (yyval.Char) = '\224'; }
5516        break;
5517    
5518      case 395:
5519    #line 517 "lscp.y"
5520        { (yyval.Char) = '\225'; }
5521        break;
5522    
5523      case 396:
5524    #line 517 "lscp.y"
5525        { (yyval.Char) = '\226'; }
5526        break;
5527    
5528      case 397:
5529    #line 517 "lscp.y"
5530        { (yyval.Char) = '\227'; }
5531        break;
5532    
5533      case 398:
5534    #line 518 "lscp.y"
5535        { (yyval.Char) = '\230'; }
5536        break;
5537    
5538      case 399:
5539    #line 518 "lscp.y"
5540        { (yyval.Char) = '\231'; }
5541        break;
5542    
5543      case 400:
5544    #line 518 "lscp.y"
5545        { (yyval.Char) = '\232'; }
5546        break;
5547    
5548      case 401:
5549    #line 519 "lscp.y"
5550        { (yyval.Char) = '\233'; }
5551        break;
5552    
5553      case 402:
5554    #line 519 "lscp.y"
5555        { (yyval.Char) = '\234'; }
5556        break;
5557    
5558      case 403:
5559    #line 519 "lscp.y"
5560        { (yyval.Char) = '\235'; }
5561        break;
5562    
5563      case 404:
5564    #line 520 "lscp.y"
5565        { (yyval.Char) = '\236'; }
5566        break;
5567    
5568      case 405:
5569    #line 520 "lscp.y"
5570        { (yyval.Char) = '\237'; }
5571        break;
5572    
5573      case 406:
5574    #line 520 "lscp.y"
5575        { (yyval.Char) = '\240'; }
5576        break;
5577    
5578      case 407:
5579    #line 521 "lscp.y"
5580        { (yyval.Char) = '\241'; }
5581        break;
5582    
5583      case 408:
5584    #line 521 "lscp.y"
5585        { (yyval.Char) = '\242'; }
5586        break;
5587    
5588      case 409:
5589    #line 521 "lscp.y"
5590        { (yyval.Char) = '\243'; }
5591        break;
5592    
5593      case 410:
5594    #line 522 "lscp.y"
5595        { (yyval.Char) = '\244'; }
5596        break;
5597    
5598      case 411:
5599    #line 522 "lscp.y"
5600        { (yyval.Char) = '\245'; }
5601        break;
5602    
5603      case 412:
5604    #line 522 "lscp.y"
5605        { (yyval.Char) = '\246'; }
5606        break;
5607    
5608      case 413:
5609    #line 523 "lscp.y"
5610        { (yyval.Char) = '\247'; }
5611        break;
5612    
5613      case 414:
5614    #line 523 "lscp.y"
5615        { (yyval.Char) = '\250'; }
5616        break;
5617    
5618      case 415:
5619    #line 523 "lscp.y"
5620        { (yyval.Char) = '\251'; }
5621        break;
5622    
5623      case 416:
5624    #line 524 "lscp.y"
5625        { (yyval.Char) = '\252'; }
5626        break;
5627    
5628      case 417:
5629    #line 524 "lscp.y"
5630        { (yyval.Char) = '\253'; }
5631        break;
5632    
5633      case 418:
5634    #line 524 "lscp.y"
5635        { (yyval.Char) = '\254'; }
5636        break;
5637    
5638      case 419:
5639    #line 525 "lscp.y"
5640        { (yyval.Char) = '\255'; }
5641        break;
5642    
5643      case 420:
5644    #line 525 "lscp.y"
5645        { (yyval.Char) = '\256'; }
5646        break;
5647    
5648      case 421:
5649    #line 525 "lscp.y"
5650        { (yyval.Char) = '\257'; }
5651        break;
5652    
5653      case 422:
5654    #line 526 "lscp.y"
5655        { (yyval.Char) = '\260'; }
5656        break;
5657    
5658      case 423:
5659    #line 526 "lscp.y"
5660        { (yyval.Char) = '\261'; }
5661        break;
5662    
5663      case 424:
5664    #line 526 "lscp.y"
5665        { (yyval.Char) = '\262'; }
5666        break;
5667    
5668      case 425:
5669    #line 527 "lscp.y"
5670        { (yyval.Char) = '\263'; }
5671        break;
5672    
5673      case 426:
5674    #line 527 "lscp.y"
5675        { (yyval.Char) = '\264'; }
5676        break;
5677    
5678      case 427:
5679    #line 527 "lscp.y"
5680        { (yyval.Char) = '\265'; }
5681        break;
5682    
5683      case 428:
5684    #line 528 "lscp.y"
5685        { (yyval.Char) = '\266'; }
5686        break;
5687    
5688      case 429:
5689    #line 528 "lscp.y"
5690        { (yyval.Char) = '\267'; }
5691        break;
5692    
5693      case 430:
5694    #line 528 "lscp.y"
5695        { (yyval.Char) = '\270'; }
5696        break;
5697    
5698      case 431:
5699    #line 529 "lscp.y"
5700        { (yyval.Char) = '\271'; }
5701        break;
5702    
5703      case 432:
5704    #line 529 "lscp.y"
5705        { (yyval.Char) = '\272'; }
5706        break;
5707    
5708      case 433:
5709    #line 529 "lscp.y"
5710        { (yyval.Char) = '\273'; }
5711        break;
5712    
5713      case 434:
5714    #line 530 "lscp.y"
5715        { (yyval.Char) = '\274'; }
5716        break;
5717    
5718      case 435:
5719    #line 530 "lscp.y"
5720        { (yyval.Char) = '\275'; }
5721        break;
5722    
5723      case 436:
5724    #line 530 "lscp.y"
5725        { (yyval.Char) = '\276'; }
5726        break;
5727    
5728      case 437:
5729    #line 531 "lscp.y"
5730        { (yyval.Char) = '\277'; }
5731        break;
5732    
5733      case 438:
5734    #line 531 "lscp.y"
5735        { (yyval.Char) = '\300'; }
5736        break;
5737    
5738      case 439:
5739    #line 531 "lscp.y"
5740        { (yyval.Char) = '\301'; }
5741        break;
5742    
5743      case 440:
5744    #line 532 "lscp.y"
5745        { (yyval.Char) = '\302'; }
5746        break;
5747    
5748      case 441:
5749    #line 532 "lscp.y"
5750        { (yyval.Char) = '\303'; }
5751        break;
5752    
5753      case 442:
5754    #line 532 "lscp.y"
5755        { (yyval.Char) = '\304'; }
5756        break;
5757    
5758      case 443:
5759    #line 533 "lscp.y"
5760        { (yyval.Char) = '\305'; }
5761        break;
5762    
5763      case 444:
5764    #line 533 "lscp.y"
5765        { (yyval.Char) = '\306'; }
5766        break;
5767    
5768      case 445:
5769    #line 533 "lscp.y"
5770        { (yyval.Char) = '\307'; }
5771        break;
5772    
5773      case 446:
5774    #line 534 "lscp.y"
5775        { (yyval.Char) = '\310'; }
5776        break;
5777    
5778      case 447:
5779    #line 534 "lscp.y"
5780        { (yyval.Char) = '\311'; }
5781        break;
5782    
5783      case 448:
5784    #line 534 "lscp.y"
5785        { (yyval.Char) = '\312'; }
5786        break;
5787    
5788      case 449:
5789    #line 535 "lscp.y"
5790        { (yyval.Char) = '\313'; }
5791        break;
5792    
5793      case 450:
5794    #line 535 "lscp.y"
5795        { (yyval.Char) = '\314'; }
5796        break;
5797    
5798      case 451:
5799    #line 535 "lscp.y"
5800        { (yyval.Char) = '\315'; }
5801        break;
5802    
5803      case 452:
5804    #line 536 "lscp.y"
5805        { (yyval.Char) = '\316'; }
5806        break;
5807    
5808      case 453:
5809    #line 536 "lscp.y"
5810        { (yyval.Char) = '\317'; }
5811        break;
5812    
5813      case 454:
5814    #line 536 "lscp.y"
5815        { (yyval.Char) = '\320'; }
5816        break;
5817    
5818      case 455:
5819    #line 537 "lscp.y"
5820        { (yyval.Char) = '\321'; }
5821        break;
5822    
5823      case 456:
5824    #line 537 "lscp.y"
5825        { (yyval.Char) = '\322'; }
5826        break;
5827    
5828      case 457:
5829    #line 537 "lscp.y"
5830        { (yyval.Char) = '\323'; }
5831        break;
5832    
5833      case 458:
5834    #line 538 "lscp.y"
5835        { (yyval.Char) = '\324'; }
5836        break;
5837    
5838      case 459:
5839    #line 538 "lscp.y"
5840        { (yyval.Char) = '\325'; }
5841        break;
5842    
5843      case 460:
5844    #line 538 "lscp.y"
5845        { (yyval.Char) = '\326'; }
5846        break;
5847    
5848      case 461:
5849    #line 539 "lscp.y"
5850        { (yyval.Char) = '\327'; }
5851        break;
5852    
5853      case 462:
5854    #line 539 "lscp.y"
5855        { (yyval.Char) = '\330'; }
5856        break;
5857    
5858      case 463:
5859    #line 539 "lscp.y"
5860        { (yyval.Char) = '\331'; }
5861        break;
5862    
5863      case 464:
5864    #line 540 "lscp.y"
5865        { (yyval.Char) = '\332'; }
5866        break;
5867    
5868      case 465:
5869    #line 540 "lscp.y"
5870        { (yyval.Char) = '\333'; }
5871        break;
5872    
5873      case 466:
5874    #line 540 "lscp.y"
5875        { (yyval.Char) = '\334'; }
5876        break;
5877    
5878      case 467:
5879    #line 541 "lscp.y"
5880        { (yyval.Char) = '\335'; }
5881        break;
5882    
5883      case 468:
5884    #line 541 "lscp.y"
5885        { (yyval.Char) = '\336'; }
5886        break;
5887    
5888      case 469:
5889    #line 541 "lscp.y"
5890        { (yyval.Char) = '\337'; }
5891        break;
5892    
5893      case 470:
5894    #line 542 "lscp.y"
5895        { (yyval.Char) = '\340'; }
5896        break;
5897    
5898      case 471:
5899    #line 542 "lscp.y"
5900        { (yyval.Char) = '\341'; }
5901        break;
5902    
5903      case 472:
5904    #line 542 "lscp.y"
5905        { (yyval.Char) = '\342'; }
5906        break;
5907    
5908      case 473:
5909    #line 543 "lscp.y"
5910        { (yyval.Char) = '\343'; }
5911        break;
5912    
5913      case 474:
5914    #line 543 "lscp.y"
5915        { (yyval.Char) = '\344'; }
5916        break;
5917    
5918      case 475:
5919    #line 543 "lscp.y"
5920        { (yyval.Char) = '\345'; }
5921        break;
5922    
5923      case 476:
5924    #line 544 "lscp.y"
5925        { (yyval.Char) = '\346'; }
5926        break;
5927    
5928      case 477:
5929    #line 544 "lscp.y"
5930        { (yyval.Char) = '\347'; }
5931        break;
5932    
5933      case 478:
5934    #line 544 "lscp.y"
5935        { (yyval.Char) = '\350'; }
5936        break;
5937    
5938      case 479:
5939    #line 545 "lscp.y"
5940        { (yyval.Char) = '\351'; }
5941        break;
5942    
5943      case 480:
5944    #line 545 "lscp.y"
5945        { (yyval.Char) = '\352'; }
5946        break;
5947    
5948      case 481:
5949    #line 545 "lscp.y"
5950        { (yyval.Char) = '\353'; }
5951        break;
5952    
5953      case 482:
5954    #line 546 "lscp.y"
5955        { (yyval.Char) = '\354'; }
5956        break;
5957    
5958      case 483:
5959    #line 546 "lscp.y"
5960        { (yyval.Char) = '\355'; }
5961        break;
5962    
5963      case 484:
5964    #line 546 "lscp.y"
5965        { (yyval.Char) = '\356'; }
5966        break;
5967    
5968      case 485:
5969    #line 547 "lscp.y"
5970        { (yyval.Char) = '\357'; }
5971        break;
5972    
5973      case 486:
5974    #line 547 "lscp.y"
5975        { (yyval.Char) = '\360'; }
5976        break;
5977    
5978      case 487:
5979    #line 547 "lscp.y"
5980        { (yyval.Char) = '\361'; }
5981        break;
5982    
5983      case 488:
5984    #line 548 "lscp.y"
5985        { (yyval.Char) = '\362'; }
5986        break;
5987    
5988      case 489:
5989    #line 548 "lscp.y"
5990        { (yyval.Char) = '\363'; }
5991        break;
5992    
5993      case 490:
5994    #line 548 "lscp.y"
5995        { (yyval.Char) = '\364'; }
5996        break;
5997    
5998      case 491:
5999    #line 549 "lscp.y"
6000        { (yyval.Char) = '\365'; }
6001        break;
6002    
6003      case 492:
6004    #line 549 "lscp.y"
6005        { (yyval.Char) = '\366'; }
6006        break;
6007    
6008      case 493:
6009    #line 549 "lscp.y"
6010        { (yyval.Char) = '\367'; }
6011        break;
6012    
6013      case 494:
6014    #line 550 "lscp.y"
6015        { (yyval.Char) = '\370'; }
6016        break;
6017    
6018      case 495:
6019    #line 550 "lscp.y"
6020        { (yyval.Char) = '\371'; }
6021        break;
6022    
6023      case 496:
6024    #line 550 "lscp.y"
6025        { (yyval.Char) = '\372'; }
6026        break;
6027    
6028      case 497:
6029    #line 551 "lscp.y"
6030        { (yyval.Char) = '\373'; }
6031        break;
6032    
6033      case 498:
6034    #line 551 "lscp.y"
6035        { (yyval.Char) = '\374'; }
6036        break;
6037    
6038      case 499:
6039    #line 551 "lscp.y"
6040        { (yyval.Char) = '\375'; }
6041        break;
6042    
6043      case 500:
6044    #line 552 "lscp.y"
6045        { (yyval.Char) = '\376'; }
6046        break;
6047    
6048      case 501:
6049    #line 552 "lscp.y"
6050        { (yyval.Char) = '\377'; }
6051        break;
6052    
6053      case 502:
6054    #line 555 "lscp.y"
6055        { (yyval.String) = " ";      }
6056        break;
6057    
6058      case 504:
6059    #line 557 "lscp.y"
6060        { (yyval.String) = (yyvsp[(1) - (2)].String) + " "; }
6061        break;
6062    
6063      case 505:
6064    #line 558 "lscp.y"
6065        { (yyval.String) = (yyvsp[(1) - (2)].String) + (yyvsp[(2) - (2)].String);  }
6066        break;
6067    
6068      case 506:
6069    #line 561 "lscp.y"
6070        { (yyval.String) = (yyvsp[(2) - (3)].String); }
6071        break;
6072    
6073      case 507:
6074    #line 562 "lscp.y"
6075        { (yyval.String) = (yyvsp[(2) - (3)].String); }
6076        break;
6077    
6078    
6079    /* Line 1267 of yacc.c.  */
6080    #line 6081 "y.tab.c"
6081          default: break;
6082        }
6083      YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6084    
6085      YYPOPSTACK (yylen);
6086      yylen = 0;
6087    YY_STACK_PRINT (yyss, yyssp);    YY_STACK_PRINT (yyss, yyssp);
6088    
6089    *++yyvsp = yyval;    *++yyvsp = yyval;
# Line 1409  yyerrlab: Line 6112  yyerrlab:
6112    if (!yyerrstatus)    if (!yyerrstatus)
6113      {      {
6114        ++yynerrs;        ++yynerrs;
6115  #if YYERROR_VERBOSE  #if ! YYERROR_VERBOSE
6116        yyn = yypact[yystate];        yyerror (YY_("syntax error"));
6117    #else
6118        if (YYPACT_NINF < yyn && yyn < YYLAST)        {
6119          {          YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6120            YYSIZE_T yysize = 0;          if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6121            int yytype = YYTRANSLATE (yychar);            {
6122            char *yymsg;              YYSIZE_T yyalloc = 2 * yysize;
6123            int yyx, yycount;              if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6124                  yyalloc = YYSTACK_ALLOC_MAXIMUM;
6125            yycount = 0;              if (yymsg != yymsgbuf)
           /* Start YYX at -YYN if negative to avoid negative indexes in  
              YYCHECK.  */  
           for (yyx = yyn < 0 ? -yyn : 0;  
                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)  
             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)  
               yysize += yystrlen (yytname[yyx]) + 15, yycount++;  
           yysize += yystrlen ("syntax error, unexpected ") + 1;  
           yysize += yystrlen (yytname[yytype]);  
           yymsg = (char *) YYSTACK_ALLOC (yysize);  
           if (yymsg != 0)  
             {  
               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");  
               yyp = yystpcpy (yyp, yytname[yytype]);  
   
               if (yycount < 5)  
                 {  
                   yycount = 0;  
                   for (yyx = yyn < 0 ? -yyn : 0;  
                        yyx < (int) (sizeof (yytname) / sizeof (char *));  
                        yyx++)  
                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)  
                       {  
                         const char *yyq = ! yycount ? ", expecting " : " or ";  
                         yyp = yystpcpy (yyp, yyq);  
                         yyp = yystpcpy (yyp, yytname[yyx]);  
                         yycount++;  
                       }  
                 }  
               yyerror (yymsg);  
6126                YYSTACK_FREE (yymsg);                YYSTACK_FREE (yymsg);
6127              }              yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6128            else              if (yymsg)
6129              yyerror ("syntax error; also virtual memory exhausted");                yymsg_alloc = yyalloc;
6130          }              else
6131        else                {
6132  #endif /* YYERROR_VERBOSE */                  yymsg = yymsgbuf;
6133          yyerror ("syntax error");                  yymsg_alloc = sizeof yymsgbuf;
6134                  }
6135              }
6136    
6137            if (0 < yysize && yysize <= yymsg_alloc)
6138              {
6139                (void) yysyntax_error (yymsg, yystate, yychar);
6140                yyerror (yymsg);
6141              }
6142            else
6143              {
6144                yyerror (YY_("syntax error"));
6145                if (yysize != 0)
6146                  goto yyexhaustedlab;
6147              }
6148          }
6149    #endif
6150      }      }
6151    
6152    
6153    
6154    if (yyerrstatus == 3)    if (yyerrstatus == 3)
6155      {      {
6156        /* If just tried and failed to reuse lookahead token after an        /* If just tried and failed to reuse look-ahead token after an
6157           error, discard it.  */           error, discard it.  */
6158    
6159        /* Return failure if at end of input.  */        if (yychar <= YYEOF)
6160        if (yychar == YYEOF)          {
6161          {            /* Return failure if at end of input.  */
6162            /* Pop the error token.  */            if (yychar == YYEOF)
6163            YYPOPSTACK;              YYABORT;
6164            /* Pop the rest of the stack.  */          }
6165            while (yyss < yyssp)        else
6166              {          {
6167                YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);            yydestruct ("Error: discarding",
6168                yydestruct (yystos[*yyssp], yyvsp);                        yytoken, &yylval);
6169                YYPOPSTACK;            yychar = YYEMPTY;
6170              }          }
           YYABORT;  
         }  
   
       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);  
       yydestruct (yytoken, &yylval);  
       yychar = YYEMPTY;  
   
6171      }      }
6172    
6173    /* Else will try to reuse lookahead token after shifting the error    /* Else will try to reuse look-ahead token after shifting the error
6174       token.  */       token.  */
6175    goto yyerrlab1;    goto yyerrlab1;
6176    
6177    
6178  /*----------------------------------------------------.  /*---------------------------------------------------.
6179  | yyerrlab1 -- error raised explicitly by an action.  |  | yyerrorlab -- error raised explicitly by YYERROR.  |
6180  `----------------------------------------------------*/  `---------------------------------------------------*/
6181    yyerrorlab:
6182    
6183      /* Pacify compilers like GCC when the user code never invokes
6184         YYERROR and the label yyerrorlab therefore never appears in user
6185         code.  */
6186      if (/*CONSTCOND*/ 0)
6187         goto yyerrorlab;
6188    
6189      /* Do not reclaim the symbols of the rule which action triggered
6190         this YYERROR.  */
6191      YYPOPSTACK (yylen);
6192      yylen = 0;
6193      YY_STACK_PRINT (yyss, yyssp);
6194      yystate = *yyssp;
6195      goto yyerrlab1;
6196    
6197    
6198    /*-------------------------------------------------------------.
6199    | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6200    `-------------------------------------------------------------*/
6201  yyerrlab1:  yyerrlab1:
6202    yyerrstatus = 3;      /* Each real token shifted decrements this.  */    yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6203    
# Line 1516  yyerrlab1: Line 6219  yyerrlab1:
6219        if (yyssp == yyss)        if (yyssp == yyss)
6220          YYABORT;          YYABORT;
6221    
       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);  
       yydestruct (yystos[yystate], yyvsp);  
       yyvsp--;  
       yystate = *--yyssp;  
6222    
6223          yydestruct ("Error: popping",
6224                      yystos[yystate], yyvsp);
6225          YYPOPSTACK (1);
6226          yystate = *yyssp;
6227        YY_STACK_PRINT (yyss, yyssp);        YY_STACK_PRINT (yyss, yyssp);
6228      }      }
6229    
6230    if (yyn == YYFINAL)    if (yyn == YYFINAL)
6231      YYACCEPT;      YYACCEPT;
6232    
   YYDPRINTF ((stderr, "Shifting error token, "));  
   
6233    *++yyvsp = yylval;    *++yyvsp = yylval;
6234    
6235    
6236      /* Shift the error token.  */
6237      YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6238    
6239    yystate = yyn;    yystate = yyn;
6240    goto yynewstate;    goto yynewstate;
6241    
# Line 1551  yyabortlab: Line 6255  yyabortlab:
6255    goto yyreturn;    goto yyreturn;
6256    
6257  #ifndef yyoverflow  #ifndef yyoverflow
6258  /*----------------------------------------------.  /*-------------------------------------------------.
6259  | yyoverflowlab -- parser overflow comes here.  |  | yyexhaustedlab -- memory exhaustion comes here.  |
6260  `----------------------------------------------*/  `-------------------------------------------------*/
6261  yyoverflowlab:  yyexhaustedlab:
6262    yyerror ("parser stack overflow");    yyerror (YY_("memory exhausted"));
6263    yyresult = 2;    yyresult = 2;
6264    /* Fall through.  */    /* Fall through.  */
6265  #endif  #endif
6266    
6267  yyreturn:  yyreturn:
6268      if (yychar != YYEOF && yychar != YYEMPTY)
6269         yydestruct ("Cleanup: discarding lookahead",
6270                     yytoken, &yylval);
6271      /* Do not reclaim the symbols of the rule which action triggered
6272         this YYABORT or YYACCEPT.  */
6273      YYPOPSTACK (yylen);
6274      YY_STACK_PRINT (yyss, yyssp);
6275      while (yyssp != yyss)
6276        {
6277          yydestruct ("Cleanup: popping",
6278                      yystos[*yyssp], yyvsp);
6279          YYPOPSTACK (1);
6280        }
6281  #ifndef yyoverflow  #ifndef yyoverflow
6282    if (yyss != yyssa)    if (yyss != yyssa)
6283      YYSTACK_FREE (yyss);      YYSTACK_FREE (yyss);
6284  #endif  #endif
6285    return yyresult;  #if YYERROR_VERBOSE
6286      if (yymsg != yymsgbuf)
6287        YYSTACK_FREE (yymsg);
6288    #endif
6289      /* Make sure YYID is used.  */
6290      return YYID (yyresult);
6291  }  }
6292    
6293    
6294  #line 178 "lscp.y"  #line 880 "lscp.y"
6295    
6296    
6297  /**  /**
# Line 1580  void yyerror(const char* s) { Line 6302  void yyerror(const char* s) {
6302  }  }
6303    
6304  /**  /**
6305   * Clears input buffer and restarts scanner.   * Clears input buffer.
6306   */   */
6307  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
6308      // restart scanner      bytes = 0;
6309      yyrestart(stdin, pparam->pScanner);      ptr   = 0;
     // flush input buffer  
     static char buf[1024];  
     while(recv(hSession, buf, 1024, MSG_DONTWAIT) > 0);  
     // reset lookahead symbol  
     yyclearin;  
6310  }  }
6311    
   

Legend:
Removed from v.53  
changed lines
  Added in v.1200

  ViewVC Help
Powered by ViewVC